【樹莓派】項目一: DHT22溫溼度傳感器

前言

需要做一個實時監控環境溫度的系統,上網搜索後,發現硬件方面樹莓派連接傳感器用來監控溫度比較容易實現,不需要學習太多硬件方面的知識。傳感器方面我選擇DHT22,是因爲DHT22測試的範圍和精準度要比DHT11要高。

記錄一下從樹莓派開機、配置到項目成功運行

準備

硬件:

樹莓派4B、DHT22傳感器

參考資料:

樹莓派零基礎教程:https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi(B站同濟子豪兄有相應視頻)

DHT22用到的Python庫:https://github.com/adafruit/Adafruit_Python_DHT

參照項目:https://github.com/yfgeek/rpi-TempRuntime

相關庫的安裝:

1 # 逐行運行命令
2 sudo apt-get update
3 sudo apt-get install python-dev python-rpi.gpio
4 sudo apt-get install build-essential python-dev python-smbus python-pip
5 sudo pip3 install Adafruit_DHT
6 sudo pip2 install RPi.GPIO

項目的下載

# 將項目下載到/home/pi下任意目錄即可
git clone https://github.com/yfgeek/rpi-TempRuntime.git

進入該項目文件夾 /rpi-TempRuntime,項目內有多個傳感器的python文件,WITHOUT-LCD表示不帶屏幕輸出

我們對 DHT22-WITHOUT-LCD.py 進行修改

sudo nano DHT22-WITHOUT-LCD.py

找到26行,核心代碼,將GPIO#改爲自己傳感器所接的序號,這裏我接的是4

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

修改完成後,運行 DHT22-WITHOUT-LCD.py,即可在終端界面看到時間、溫度、溼度的輸出,生成的數據以JSON格式存儲在 /rpi-TempRuntime/web/data/min(或者hour)中。

項目每分鐘生成一組數據,按日期命名,存在/rpi-TempRuntime/web/data/min文件中,/rpi-TempRuntime/web/data/hour 存儲的則是每個小時的數據

/rpi-TempRuntime/web 中還有個index.html,是一個查詢網頁(注意:不會實時刷新,按日期查詢時,需要同時有分鐘數據和時鐘數據纔會生效)

本地服務器部署

Web服務器選擇nginx,相對APache的廣泛應用,nginx屬於輕量級服務器

安裝nginx

sudo apt-get install nginx

啓動nginx

sudo /etc/init.d/nginx start

測試安裝是否成功(nginx默認是80端口)

將樹莓派的ip地址設爲靜態ip(我的是192.168.31.102),先從內網測試是否安裝成功,在同一個局域網的機子上的瀏覽器上訪問 192.168.31.102。如果出現下圖則說明nginx安裝成功

修改nginx配置文件(使得nginx監聽上面設定的8888端口)

sudo nano /etc/nginx/sites-available/default

#直接修改以下內容:
listen行:修改兩處的監聽端口

server {
    listen 8888 default_server;
    listen [::]:8888 default_server;

    # SSL configuration
    #

#修改指定訪問html路徑
  root /home/pi/pyproject/sensor/rpi-TempRuntime/web;
  # Add index.php to the list if you are using PHP
  index index.html index.htm index.nginx-debian.html;

重新加載

sudo /etc/init.d/nginx reload 

啓動服務器

sudo /etc/init.d/nginx start

#停止
sudo /etc/init.d/nginx stop

 

瀏覽器上訪問 192.168.31.102:8888

 

 

 

參考文檔:https://www.jianshu.com/p/8077e28db96a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章