物聯(lián)網(wǎng)無線氣象站使用Arduino, ESP8266和ThingSpeak
全球變暖導(dǎo)致了不可預(yù)測的氣候;世界各地的研究人員正在使用氣象站來觀察記錄和分析天氣模式,以研究氣候變化并提供天氣預(yù)報。這些氣象站通常包括幾個傳感器來測量環(huán)境參數(shù)和一個監(jiān)測或記錄系統(tǒng)來分析這些參數(shù)。在本教程中,我們將學(xué)習(xí)如何建立一個基于無線物聯(lián)網(wǎng)的氣象站,可以測量關(guān)鍵的環(huán)境參數(shù),如溫度,濕度和壓力。此外,由于我們的氣象站啟用了物聯(lián)網(wǎng),我們可以將這些參數(shù)發(fā)送到ThingSpeak頻道(物聯(lián)網(wǎng)云),在那里我們可以遠程存儲、分析和訪問數(shù)據(jù)。我們之前也用樹莓派建立了一個類似的氣象站,它與這個項目非常相似。
我們將使用Arduino板以及DHT11傳感器,BMP180傳感器和ESP8266 wifi模塊。DHT11傳感器檢測溫度和濕度,BMP180傳感器計算壓力,ESP8266用于互聯(lián)網(wǎng)連接。在我們之前的項目中,我們已經(jīng)學(xué)會了用Arduino使用DHT11傳感器來監(jiān)測溫度和濕度,在這個項目中,我們將添加另一個傳感器(BMP180)來使用Arduino制作一個完整的氣象站。將這些數(shù)據(jù)發(fā)送到ThingSpeak可以從世界任何地方進行實時監(jiān)控,我們也可以查看記錄數(shù)據(jù),這些數(shù)據(jù)將存儲在他們的網(wǎng)站上,甚至可以隨著時間的推移繪制圖表來分析它。
組件的要求
?Arduino Uno
?ESP8266 wifi屏蔽
?DHT11傳感器
?BMP180傳感器
?電路試驗板
?跳線
線路圖
基于Arduino的物聯(lián)網(wǎng)氣象站的完整電路如下所示。
DHT11傳感器由Arduino的5V引腳供電,其數(shù)據(jù)引腳連接到引腳5進行單線通信。BMP180傳感器由Arduino的3.3V引腳供電,其數(shù)據(jù)引腳SCL (Serial Clock)和SDA (Serial data)分別連接到Arduino的A4和A5引腳進行I2C通信。
ESP8266模塊也由Arduino的3.3V引腳供電,其Tx和Rx引腳連接到Arduino的數(shù)字引腳2和3進行串行通信。您可以使用下表作為建立連接的參考。
建立你的ThingSpeak頻道
ThingSpeak是一個開放的數(shù)據(jù)平臺,它允許你在云中聚合、可視化和分析實時數(shù)據(jù)。你可以使用ThingSpeak控制你的設(shè)備,你可以從你的設(shè)備向ThingSpeak發(fā)送數(shù)據(jù),甚至你可以創(chuàng)建實時數(shù)據(jù)的即時可視化,并使用Twitter和Twilio等網(wǎng)絡(luò)服務(wù)發(fā)送警報。ThingSpeak集成了數(shù)值計算軟件MATLAB的支持。MATLAB允許ThingSpeak用戶編寫和執(zhí)行MATLAB代碼來執(zhí)行預(yù)處理,可視化和分析。ThingSpeak至少需要15秒來更新你的讀數(shù)。我們還用ThingSpeak做了其他有趣的項目,比如:
?NodeMCU溫濕度監(jiān)控
?ESP32溫濕度監(jiān)測
?向ThingSpeak發(fā)送數(shù)據(jù)可以使用樹莓派
步驟1:ThingSpeak帳戶設(shè)置
要在ThingSpeak上創(chuàng)建一個頻道,首先,你需要注冊ThingSpeak。如果你已經(jīng)有了ThingSpeak的賬戶,用你的id和密碼登錄。
如果你沒有賬戶,點擊“唱歌”,如果你已經(jīng)有了賬戶,點擊“登錄”。點擊注冊后,填寫您的詳細信息。
在此之后,驗證您的電子郵件id并單擊continue。
步驟2:為你的數(shù)據(jù)創(chuàng)建一個通道
一旦您登錄后,您的帳戶驗證,創(chuàng)建一個新的通道,點擊“新通道”按鈕。
點擊“新通道”后,輸入您想要上傳的數(shù)據(jù)的名稱和描述。
在字段1中輸入數(shù)據(jù)名稱“濕度”,在字段2中輸入“溫度”,在字段3中輸入“壓力”。如果您想使用更多的字段,您可以選中字段選項旁邊的框,并輸入數(shù)據(jù)的名稱和描述。
在此之后,單擊保存通道按鈕保存您的詳細信息。
步驟3:API密鑰
為了向ThingSpeak發(fā)送數(shù)據(jù),我們需要一個唯一的API密鑰,我們將在后面的代碼中使用它來將傳感器數(shù)據(jù)上傳到ThingSpeak網(wǎng)站。
點擊“API密鑰”按鈕,獲取您上傳傳感器數(shù)據(jù)的唯一API密鑰。
現(xiàn)在復(fù)制你的“寫API密鑰”。我們將在代碼中使用這個API鍵。
代碼的解釋
編程部分在執(zhí)行項目中的所有操作中起著非常重要的作用。像往常一樣,完整的代碼在最后給出。通過包含所有必需的庫和定義所有變量來啟動代碼。
在此之后,輸入Wi-Fi名稱,Wi-Fi路由器的密碼,然后輸入從ThingSpeak頻道復(fù)制的API密鑰。
在void setup()函數(shù)中,連接Wi-Fi并啟動BMP180和DHT11傳感器。
使用void Transmission()函數(shù),我們使用BMP180和DHT11傳感器計算溫度、濕度和壓力。
這些命令用于連接ThingSpeak服務(wù)器,然后打印不同字段的溫度、濕度和壓力值。
運行物聯(lián)網(wǎng)Arduino氣象站
現(xiàn)在將Arduino與筆記本電腦連接,正確選擇主板和端口,然后單擊Upload按鈕。上傳代碼后,打開串口監(jiān)視器。設(shè)置串口顯示器的波特率為9600。您將在串行監(jiān)視器上看到您的Wi-Fi Id,密碼以及溫度,濕度和壓力值。
現(xiàn)在導(dǎo)航到ThingSpeak頻道并檢查你的頻道,你會看到溫度、濕度和壓力值,如下圖所示。
這就是你如何建立Arduino氣象站的溫度,濕度和壓力可以通過互聯(lián)網(wǎng)從世界任何地方監(jiān)控。
本文編譯自iotdesignpro