所需材料:一张8G的SD储存卡,显示屏,键盘,鼠标
到树莓派官网下载noobs,网址为https://www.raspberrypi.org/downloads/noobs/png)
,将下好的文件放入之前准备好的SD卡中,之后插入树莓派将自动安装
1.需要将树莓派和显示屏,鼠标,键盘连接
(建议小白这样操作,比较方便,当然如果你没有那么多设备,可以使用串口连接,下面会有说明)。
2.设置树莓派网络和密码。当你打开显示屏,想必你立刻就知道如何设置网络和密码,网络随便连接一个WIFI即可。家用网络和公用网络不同,有一些区别,下面会专门讲。
3.打开树莓派终端,输入ifconfig,得到树莓派IP地址,如图
在wlan0中你可以看到这里我的树莓派IP地址是192.168.137.107
__连接树莓派选择很多,在这里我将每一种方法列出来,我将它们整理好放在这里,你们可以根据自己的需求选择连接方式。
1.VNC连接2.putty连接3.远程桌面连接
这三种方法在你已经得到树莓派的IP地址后连接都比较简单,直接下载或打开对应软件,在相应位置输入IP地址,打开后在输入之前设置好的密码,进入即可连接,让你们看一下效果图:
由于VNC和远程桌面连接效果图差不多,这里就不放连接VNC效果图。
4.串口连接
如果懂得linux操作系统和基本串口知识可以尝试使用串口连接,14,15GPIO,引脚号为8,10,分别是TX,RX,USB转TTL串口线一端连接树莓派引脚,即TX和RX,注意VCC为3.3V电压,超出可能烧坏树莓派,另一端连接电脑USB端口,打开电脑设备管理器,找到你所用端口COM号,用putty中serial连接即可,如果你无法连接,可能你的系统默认串口关闭,这样如果还想使用串口连接可自行查找方法。
首先设置zigbee模块,如果你的zigbee是在淘宝上买的,可以问一下客服设置方法,如果是zigbee开发板,那请根据你自己所设定的条件去操作。
我买的是深联智达厂家提供的zigbee模块,设置方法是由客服提供的,简单介绍一下,首先使用USB转串口线连接,TX对TX,RX对RX插入电脑,长按设置键设置。我这里设置波特率为9600,信道可以任意,工作模式为点对点A模式。
zigbee连接树莓派时请注意可能是TX对TX,RX对RX;也可能是TX对RX,RX对TX,然后插入树莓派USB口连接,我尝试了使用杜邦线将GPIO14,15引脚与zigbee连接,结果接收信息为乱码,猜测可能是当时没有解码。推荐使用USB口连接zigbee
首先是测试代码:
import serial
import time
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=0.5)
if ser.isOpen:
f=open('/home/pi/data.txt','w')
try:
getBytes=b''
while True:
size = ser.inWaiting()
if size>0:
response =ser.readline()
print(response)
if response!=getBytes:
getBytes=response
f.write(response.decode('utf-8'))
f.write('\n')
time.sleep(1)
except KeyboardInterrupt:
ser.close()
f.close()
这里使用USB0连接,如果你使用其他USB口可用 ls /dev查看是哪个USB口。
如果连接成功,你可以在终端上看到zigbee发来的信息了,并且将其保存在data.txt中,你可以在这个文件中查看是否正确。
自行在阿里云创建账号,配置树莓派阿里云环境。
https://help.aliyun.com/document_detail/98292.html?spm=a2c4g.11186623.2.18.7cfe5b3e6zwAah#h2–linkkit5
我是使用python连接阿里云并上传数据。首先修改下面部分代码改为自己的阿里云四元组信息。
options = {
'productKey':
'deviceName':
'deviceSecret':
'port':1883,
'host':'iot-as-mqtt.cn-shanghai.aliyuncs.com'
}
然后将下列代码在python中运行,将数据封装到Json格式送到阿里云。你可以在电脑端调试zigbee远程发送信息到阿里云,这里每到6个数据将发送一次。
def worker(client):
topic = '/sys/'+options['productKey']+'/'+options['deviceName']+'/thing/event/property/post'
while True:
time.sleep(1)
ser = serial.Serial("/dev/ttyUSB0", 9600, timeout=0.5)
recv = []
copy = []
x=1
y=1
getbytes = b''
while True:
count = ser.inWaiting()
if count > 0:
data = ser.read(count)
if data != getbytes:
getbytes = data
s = getbytes.decode(encoding='utf-8')
copy = s.split()
recv.extend(copy)
if len(recv) > 5:
x_bit = recv[0:3]
y_bit = recv[3:6]
xx = ''.join(x_bit)
yy = ''.join(y_bit)
x = xx
y = yy
recv=[]
time.sleep(1)
if position_x!=0 or position_y!=0:
payload_json = {
'id': int(time.time()),
'params': {
'x': int(x),
'y': int(y),
},
'method': "thing.event.property.post"
}
print('send data to iot server: ' + str(payload_json))
client.publish(topic, payload=str(payload_json))
这里将数据分成两部分到整型变量x和y,发送到阿里云。
如图是成功发送的数据:
之后你可以设置开机自行运行所设置代码,即可时时远程获取数据,并且在云端上监控。