树莓派利用DHT11上传数据到电脑MySQL上

工具:
树莓派 * 1
温湿度传感器DHT11 * 1

在开始实验之前,要在电脑上安装MYSQL,并且建立好一个数据库连接。这里我用Navicat Premium连接电脑刚刚创建好的数据库,在数据库中新建一个表。这里连接提一句,在这里插入图片描述
连接名可以随便取,主机可以直接填localhost,也可以直接填本地ip地址。这个端口因人而异,可能是3306,也可能是3308等等。之后,就是填自己的用户名和密码。不过,这里要注意root用户一开始没有远程登陆的功能,需要在电脑终端给他赋权!!!首先,在电脑的cmd下(注意要在MySQL安装bin目录下)登录mysqlmysql -h localhost -uroot -p,
还有就是给树莓派访问权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'树莓派ip地址' IDENTIFIED BY '你的root用户密码' WITH GRANT OPTION;然后输入FLUSH PRIVILEGES;让刚刚指令生效,这里还是重启一下MySQL,可以直接exit;一下。到这里对电脑配置就结束了,对了,还有如果你们到时运行树莓派代码出现 远程连接失败(错误码:2003),像下图:
在这里插入图片描述
这是因为,你的防火墙开了,把防火墙关掉就不会报这个错误了。
下面转到树莓派上,树莓派如果想用Adafruit_DHT这个库得先去下载,git clone https://github.com/adafruit/Adafruit_Python_DHT.git,解压然后因为cd Adafruit_Python_DHT目录下,(如果你用的是树莓派4B,还得,在Adafruit_DHT目录下找到platform_detect.py这个文件在这里插入图片描述
在112行补上下面那句话在这里插入图片描述
然后转到上一级目录sudo python3 setup.py install进行安装,安装完后可以进入examples目录运行测试文件,如果出现下图情况说明安装成功了(那两个参数,前一个是指明是DHT11还是DHT22,后面是以BCM为编码的接温湿度传感器数据引脚。在这里插入图片描述
终于到最后上传数据代码了,这里要远程连接MYSQL
con = pymysql.connect(host='你电脑ip地址',port=端口号,user='用户名',db='你刚刚创建的数据库',passwd='密码')这个很关键,


import pymysql

import Adafruit_DHT
import time

pin = 17  # DHT11在BCM编码下接数据引脚

global sensor
sensor = Adafruit_DHT.DHT11

con = pymysql.connect(host='你电脑ip地址',port=端口号,user='root',db='你刚刚创建的数据库',passwd='123')#远程连接MYSQL

cur = con.cursor()#创建游标

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)#dht11读数据
while True:
    if humidity is not None and temperature is not None:
        print('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
    else:
        print('Failure,Try again!')
        break
    time.sleep(1)                 # 延时1s

    sql="insert into 自己新建的表 values(%s,%s)"
    #由于上传数据只能是字符串,所以这里进行强制转换
    insert=cur.executemany(sql,[(str(temperature),str(humidity))])
    print('sucess',insert)
cur.close()
con.commit()
con.close()

然后运行,刷新Navicat Premium中刚刚新建的表,最后可以看到有数据。在这里插入图片描述
这里上传数据当然不限于DHT11,你们也可以加上其他传感器试试,剩下就看看你们自己的发挥了。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>