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

評論