前
想起來自己的樹莓派從高考前一天買回來已經(jīng)好久了(呵呵呵大家不要學(xué)我漏隐,高考的時候還在惦記著這些有的沒的)鳞疲,這么久一直在搗鼓軟件相關(guān)的東西闸准,想來GPIO這么有用的東西也沒有怎么動,所以在國慶前一晚深夜時分買了個DHT22溫濕度傳感器户誓,想著來度過國慶這幾天的發(fā)霉時光饼灿,沒想到結(jié)果一個下午就搞定了......其實(shí)還是主要看了一個大佬的項目,才搞得這么快帝美,不過在使用的過程中也遇到了一些坑碍彭,這里也順便做一些記錄,給后來的人指一下路悼潭。
話不多說庇忌,先上個圖。
Demo
正文
教程內(nèi)容
本文主要參照項目 rpi-TempRuntime
- DHT22溫濕度傳感器的安裝
- 傳感器信息的采集
- http服務(wù)器部署
- frp內(nèi)網(wǎng)穿透
DHT22溫濕度傳感器的安裝
需要材料:
樹莓派舰褪、面包板皆疹、面包線(母對母、公對公多條)占拍、袖珍面包板略就、10KΩ電阻一個、DHT22溫濕度傳感器
傳感器連接方式:
我的連接方式:
細(xì)心的人或許會發(fā)現(xiàn)不同晃酒,電路圖上的傳感器是四個腳的表牢,而我的或者你買的都是三個腳的,這里我們只要按照GPIO以及傳感器腳對應(yīng)來連接即可:
VCC(+) 連接
DC power 5V
(亮紅色)
DATA(out) 連接GPIO#
(綠色任意并請記住序號贝次,我用的是 GPIO04)
GND(-) 連接GND
(黑色)
10KΩ電阻并聯(lián)在 DATA 與 VCC 之間(這里就要用到面包板了崔兴,具體操作看我的實(shí)物圖)
傳感器信息的采集
這里我們主要依賴到一個python庫 Adafruit_Python_DHT
依賴的安裝
#安裝方法源于 rpi-TempRuntime
#逐行運(yùn)行命令
sudo apt-get update
sudo apt-get install python-dev python-rpi.gpio
sudo apt-get install build-essential python-dev python-smbus python-pip
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
sudo pip install RPi.GPIO
項目的下載
sudo mkdir /var/www/html
cd /var/www/html
git clone https://github.com/yfgeek/rpi-TempRuntime.git
運(yùn)行之前
我們需要對DHT22-WITHOUT-LCD.py
進(jìn)行修改來使其順利地獲取傳感器數(shù)據(jù)。
cd /var/www/html/rpi-TempRuntime
sudo nano DHT22-WITHOUT-LCD.py
找到第26行
將humidity, temperature = Adafruit_DHT.read_retry(sensor, 26)
中的26
改為自己的GPIO#
序號蛔翅,例如我的就改成humidity, temperature = Adafruit_DHT.read_retry(sensor, 4)
恼布,保存退出,不會的請查找nano用法搁宾。
其實(shí)這一條也是最核心的代碼折汞,如果要單單挑出來的話
來源:http://www.reibang.com/p/42fed7f1f610
import Adafruit_DHT
sensor = Adafruit_DHT.DHT22
humidity, temperature = Adafruit_DHT.read_retry(sensor, GPIO#)
print(humidity, temperature)
運(yùn)行
screen
sudo python DHT22-WITHOUT-LCD.py
等一會你就會在終端界面中看到時間、溫度以及濕度的輸出了盖腿。這個項目還會生成一個簡單的查詢網(wǎng)頁爽待,在/var/www/html/rpi-TempRuntime/web
中损同,歷史數(shù)據(jù)以JSON格式存儲在/var/www/html/rpi-TempRuntime/web/data/min(或者h(yuǎn)our)
中。
http服務(wù)器部署
既然這個項目為我們生成了http頁面我們就要用上對吧鸟款,這里我們使用caddy膏燃。
安裝方法參考自:https://pimylifeup.com/raspberry-pi-caddy-web-server/
curl https://getcaddy.com | bash -s personal
sudo mkdir /etc/caddy
sudo nano /etc/caddy/Caddyfile
輸入
:80 localhost:80 {
/var/www/html/rpi-TempRuntime/web
gzip
}
啟動caddy
cd /etc/caddy
screen
caddy
此時你就可以通過瀏覽器訪問樹莓派的ip來訪問頁面了。
frp內(nèi)網(wǎng)穿透
如果想在公網(wǎng)訪問這個在內(nèi)網(wǎng)的頁面則需要frp來轉(zhuǎn)發(fā)樹莓派的80端口何什,具體操作在這里就不贅述了组哩,可以參考我的另一篇文章中,frp的部分处渣。
后
寫完了伶贰,吃晚飯去了
我tmd中秋沒留學(xué)校你們這么鬼多活動,我這國慶留在學(xué)校tmd個個都回家了罐栈,呵呵呵呵