概述
我們已經(jīng)看到了一個(gè)使用ESP8266和aREST平臺(tái)的IoT實(shí)現(xiàn)。是什么讓ThingSpeak變得與眾不同,那就是使用簡(jiǎn)單的HTTP協(xié)議來(lái)傳輸,存儲(chǔ)和檢索來(lái)自不同傳感器的信息。
此外,ThingSpeak應(yīng)用程序允許我們記錄傳感器數(shù)據(jù),跟蹤位置甚至社交網(wǎng)絡(luò)。
關(guān)于ThingSpeak的另一個(gè)重要的事情(或者更確切地說(shuō)是一個(gè)獨(dú)特的功能)是它對(duì)MATLAB的支持。 ThingSpeak和MATLAB之間的密切關(guān)系導(dǎo)致將MATLAB的幾個(gè)關(guān)鍵特性集成到ThingSpeak應(yīng)用程序中。
其中一個(gè)特性是分析和可視化用戶數(shù)據(jù),即傳感器數(shù)據(jù)沒(méi)有MATLAB許可證的圖形化方式。
將公司的東西放在一邊,ThingSpeak應(yīng)用程序是我們物聯(lián)網(wǎng)相關(guān)項(xiàng)目的一個(gè)很好的工具,因此這個(gè)項(xiàng)目專注于基礎(chǔ)知識(shí),即如何將ESP8266連接到ThingSpeak應(yīng)用程序以及如何在未來(lái)的項(xiàng)目中使用ESP8266 ThingSpeak接口。
創(chuàng)建ThingSpeak帳戶
您需要做的第一件事是使用ThingSpeak創(chuàng)建一個(gè)帳戶。自從與MATLAB合作以來(lái),您可以使用您的MathWorks憑據(jù)使用此頁(yè)面的登錄鏈接登錄ThingSpeak: THINGSPEAK
如果您這樣做沒(méi)有,您需要使用MathWorks創(chuàng)建一個(gè)帳戶并登錄ThingSpeak Application。
注意: MathWorks帳戶可用于兩個(gè)MATLAB以及ThingSpeak登錄。
登錄后,您需要為要存儲(chǔ)的數(shù)據(jù)創(chuàng)建新通道。為此,請(qǐng)轉(zhuǎn)到Channels-》 My Channels并單擊New Channel。
輸入頻道名稱和名稱在相應(yīng)部分中的字段1。通道中的字段用于保存數(shù)據(jù),每個(gè)通道最多可包含8個(gè)字段。輸入詳細(xì)信息后保存頻道。
在我的情況下,我創(chuàng)建了一個(gè)名為“測(cè)試頻道”的頻道,將字段1創(chuàng)建為“隨機(jī)數(shù)”。您將在后面的部分中看到原因。
在ThingSpeak應(yīng)用程序中還需要做一些其他事情。 ,但是我會(huì)在你需要的時(shí)候告訴它。
下一步是為項(xiàng)目準(zhǔn)備硬件,其中包括ESP8266 WiFi模塊,Arduino UNO板和很少有連接線。
項(xiàng)目的先決條件
我將向您展示兩種方式如何將ESP8266連接到ThingSpeak應(yīng)用程序。對(duì)于這兩種方式,您需要確保使用AT命令固件加載或刷新ESP8266模塊。
有關(guān)此問(wèn)題的更多信息,我建議您通過(guò)項(xiàng)目中提到的程序如何更新FLASH ESP8266固件。
注意:
要閃存AT命令固件,需要通過(guò)將GPIO0連接到GND并重置模塊來(lái)啟用ESP8266中的編程模式。
但是在這個(gè)電路中(假設(shè)你已經(jīng)刷過(guò)固件),ESP模塊處于正常模式,即GPIO0可以懸空。
用你的ESP閃爍之后在AT Commands Firmware中,您現(xiàn)在可以繼續(xù)將ESP8266連接到ThingSpeak。正如我之前所說(shuō),你可以用兩種方式做到這一點(diǎn):一種是通過(guò)AT命令,另一種是通過(guò)Arduino(即使這種方式使用AT命令,但Arduino控制它們)。
我將向您展示將ESP8266連接到ThingSpeak的兩種方法。
通過(guò)AT命令ESP8266 ThingSpeak接口的電路圖
將ESP8266連接到ThingSpeak的電路圖非常簡(jiǎn)單。實(shí)際上,您之前可能已經(jīng)看過(guò)這種連接。 Arduino UNO板僅用于在計(jì)算機(jī)和ESP8266之間傳輸數(shù)據(jù),即它充當(dāng)USB-to-UART轉(zhuǎn)換器。
所需組件
任何Arduino板或USB轉(zhuǎn)UART轉(zhuǎn)換器
ESP8266 WiFi模塊(ESP-01)
連接電線
使用AT命令將ESP8266連接到ThingSpeak
將Arduino板連接到計(jì)算機(jī)并打開Arduino的串行監(jiān)視器,并使用以下命令檢查連接。/span》
AT
請(qǐng)注意,我已設(shè)置波特率至115200并選擇了“兩個(gè)NL&串行監(jiān)視器中的CR“選項(xiàng)。
在收到”O(jiān)K“響應(yīng)后,您可以使用以下命令繼續(xù)將ESP模塊連接到WiFi網(wǎng)絡(luò)。/跨度》
AT + CWJAP =” SSID”,”密碼”
用您的WiFi網(wǎng)絡(luò)名稱替換SSID并輸入密碼代替密碼。
現(xiàn)在您將收到有關(guān)WiFi連接的確認(rèn)回復(fù),如下所示。
WIFI已連接
WIFI GOT IP
確定
現(xiàn)在,您需要使用以下命令設(shè)置單個(gè)連接。
AT + CIPMUX = 0
下一步是使用TCP協(xié)議連接到ThingSpeak API。為此,您需要使用以下命令。
AT + CIPSTART =“TCP”,“api.thingspeak.com”, 80
或者,您可以使用主機(jī)的IP地址api.thingspeak.com即184.106.153.149。
AT + CIPSTART =“TCP”,“184.106.153.149”,80
注意:
啟動(dòng)TCP連接后,如果您不執(zhí)行任何操作,連接將一段時(shí)間后自動(dòng)關(guān)閉,通常在1分鐘后關(guān)閉。
現(xiàn)在,您已成功啟用ESP8266和ThingSpeak之間的“TCP”連接。接下來(lái),您可以通過(guò)此TCP連接發(fā)送任何數(shù)據(jù)。
為此,請(qǐng)依次使用以下命令。
AT + CIPSEND = 51
獲取/更新?api_key = XXXXXXXXXXXXXXXX& field1 = 255
AT + CIPCLOSE
建立TCP連接后,即可使用某些命令發(fā)送數(shù)據(jù)。這部分可能有點(diǎn)棘手,但嘗試了幾次,您將了解該過(guò)程。
要發(fā)送數(shù)據(jù),您需要發(fā)送三種不同的信息:一個(gè)是實(shí)際的發(fā)送命令,接下來(lái)是數(shù)據(jù)以及ThingSpeak字段鍵,最后是關(guān)閉連接命令。我將嘗試盡可能詳細(xì)地解釋這些步驟。
在發(fā)送數(shù)據(jù)之前,您需要獲取API密鑰。為此,請(qǐng)轉(zhuǎn)到您的頻道(您剛剛創(chuàng)建的頻道),然后點(diǎn)擊“API密鑰”標(biāo)簽。在此之下,您可以找到Write API Key,它是一個(gè)16個(gè)字符的字母數(shù)字字符串。記下此密鑰。
現(xiàn)在,使用以下命令初始化數(shù)據(jù)傳輸。
AT + CIPSEND = 51
值51是要傳輸?shù)臄?shù)據(jù)的長(zhǎng)度。這包括完整的數(shù)據(jù),包括API密鑰和“\ r”和“\ n”值。對(duì)于此命令,您將收到以下響應(yīng)。
確定
》
現(xiàn)在輸入以下信息并點(diǎn)擊發(fā)送。在這里,“XXXXXXXXXXXXXXXX”只是你剛剛復(fù)制的16字符Write API密鑰。數(shù)字“143”是您傳輸?shù)絝ield1的實(shí)際數(shù)據(jù)。
GET/update?api_key = XXXXXXXXXXXXXXXX& field1 = 143
輸入此文本并點(diǎn)擊發(fā)送后,您將不會(huì)得到任何回復(fù)。它實(shí)際上正在等待關(guān)閉命令。點(diǎn)擊發(fā)送上述文本后,立即輸入以下命令并點(diǎn)擊發(fā)送。
AT + CIPCLOSE
當(dāng)您點(diǎn)擊發(fā)送時(shí),您將得到以下響應(yīng)(不是確切的響應(yīng),而是類似的響應(yīng))。
Recv 51 bytes
SEND OK
+ IPD,1:5CLOSED
這里,數(shù)字5表示,該鍵是我的5 TH 消息。現(xiàn)在,打開ThingSpeak API并打開您的頻道。在“私有視圖”選項(xiàng)卡中,您可以在字段1圖表中看到值“143”。
這是它。如果您理解并遵循所有這些步驟,那么您可能已成功將ESP8266連接到ThingSpeak API。要發(fā)送更多數(shù)據(jù),請(qǐng)重復(fù)創(chuàng)建TCP連接的步驟。
使用Arduino的ESP8266 ThingSpeak接口電路圖
由于我將編程Arduino并通過(guò)Arduino控制ESP8266,因此電路圖略有不同。但組件將是相同的。
使用Arduino將ESP8266連接到ThingSpeak
我不想問(wèn)同樣的老問(wèn)題,即您是否厭倦了手動(dòng)輸入所有AT命令?顯然,答案是肯定的。 Arduino來(lái)救援。按照上面的電路圖進(jìn)行所有連接,我們將繼續(xù)執(zhí)行代碼。
代碼
使用以下代碼上傳到Arduino。請(qǐng)注意,您對(duì)代碼進(jìn)行了一些更改。更改將涉及WiFi SSID,WiFi密碼和API密鑰(16個(gè)字符)。我認(rèn)為,剩下的值可以保留原樣。
上傳代碼后,如果打開串行監(jiān)視器(波特率設(shè)置為9600),您可以看到正在傳輸?shù)紼SP8266模塊的AT命令。
最初,AT命令將設(shè)置與ESP模塊的WiFi連接。啟用連接后,Arduino將建立與ThingSpeak API的TCP連接,并每隔5秒發(fā)送一次隨機(jī)數(shù)。
此數(shù)據(jù)可在ThingSpeak API網(wǎng)站中監(jiān)控,即在您創(chuàng)建的頻道中(在私人視圖選項(xiàng)卡下)。
結(jié)論&應(yīng)用程序
在這個(gè)項(xiàng)目中,我向您展示了如何使用直接AT命令以及Arduino將ESP8266連接到ThingSpeak API。/span》
使用ThingSpeak API,您可以在世界任何地方監(jiān)控傳感器數(shù)據(jù)。
最常用的傳感器是DHT11濕度和溫度傳感器,DS18B20溫度傳感器和LM35。
-
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45374
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論