毕设笔记07-Arduino+dht11+2.4G实现将采集的数据无线传输并保存到本地
程序员文章站
2022-07-14 08:05:18
...
毕设笔记07-Arduino+dht11+2.4G实现将采集的数据无线传输并保存到本地
之前的帖子陆续实现了将采集的数据通过串口线保存到本地,详见毕设笔记05,这次使用两个2.4G无线通信模块,实现采集数据的无线传输并通过Python自动保存到本地;
1、2.4无线通信模块设置
新购买的2.4G无线通信模块为了方便用户使用,设置好了AT模式,默认波特率为9600,这里我们需要两个2.4G无线通信模块,并且电脑端还需要一个USB-TTL模块,USB-TTL与2.4G接线如下表:
USB-TTL模块 | 2.4G无线通信模块 |
---|---|
+5V | VDD |
GND | GND |
RXD | TXD |
TXD | RXD |
3V3(悬空不接) | CND(悬空不接) |
将连接好的USB-TTL模块插入电脑的USB接口,打开设备管理器,点击其他设备,显示未识别设备,如下图所示,这时候需要安装驱动程序驱动程序网盘链接(提取码r9u4),下载解压安装即可(注:安装前务必移除USB-TTL模块,驱动安装成功之后再插入即可),然后重新插入USB-TTL模块,点击端口,查看端口号;
2、Python代码
import time
import serial
ser = serial.Serial(
port='COM4', #端口号
baudrate=9600,
parity=serial.PARITY_ODD, # 校验位
stopbits=serial.STOPBITS_TWO, # 停止位
bytesize=serial.SEVENBITS # 数据位
)
data = ''
while True:
data = ser.readline()
t = time.time()
ct = time.ctime(t)
print(ct, ':')
print(data)
f = open('D:/1.txt', 'a')#数据保存的路径,提前建立好文件
f.writelines(ct)
f.writelines(':\n')
f.writelines(data.decode('utf-8'))
f.close()
3、Arduino代码(先编译代码上传到Arduino后再接线):
#include <dht11.h>
#include <Arduino.h>
#define DHT11_PIN 2
unsigned int sensorValue = 0;
dht11 DHT;
void setup(){
Serial.begin(9600);
}
void loop(){
int chk;
chk = DHT.read(DHT11_PIN);
Serial.print("HUM = ");
Serial.print(DHT.humidity);
Serial.println(" %RH");
Serial.print("TEM = ");
Serial.print(DHT.temperature);
Serial.println(" ℃");
delay(2000);
}
4、Arduino与2.4G接线
DHT11的DATA接口连接Arduino的数字2接口
Arduino | 2.4G无线通信模块 |
---|---|
RX | TXD |
TX | RXD |
GND | GND |
5V | VDD、CMD |
5、运行测试
接线完毕给Arduino通电,紧接着运行上边的python代码,运行结果如下图:
打开本地的1.txt文件,显示已经保存的数据: