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