用樹莓派實現室內溫度監控


樹莓派加上溫度傳感器實現室內溫度監控。可用於家庭,轎車,工業,農業 等許多方面。可做溫度預警,自動降溫等操作。各位小伙伴可自行腦補發揮。

 

1.硬件准備

a.樹莓派(Raspberry Pi)一個

b.DS18B20溫度傳感器一個

c.4.7kΩ電阻一個 或 DS18B20模塊一個

d.杜邦線(雙頭母)

 

2.組裝(如圖)

按照例圖接好線 組裝完成以后,確認硬件接線是否正確並生效。首先使用命令升級內核,命令如下:

apt-get update

apt-get upgrade

  

打開配置文件 sudo nano /boot/config.txt  在最后一行手動添加

dtoverlay=w1-gpio-pullup,gpiopin=4,保存並重啟樹莓派。

 

確認設備是否生效

sudo modprobe w1-gpio

sudo modprobe w1-therm

cd /sys/bus/w1/devices/

ls

顯示結果:

pi@raspberrypi:~$ cd /sys/bus/w1/devices/

pi@raspberrypi: /sys/bus/w1/devices$ ls

28-00000494cb79 w1_bus_master1

 

查看當前溫度:

cd 28-00000494cb79

cat w1_slave

顯示結果:

70 01 4b 46 7f ff 10 10 e1 : crc=e1 YES

70 01 4b 46 7f ff 10 10 e1 t=25000

 

第二行的t=23000就是當前的溫度值,要換算成攝氏度,除以1000,即當前溫度為25000/1000=25攝氏度。

3.用python讀取溫度值

 

#/home/pi/temperature.py
#打開溫度傳感器文件
tfile = open("/sys/bus/w1/devices/28-00000494cb79/w1_slave")
#讀取文件所有內容
text = tfile.read()
#關閉文件
tfile.close()
#用換行符分割字符串成數組,並取第二行
secondline = text.split("\n")[1]
#用空格分割字符串成數組,並取最后一個,即t=23000
temperaturedata = secondline.split(" ")[9]
#取t=后面的數值,並轉換為浮點型
temperature = float(temperaturedata[2:])
#轉換單位為攝氏度
temperature = temperature / 1000
#打印值
print temperature

 

將以上代碼文件存放:/home/pi/temperature.py   命令行運行代碼。

python /home/pi/temperature.py  就可得出結果數值

 

4.數據上報物聯網平台

yeelink是國內比較知名的免費物聯網數據平台,國外有COSM(https://cosm.com)。注冊yeelink 賬號並添加設備和傳感器。

修改剛剛寫好的 Python 文件 ,將溫度值用JSON格式保存到一個文本文件。

#/home/pi/temperature.py
#打開溫度傳感器文件
tfile = open("/sys/bus/w1/devices/28-00000494cb79/w1_slave")
#讀取文件所有內容
text = tfile.read()
#關閉文件
tfile.close()
#用換行符分割字符串成數組,並取第二行
secondline = text.split("\n")[1]
#用空格分割字符串成數組,並取最后一個,即t=23000
temperaturedata = secondline.split(" ")[9]
#取t=后面的數值,並轉換為浮點型
temperature = float(temperaturedata[2:])
#轉換單位為攝氏度
temperature = temperature / 1000
#拼接API 所需json數據
res = '{"value":%f}' %temperature
#打開創建文件,將溫度值寫入:/home/pi/datafile.txt
output = open('/home/pi/datafile.txt', 'w')
#寫入數據
output.write(res)
#關閉文件
output.close

 

新增yeelink.sh腳本,文件位置:/home/pi/yeelink.sh ,內容如下:

sudo python /home/pi/temperature.py
curl --request POST --data-binary @"/home/pi/datafile.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX" http://api.yeelink.net/v1.0/device/1969/sensor/2533/datapoints

將U-ApiKey:XXXXXXXXXXXXXXXX替換為自已賬戶的API Key。
后面的URL也需要替換為自己申請的傳感器URL。

 

添加到計划任務

#為腳本增加可執行權限
sudo chmod +x yeelink.sh
#將腳本加入cronjob(計划任務)
sudo crontab -e
#在cornjob文件中添加下面一行,並保存(表示20分鍾執行一下腳本,時間可自行修改)
*/20 * * * * /home/pi/yeelink.sh

 

這樣就好20分鍾講溫度數據上傳到 yeelink 物聯網平台,然后就可以在個人頁面 看到數據變化曲線了。當然你也可以自己在樹莓派上自己做頁面,做曲線圖分析數據及其他功能。這個就要靠各位自己發揮想象了。嘿嘿~~

 

關注一下,

👇👇👇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM