本章节待慢慢补充...
linux下的GPIO一般可以在/sys/kernel/debug/gpio下查询到信息,但是由于棒子的PCB没有开源,无法得知目前那些GPIO可以使用。但是通过表面可知,至少有3颗LED、2路SIM卡控制端口可用,且板载Uart串口调试点,因此,如果能对其中几个IO进行操作,通过IIC协议,即可可以控制多路外设,成为真正的硬件开发板...
从最简单的开始,控制一颗LED的亮灭。刷了Debian系统后,板子上只有红色、蓝色灯为启用状态,而绿色灯为None状态。因此,我们可以先拿没用的绿色LED下手。
查询目前棒子上已知的GPIO引用:ls /sys/class/leds/
查询后可得:
蓝色LED默认分配为WIFI状态
绿色LED默认分配为网络状态
红色LED默认为系统运行指示灯
SIM:EN为SIM卡启用状态,该焊盘位于ESIM底座GND处,预测SIM1同理
SIM:SEL为SIM选择状态,物理位置目前未测量
进入green的目录内,可看到以下几个文件:
主要文件为brightness、max_brightness、trigger,这三个文件即为LED引脚的属性
brightness:可读可写; 所以这个属性文件是用于设置 LED的亮度等级或者获取当前 LED 的亮度等级。
max_brightness: 该属性文件只能被读取,不能写,用于获取 LED 设备的最大亮度等级。
trigger: 触发模式,该属性文件可读可写,通过 cat 命令查看该属性文件触发模式
其中,trigger 内有以下的模式:
这里中括号选中为none,即为禁用。常见模式有:
timer:使用系统定时器控制,可用于作为伪PWM控制,定时闪烁等功能
heartbeat:心跳模式,可用于作为监控系统运行状态,定时有规律的闪烁
default-on:默认开启模式,此模式会使LED常亮,可用于寻找板载物理位置使用
mmc:读写存储器(emmc)的时候会闪烁
phy0tx(rx):接收(发送)wifi数据时会闪烁
使用echo的方式写入该文件即可控制LED的状态,如这里使它运行为心跳包闪烁模式:
echo heartbeat > /sys/class/leds/green\:internet/trigger同理,如果写入 none 则为禁用led灯,指令如下:
echo none > /sys/class/leds/green\:internet/trigger也可以设置led为wifi状态指示灯:
echo phy0radio > /sys/class/leds/green\:internet/trigger仅需执行指令,即可控制led状态,重启后恢复原始模式,可写入rc.local让其每次开机都设置为该模式。
可以将其设置为 timer 定时器模式,通过手动调整延时开与延时关的方式模拟PWM占空比:
echo timer > /sys/class/leds/green\:internet/trigger
echo 90 > /sys/class/leds/green\:internet/delay_off
echo 10 > /sys/class/leds/green\:internet/delay_on同理,可以使用绿色LED的IO用来控制风扇,实现温控风扇。以下代码为即兴发挥,可自行测试,将风扇连接至绿色LED引脚上,或者更改 GPIO_PIN 值为其他IO引脚;可以自行更改 pwm_v 的值,以1000为满值,分4个档位。代码仅供测试,如果有问题可评论区留言。
#python 3
import time
import os
pwm_v = [300,500,700,900] #档位速度设置,满值为1000
GPIO_PIN = "green\:internet" #IO引脚设置
print("开始初始化GPIO...")
os.system(f"echo timer > /sys/class/leds/{GPIO_PIN}/trigger")
while True:
time.sleep(1)
try:
temp_file=open("/sys/class/thermal/thermal_zone0/temp",'r')
temp = int(int(temp_file.read())/1000)
temp_file.close()
print(f"当前温度为:{temp}")
except OSError as e:
print(f"打开文件出错:{str(e)}")
if temp <25:
print(f"温度在(0,25)区间内,关闭风扇,PWM占空比0%")
os.system(f"echo 0 > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo 1000 > /sys/class/leds/green\:internet/delay_off")
if temp >= 25 and temp <35:
print(f"温度在[25,35)区间内,开启第一档,高电平时间{pwm_v[0]},低电平时间{1000-pwm_v[0]},PWM占空比{pwm_v[0]/1000*100}%")
os.system(f"echo {pwm_v[0]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[0]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 35 and temp <45:
print(f"温度在[35,45)区间内,开启第二档,高电平时间{pwm_v[1]},低电平时间{1000-pwm_v[1]},PWM占空比{pwm_v[1]/1000*100}%")
os.system(f"echo {pwm_v[1]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[1]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 45 and temp <55:
print(f"温度在[45,55)区间内,开启第三档,高电平时间{pwm_v[2]},低电平时间{1000-pwm_v[2]},PWM占空比{pwm_v[2]/1000*100}%")
os.system(f"echo {pwm_v[2]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[2]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 55 and temp <65:
print(f"温度在[55,65)区间内,开启第四档,高电平时间{pwm_v[3]},低电平时间{1000-pwm_v[3]},PWM占空比{pwm_v[3]/1000*100}%")
os.system(f"echo {pwm_v[3]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[3]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 65:
print(f"温度大于65摄氏度,开启最大功率,PWM占空比100%")
os.system(f"echo 1000 > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo 0 > /sys/class/leds/green\:internet/delay_off")
除了简单的控制LED的行为以及模拟PWM,这几个引出的IO或许还可以更改输出输入模式,待本文后续更新继续探索...
https://github.com/Yushi-Xing/openstick_fan/blob/main/main.cpp
https://gitee.com/anhui1995/ufi_auto-fan/blob/master/autofan.c
https://blog.csdn.net/qq_26226907/article/details/128027533
https://www.kancloud.cn/handsomehacker/openstick/2637560
还是准备玩esp32加小屏幕了,记录一下开发心得,虽然都做到一半多了,但是为了防止忘记或者是因为习惯性记录,还是准备将新学的给记下来,之前WIFI配网都做好了,那就从蓝牙开始吧...
原文参考链接:https://www.bilibili.com/read/cv15007387
硬件:ESP32
编程语言:Micropython
编译器:Thonny
目标:让esp32模块发出蓝牙信号,手机连接并通过软件发送串口数据,模块接收数据并实现点灯效果
基础测试代码:
from machine import Pin
from time import sleep_ms
import ubluetooth #导入BLE功能模块
ble = ubluetooth.BLE() #创建BLE设备
ble.active(True) #打开BLE
#设置BLE广播数据并开始广播
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x03\x09\x41\x42')运行后,可以在手机上搜索到一个蓝牙设备名为“AB"
如要修改蓝牙名称,可这样修改:
name = bytes("aabbcc", 'UTF-8')
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x08' + bytearray((len(name)+1,0x09))+name)
一个中文占用3字节储存,而广播数据最多只有31字节,除去硬件配置外,命名也要限制一定字数
广播数据格式可参考:https://www.bilibili.com/read/cv15007387
注:由于esp32模块功率很小,发射的蓝牙信号较小,手机经常连接不上,可通过在广播数据格式内修改发射功率调整,对应的数据为x02x0Ax08 ,完整代码为:
name = bytes("aabbcc", 'UTF-8')
print("蓝牙开始广播")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x08' + bytearray((len(name)+1,0x09))+name)蓝牙可连接后,需要让其处理各种事件,如蓝牙断开、连接以及收发等,可参考以下代码
详情:https://www.bilibili.com/read/cv15039837
from machine import Pin
from time import sleep_ms
import ubluetooth #导入BLE功能模块
ble = ubluetooth.BLE() #创建BLE设备
ble.active(True) #打开BLE(此时设备将处于就绪态)
#设置BLE广播数据并开始广播(开始广播后设备将处于广播态)
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x03\x09\x41\x42')
#定义一个函数,用作蓝牙事件中断
def ble_irq(event, data): # 蓝牙中断函数
if event == 1: #蓝牙已连接(此时蓝牙将处于连接态)
print("BLE 连接成功")
elif event == 2: #蓝牙断开连接(此时蓝牙将从链接态进入就绪态)
print("BLE 断开连接")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x03\x09\x41\x42')#再次启动广播
elif event == 3: # 收到新write消息
print("BLE 收到新消息")
ble.irq(ble_irq) #注册蓝牙中断函数有了中断函数后,可以更方便监听到蓝牙状态。接下来就是准备连接手机并交互了
蓝牙服务与特性创建,详情:https://www.bilibili.com/read/cv15049793
通过注册蓝牙服务,可以使用安卓APP nRF Connect或者微信小程序 谷雨蓝牙调试 进行数据传输,其中服务id为9011特性一9012为可读可写,9013为可读与通知,从esp32到手机上的消息就是通过9013 Notify这个权限获取信息的。
完整代码:
from machine import Pin
from time import sleep_ms,sleep
import ubluetooth #导入BLE功能模块
sleep(1)
ble = ubluetooth.BLE() #创建BLE设备
ble.active(True) #打开BLE(此时设备将处于就绪态)
#创建要使用的UUID
SERVER_1_UUID = ubluetooth.UUID(0x9011)
CHAR_A_UUID = ubluetooth.UUID(0x9012)
CHAR_B_UUID = ubluetooth.UUID(0x9013)
#创建特性并设置特性的读写权限
CHAR_A = (CHAR_A_UUID, ubluetooth.FLAG_READ | ubluetooth.FLAG_WRITE | ubluetooth.FLAG_NOTIFY, )
CHAR_B = (CHAR_B_UUID, ubluetooth.FLAG_READ | ubluetooth.FLAG_NOTIFY, )
SERVER_1 = (SERVER_1_UUID, (CHAR_A , CHAR_B, ) , ) #把特性A和特性B放入服务1
SERVICES = (SERVER_1, ) #把服务1放入服务集和中
((char_a, char_b), ) = ble.gatts_register_services(SERVICES) #注册服务到gatts
#设置BLE广播数据并开始广播(开始广播后设备将处于广播态)
name = bytes("aabbcc", 'UTF-8')
print("蓝牙开始广播")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x08' + bytearray((len(name)+1,0x09))+name)
#定义一个函数,用作蓝牙事件中断
def ble_irq(event, data): # 蓝牙中断函数
if event == 1: #蓝牙已连接(此时蓝牙将处于连接态)
print("BLE 连接成功")
elif event == 2: #蓝牙断开连接(此时蓝牙将从链接态进入就绪态)
print("BLE 断开连接")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x08' + bytearray((len(name)+1,0x09))+name)#再次启动广播
elif event == 3: # 收到新write消息
onn_handle, char_handle = data #判断是来自那个特性的消息
buffer = ble.gatts_read(char_handle) #读取接收到的消息
print(char_handle, buffer) #打印消息内容
ble.gatts_notify(0, char_handle, 'Hello') #回复Hello
ble.irq(ble_irq) #注册蓝牙中断函数这段代码运行后,通过蓝牙调试软件连接模块后,监听9012特性,可对其发送数据,同时在thonny终端内也可以看到发送的数据,并且每发送一条数据,都会收到来自模块的Notify通道的”Hello"回复。
上述为读写数据创建特定的uuid,下面是较为常用的两种实际应用:
注册电池服务
#创建电池服务和特性的UUID
BATTERY_SERVER_UUID = ubluetooth.UUID(0x180F)
BATTERY_CHAR_UUID = ubluetooth.UUID(0x2A19)
#创建特性并设置特性的读写权限
BATTERY_CHAR = (BATTERY_CHAR_UUID, ubluetooth.FLAG_READ , )
BATTERY_SERVER = (BATTERY_SERVER_UUID, (BATTERY_CHAR, ) , ) #把电量特性放入电池服务
SERVICES = (BATTERY_SERVER, ) #把电池服务服务放入服务集和中
((battery_char,), ) = ble.gatts_register_services(SERVICES) #注册服务到gatts
ble.gatts_write(battery_char, b'\x50') #设置电池电量为80%注册温湿度服务
#创建环境传感器服务和特性的UUID
ENV_SERVER_UUID = ubluetooth.UUID(0x181A) #环境传感器服务
TEM_CHAR_UUID = ubluetooth.UUID(0x2A6E) #温度特性
HUM_CHAR_UUID = ubluetooth.UUID(0x2A6F) #湿度特性
#创建特性并设置特性的读写权限
TEM_CHAR = (TEM_CHAR_UUID, ubluetooth.FLAG_READ , )
HUM_CHAR = (HUM_CHAR_UUID, ubluetooth.FLAG_READ , )
ENV_SERVER = (ENV_SERVER_UUID, (TEM_CHAR, HUM_CHAR, ) , ) #把温湿度特性放入环境服务
SERVICES = (ENV_SERVER, ) #把环境服务放入服务集和中
((tem_char, hum_char, ), ) = ble.gatts_register_services(SERVICES) #注册服务到gatts
ble.gatts_write(tem_char, b'\x06\x08') #设置温度为20.54度(0x0806 = 2054)
ble.gatts_write(hum_char, b'\x09\x07') #设置湿度为18.01%(0x0709 = 1801)
对于一些常用的功能,蓝牙组织联盟已经为其定义好了UUID,我们在开发产品的时候直接使用即可。
16BitUUID定义文档下载地址:https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf
最后把上面代码结合一起,就可以愉快用蓝牙点灯了!
使用方法:执行代码后,使用谷雨蓝牙连接,并监听9012服务中的read,发送任意数据,收到回复“hello”,发送“led_on”,led打开,收到回复“led on!”;发送“led_off”,led关闭,收到回复“led off!”
from machine import Pin
from time import sleep_ms,sleep
import ubluetooth #导入BLE功能模块
sleep(1)
ble = ubluetooth.BLE() #创建BLE设备
ble.active(True) #打开BLE(此时设备将处于就绪态)
led = Pin(2, Pin.OUT) #led引脚
#创建可读可写可通知的UUID
SERVER_1_UUID = ubluetooth.UUID(0x9011)
CHAR_A_UUID = ubluetooth.UUID(0x9012)
CHAR_B_UUID = ubluetooth.UUID(0x9013)
#创建特性并设置特性的读写权限
CHAR_A = (CHAR_A_UUID, ubluetooth.FLAG_READ | ubluetooth.FLAG_WRITE | ubluetooth.FLAG_NOTIFY, )
CHAR_B = (CHAR_B_UUID, ubluetooth.FLAG_READ | ubluetooth.FLAG_NOTIFY, )
SERVER_1 = (SERVER_1_UUID, (CHAR_A , CHAR_B, ) , ) #把特性A和特性B放入服务1
SERVICES = (SERVER_1, ) #把服务1放入服务集和中
((char_a, char_b), ) = ble.gatts_register_services(SERVICES) #注册服务到gatts
#设置BLE广播数据并开始广播(开始广播后设备将处于广播态)
name = bytes("aabbcc", 'UTF-8')
print("蓝牙开始广播")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x10' + bytearray((len(name)+1,0x09))+name)
#定义一个函数,用作蓝牙事件中断
def ble_irq(event, data): # 蓝牙中断函数
if event == 1: #蓝牙已连接(此时蓝牙将处于连接态)
print("BLE 连接成功")
elif event == 2: #蓝牙断开连接(此时蓝牙将从链接态进入就绪态)
print("BLE 断开连接")
ble.gap_advertise(100, adv_data = b'\x02\x01\x06\x02\x0A\x08' + bytearray((len(name)+1,0x09))+name)#再次启动广播
elif event == 3: # 收到新write消息
onn_handle, char_handle = data #判断是来自那个特性的消息
buffer = ble.gatts_read(char_handle) #读取接收到的消息
print(char_handle, buffer,str(buffer, 'UTF-8')) #打印消息内容
if str(buffer, 'UTF-8')=="led_on":
led.on()
ble.gatts_notify(0, char_handle, 'led on!')
elif str(buffer, 'UTF-8')=="led_off":
led.off()
ble.gatts_notify(0, char_handle, 'led off!')
else:
ble.gatts_notify(0, char_handle, 'Hello')#回复Hello
ble.irq(ble_irq) #注册蓝牙中断函数
]]>
使用树莓派小风扇对其风冷散热,并且在三极管组成的简单电路下通过树莓派GPIO口输出PWM进行不同阶段温度的控制,使其可以在温度过高情况下减少PWM占空比加速散热、温度较低时静音慢速散热,减少因为长期高速运转产生的噪声,也同时增加了风扇寿命。
1、树莓派及优质电源线(推荐使用官方电源,第三方电源在风扇运转时容易出现低电压警告)

2、树莓派小风扇 x1
3、三极管NPN8050 x1
4、电解电容100μF x1(理论上大部分电容都支持,起到稳定风扇作用,减少因风扇突然加速等产生的异响)
5、接插件 x5
6、杜邦线(母对母) x3

三极管8050三个管脚顺序从平面、从左到右依次是发射极E、基极B、集电极C
本图中,风扇负极接入三极管的发射极E,树莓派上任意一个GPIO引脚接入三极管的基极B,树莓派上的GND接入三极管的集电极C;
将电容C1并联到风扇的两段,或者直接并联到接插件的1、3处,如果使用电解电容需要注意正负极
本电路无需焊接至电路板上,直接通过接线即可使用,且因为体积较小可以直接放入树莓派壳内,方便移动
通过树莓派的GPIO引脚输出高电平以导通三极管,且通过PWM控制树莓派的转速,代码如下:
程序参考:https://blog.csdn.net/vince025/article/details/103749006
#!/usr/bin/python3
# encoding: utf-8
import RPi.GPIO
import time
RPi.GPIO.setwarnings(False)
RPi.GPIO.setmode(RPi.GPIO.BCM)
#下面多处14是我使用的BCM编码为14的GPIO,根据实际情况修改
RPi.GPIO.setup(14, RPi.GPIO.OUT)
pwm = RPi.GPIO.PWM(14, 75)
duty = 0
lastDuty = 0
try:
while True:
tmpFile = open('/sys/class/thermal/thermal_zone0/temp')
temp = int(tmpFile.read())
tmpFile.close()
duty = 100;
#以下内容可自由修改,duty为占空比,值越大速度越慢
if temp < 40000:
duty = 100
if lastDuty >= 40000:
duty = 75
if temp >= 42000:
duty = 60
if temp >= 45000:
duty = 50
if temp >= 50000:
duty = 25
if temp >= 55000:
duty = 10
#----------------
if duty == 100:
pwm.stop()
time.sleep(.2)
RPi.GPIO.output(14, RPi.GPIO.LOW)
if duty == 0:
pwm.stop()
time.sleep(.2)
RPi.GPIO.output(14, RPi.GPIO.HIGH)
if duty > 0 and duty < 100:
if lastDuty == 0 or lastDuty == 100:
pwm.start(0)
time.sleep(1)
pwm.ChangeDutyCycle(duty)
lastDuty = duty
#print(duty,temp)
time.sleep(5)
except KeyboardInterrupt:
pass
pwm.stop()
time.sleep(1)
RPi.GPIO.output(14, RPi.GPIO.LOW)程序二参考:https://tieba.baidu.com/p/4238265567?red_tag=2276462921
#!/usr/bin/env python3
# encoding: utf-8
import RPi.GPIO
import time
RPi.GPIO.setwarnings(False)
RPi.GPIO.setmode(RPi.GPIO.BCM)
#下面多处14是我使用的BCM编码为14的GPIO,根据实际情况修改
RPi.GPIO.setup(14, RPi.GPIO.OUT)
pwm = RPi.GPIO.PWM(14, 75)
speed = 0
prv_temp =0
try:
while True:
tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
cpu_temp = int(tmpFile.read())
tmpFile.close()
if cpu_temp>=35000:
if prv_temp<35000 :
pwm.start(0)
pwm.ChangeDutyCycle(100)
time.sleep(.1)
speed = min( cpu_temp/125-257 , 100 )
pwm.ChangeDutyCycle(speed)
else :
pwm.stop()
prv_temp = cpu_temp
print(speed,cpu_temp)
time.sleep(5)
except KeyboardInterrupt:
pass
pwm.stop()以上为python3代码,树莓派中运行需要使用python3 fan.py运行
方法同上一篇文章用云服务器搭建自己的Frp服务
cd /lib/systemd/system
sudo nano fan.service编辑启动项:
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=python3 #文件完整路径,如/home/pi/fan.py
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target保存并退出后,使用systemctl start fan即可在后台启动温控程序
使用systemctl status fan可以查看运行状态,如果前面代码中print未被注释可以看到实时温度以及占空比
使用systemctl enable fan即可开机启动该程序

以下内容涉及过多终端,推荐用ssh连接后操作...
树莓派内连接wifi后:
有显示屏:打开终端,输入 ifconfig 查看当前的ip地址;
无显示屏:进入路由器后台或者热点查看连接列表,找到设备名为 raspberrypi,并记录下ip地址;
将ip地址填入ssh远程软件,然后远程连接到树莓派:
用户名为pi,默认密码为raspberry,如遇到第一次连接证书问题选择 是 即可
树莓派自带的软件源一般来说功能是比较齐全,但是由于地区原因访问较慢,甚至部分地区无法访问等,因此我们一般会先更换到国内软件源,再进行接下来的操作
raspbian 32位源:中科大源文档 http://mirrors.ustc.edu.cn/help/raspbian.html#
raspbian 64位x32位源:清华源文档 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
64位树莓派可以直接使用debian源
清华源debian源:https://mirrors.tuna.tsinghua.edu.cn/help/debian/
中科大debian源:http://mirrors.ustc.edu.cn/help/debian.html
更换源方法:
输入 sudo nano /etc/apt/sources.list 回车后进入编辑源配置文件,将官方源前面加#禁用,再在最后面添加各个源的链接
网上换源教程中,有提及/etc/apt/sources.list.d/raspi.list修改源的,这里不推荐修改,这是由树莓派基金会维护的源,内包括了树莓派特有的软件包、驱动等少量资源
第一步:sudo apt update
第二步:sudo apt upgrade -y(这一段可能比较漫长,等待即可,图中因校园网炸了,网速巨慢)

Fcitx及Google拼音:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
安装完重启即可
部分老32位系统默认是采用英文字库且没有中文的,因此我们可以手动安装中文字体让树莓派显示出中文(安装完后手动去raspi-config选择中文即可)sudo apt install ttf-wqy-zenhei
xrdp:sudo apt install xrdp
启动xrdp服务:sudo /etc/init.d/xrdp restart
检查端口是否正常占用:netstat -tnl (如果出现3389字样,说明开启成功)
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
输入并回车执行即可,根据提示输入yes等,安装过程会比普通服务器平台缓慢很多
本篇文章到此结束,需要更多内容请持续关注本博客!
]]>有时候在使用树莓派时并没有显示屏配件,这时候就需要远程操作了...
本篇文章推荐配合前篇一起阅读————树莓派4b上手准备工作 - 1

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wifi-name-1"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="wifi-name-2"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}其中,前三行为默认即可
ssid:网络的名称(避免中文名,树莓派无法识别)
psk:密码
priority:连接优先级,数字越大优先级越高(不能为负数)
scan_ssid:连接隐藏WiFi时需要指定该值为1
key_mgmt:wifi加密方法,可以参考手机上显示的信息,一般为WPA/WPA2加密
保存后关闭文件,然后新建ssh以及vnc空文件(之前64位系统不兼容vnc,有可能无法使用vnc连接)
将储存卡插入树莓派后开机
进入路由器后台(无路由器的话电脑或者手机开热点也可),找到连接信息中raspberrypi的ip地址,将其复制到远程软件中,进行连接即可
远程时默认用户名为pi,密码为raspberry
成功进入后一般显示为这样:
关于更多树莓派内容,还请多多关注本博客!
]]>博客开篇日志,记录一下我搞树莓派的前期流程,以便以后重置系统时方便用...
1、树莓派本体——Raspberry 4b
2、4GB以上储存卡——闪迪16GB储存卡
3、读卡器
4、液晶显示屏——3.5寸树莓派专用HDMI显示屏
5、网络-WIFI网络环境
6、线材——电源线、HDMI线等
7、树莓派迷你2.4GHz无线键鼠
树莓派64位官方镜像:https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-08-24/
其他镜像直接使用树莓派官方系统安装器即可直接下载安装
树莓派官方系统安装器: https://www.raspberrypi.org/software/
树莓派其他32位系统镜像:https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
将下载的压缩包解压出.img镜像文件后,使用树莓派官方镜像安装器安装:





将储存卡插入树莓派的卡槽后,通电开机...
第一次启动时会自动重启,再次启动会耗时较长,一般会直接进入系统,如无法进入桌面环境,输入startx即可
刚进入桌面,会提示为了安全性让用户修改默认密码,点击Ok关闭窗口
接下来进入树莓派开机引导(ssh连接时无此引导),借用其他网站的动图:
第一页设置国家、语言、时区,国家可以选择China,时区选择shanghai,推荐勾选use US keyboard,以纠正键盘键位用;如使用32位等系统,语言直接选择中文可能会乱码,因为需要安装字体,请阅读接下来的文章,了解一系列“装机必备”的操作;
第二页即为修改密码,不建议长期使用默认密码;
第三页有个设置screen,根据自己需求设置;
第四页为连接wifi界面,可以手动连接wifi,连接隐藏wifi时仍需要去修改配置文件;
第五页询问是否更新软件,选择跳过,不换源的情况下更新速度较慢;
最后设置完成后需要重启,选择立刻重启即可。
本篇文章到此结束,需要更多内容请持续关注本博客!
]]>