树莓派远程连接及DHT11获取数据存储

树莓派4B SSH远程连接

所需工具

​ 网线一根

​ 树莓派4B一个

​ IP Scanner(Advanced IP Scanner – 免费下载网络扫描程序。 (advanced-ip-scanner.com)

​ Putty(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

​ VNC viewer(https://www.realvnc.com/en/connect/download/viewer/)

连接方法

​ 将树莓派用网线连接路由器,笔记本连接该路由器WiFi(emmm我只有一根网线,只需要保证树莓派和笔记本在同一局域网下即可)

​ ps:我尝试了用网线连接笔记本和树莓派,虽然可以获取树莓派的IP地址,但是树莓派ping不通外网,也ping不通笔记本。

打开路由器后台找到有个叫raspberrypi的就是我们的树莓派,如下图

在这里插入图片描述

也可以用IP scanner扫(这个软件可以查询同一局域网下所有设备的IP地址)

在这里插入图片描述

然后打开putty,按下图步骤操作

在这里插入图片描述

点击Open后,输入用户名,密码就连接上了

在这里插入图片描述

试一下ping 百度

ping www.baidu.com

在这里插入图片描述

远程连接图形化界面

开启树莓派VNC-server

sudo raspi-config

在这里插入图片描述

​ 选择第三个Interfacing Options->Enable->yes,至此就打开了树莓派的VNC服务了。

打开VNC viewer

在这里插入图片描述

然后填写树莓派的IP地址(前面已经获取过了)

在这里插入图片描述

点击ok后会出现一个名为pi的连接

在这里插入图片描述

点击这个蓝电脑,输入用户名,密码就可以远程连接到树莓派的图形化界面了

在这里插入图片描述

在这里插入图片描述

树莓派4B连接DHT11读取温湿度

DHT11与树莓派4B的连接

DHT11有三个引脚,分别是VCC(正极),out(输出数据的),GND(负极),使用三根杜邦线分别将VCC连接3.3V(接5v也可以,DHT11供电电压范围是3-5.5v),out连接GPIO(IO口,数据传输用的),GND连接ground

在这里插入图片描述

在这里插入图片描述

在树莓派上导入Adafruit_DHT的库

从github上获取Adafruit库

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git

这里已经导过了

在这里插入图片描述

安装完成后pi文件夹下会新增Adafruit_Python_DHT文件夹,进入该文件夹安装库。

cd Adafruit_Python_DHT
sudo python setup.py install

安装完成是这样的

在这里插入图片描述

打开Adafruit_DHT目录下的platform_detect.py,进行如下修改

cd Adafruit_DHT
vi platform_detect.py

这里这一步是定义树莓派版本BCM2711是树莓派4B的CPU型号,如果这段有你用的树莓派型号就不用加。

在这里插入图片描述

PS:这里修改完后可能会报错,权限不够无法保存,我们修改文件权限

chmod 777 Adafruit_Python_DHT

后面还要对这个文件夹里的内容修改,所以我把整个文件夹权限都改了

这些操作完,就完成Adafruit_DHT库的安装了

使用Adafruit_DHT库获取温湿度数据

安装完成后进入examples(这里面是一些示例文件)文件夹运行AdfruitDHT.py可以获得结果:

在这里插入图片描述

运行AdfruitDHT.py

python3 AdafruitDHT.py 11 4

PS:这里传入的参数11代表的是使用的是DHT11传感器,如果是DHT22,就改成22

​ 4 代表的是我们信号引脚(out)连接的是GPIO4

结果如下图:

在这里插入图片描述

项目应用

现在写python脚本,实现每五秒获取一次温湿度数据,并记录在数据库中

配置数据库

我这里想要装MySQL数据库的…

sudo apt install mysql-server

然后

在这里插入图片描述

百度了一下

MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

没办法安装mariadb-server

sudo apt install mariadb-server

等待安装完成

在这里插入图片描述

配置mariadb-server

进入服务器

sudo mysql

创建访问密码

UPDATE user SET password = password('密码') WHERE user = 'root';

ps:可能会报错,这个表明你的Mariadb版本有点超前了,10.4.4版本之前可以使用上面的命令修改密码

在这里插入图片描述

10.4.4之后的版本使用下面这条命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

执行完毕之后还重启服务器

sudo systemctl restart mariadb

登录

mysql -u root -p

创建数据库

CREATE DATABASE PI_TEST

创建表

create table test1(
num int primary key AUTO_INCREMENT,  #主键自增
time datetime,  #时间
temp double,  #温度
humi double  #湿度
);

在这里插入图片描述

python连接数据库

安装pymysql库

pip install pymysql

直接上代码

import Adafruit_DHT

import pymysql

import time 

sensor = Adafruit_DHT.DHT11

pin = 4



#create SQL connect

conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db='pi_test')

cursor = conn.cursor()

while(1):

    

    humidity, temperature = Adafruit_DHT.read_retry(sensor,pin)

  

    if humidity is not None and temperature is not None:

        t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())

        print(t+'  Temp={0:0.001f}*  Humidity={1:0.001f}%'.format(temperature, humidity))

        sql = 'insert into test1(time,temp,humi) values (%s,%s,%s)'

        param=(t,temperature,humidity)

        cursor.execute(sql,param)

        conn.commit()

        

    else:

        print('Failed to get reading. Try again!')

    time.sleep(5)

conn.close()

cursor.close()

运行脚本

python 1s-test.py 

在这里插入图片描述

数据库情况

在这里插入图片描述

Ps:(脚本我是放在Adafruit_DHT文件夹里面执行的,否则会缺乏依赖)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐