树莓派温湿度监督玩具
基于 Rasperry Pi 3B and Arduino
公司为了防止夏天机房温度过高,需要一个温度监测工具,其实市面上的小米温度监测只要35块,但是想着可自定义扩展的需要,就做了一个从硬件到软件的温湿度监测系统,好在用了一个周末做出来了,考虑到之后还要增加电压警告等功能,选型如下:
- 开发板:(来自万能的大淘宝)
- Rasberry Pi 3B:中央控制服务器,负责与互联网的通信、采样存储 Arduino 上报的状态数据、提供/调用API以方便用其他终端控制。
- Arduino UNO:负责传感器采样,和 RPi 进行通信。
- 温度传感器:DHT22
- 语言:Python3,Java8
- 存储:Mysql,Redis
Arduino
1 | #include "DHT.h" |
RasberryPi 3B
安装系统
镜像:raspbian-stretch-lite
microSD卡:16G,推荐8G以上
将SD卡格式化:(Mac)磁盘工具–>抹掉–>MS-DOS(FAT)–>抹掉
终端df-h查看挂载,SD 卡假设为 /dev/disk2s1
卸载 SD 卡diskutil unmount /dev/disk2s1
diskutil list 确认 /dev/disk2 下的 disk2
官网下载镜像,写入 SD 卡sudo dd bs=4m if=本机镜像路径 of=/dev/disk2查看进度可以另起终端 sudo kill -INFO $(pgrep ^dd)
由于树莓派默认不开启 ssh,写入成功后在 /boot/ 创建无后缀的文件名为 ssh 的文件
设置自动连接 Wi-Fi:在 /boot/ 下创建 wpa_supplicant.conf
1
2
3
4
5
6
7
8country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
scan_ssid=1#SSID被隐藏时设置
ssid="TaiGe"#Wi-Fi名
psk="HaoyunHu888"#Wi-Fi密码
}弹出SD卡diskutil unmountDisk /dev/disk2
以上,RasberryPi的系统安装完成,可以将SD卡插入开发版上电开机了
登录系统
SSH
1 | ssh [email protected] |
通过路由器查看树莓派的当前ip:
打开网页192.168.1.1,登录系统
状态/用户侧信息/以太网接口信息/,找到客户端名称为raspberrypi的IP地址
关机sudo shutdown -h now,重新上电后会自动开机
RaspberryPi读取Arduino数据
安装Python3
1 | sudo aptitude install python-dev |
安装Python的GPIO模块
用于控制LED、电机等
1 | sudo apt-get install rpi.gpio |
安装Serial
用于串口通信及USB通信sudo apt-get install python-serial
安装串口调试程序
minicom是linux平台串口调试工具,可以用它来读取Arduino通过USB串口发送的传感器数值。
在RaspberryPi上安装minicom:sudo apt-get install minicom
配置minicom:
minicom启动:minicom -b 9600 -D /dev/ttyACM0
- -b代表波特率
- -D代表端口
- /dev/ttyACM0 代表打开与Arduino相连的端口
Python打印数据
show.py
1 | import serial |
Python调用http API
安装requests
sudo pip install requests
后台运行py脚本
nohup python api.py &