如何讓ESP8266板子像APP開發一樣方便
眾所周知,在APP開發中,C/S是基本的開發結構。客戶端負責應用的展示,互動與網路請求,服務端負責資料的傳輸,處理,儲存,輸出等等。而物聯網除了之前介紹的MQTT實現H5實時控制舵機旋轉角度來完成開關外,同樣也可以透過HTTP的請求方式來和任何一門語言的服務端進行互動。
所以,在這裡ESP8266可以理解為客戶端了。當然,ESP8266請求介面既可以可以用來輸出到外接的oLED或音響等裝置,也可以透過感測器收集的資料透過介面的方式傳到服務端進行儲存,服務端再清洗過濾,計算分析,可以玩的東西就更多一些了。以下只是好早以前用PHP測試寫的介面,ESP8266就請求列印一下的簡單例子。
環境:
Arduino
ArduinoJson庫
HTTPClient庫
安裝:
在推薦使用以上兩個庫外,我之前使用的ESP8266WiFi,請求成功後,透過JON庫怎麼也解析不成功,在經過一些踩坑和折騰後換成HTTPClient就可以了。以上兩個庫分別用來作為請求和JSON解析,在網上自行搜尋哦,如果實在找不到可以在小編公眾號留言,免費提供下載,安裝方式是:將下載好的包複製到Arduino的libraries目錄中即可。
程式碼演示:
#include <HTTPClient.h>#include <ArduinoJson.h>#include <ESP8266WiFi.h>#include <ESP8266WiFiMulti.h> ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti物件void setup() { Serial.begin(9600); Serial.println(""); // 設定開發板LED引腳 pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); wifiMulti.addAP("TP-LINK_D12E", "ZFC3598300"); // 將需要連線的一系列WiFi ID和密碼輸入這裡 wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); // ESP8266-NodeMCU再啟動後會掃描當前網路 wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 環境查詢是否有這裡列出的WiFi ID。如果有 Serial.println("Connecting ..."); int i = 0; while (wifiMulti.run() != WL_CONNECTED) { // 嘗試進行wifi連線。 delay(1000); Serial.print(i++); Serial.print(' '); } // WiFi連線成功後將透過串列埠監視器輸出連線成功資訊 Serial.println(""); Serial.print("Connected to "); Serial.println(WiFi.SSID()); // WiFi名稱 Serial.print("IP address:\t"); Serial.println(WiFi.localIP()); // IP}void loop() { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin("); int httpCode = http.GET(); if (httpCode > 0) { String Request_result = http.getString(); //Serial.println(Request_result); DynamicJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.parseObject(Request_result); String json1 = root["results"][0]; Serial.println(json1); DynamicJsonBuffer jsonBuffer1; JsonObject& root1 = jsonBuffer1.parseObject(json1); String json2 = root1["location"]; Serial.println(json2); DynamicJsonBuffer jsonBuffer2; JsonObject& root2 = jsonBuffer2.parseObject(json2); String json3 = root2["id"]; Serial.println(json3); Serial.println(""); } else { Serial.println("Invalid response!"); } http.end(); } delay(5000); }
列印效果:
交流學習:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029959/viewspace-2952297/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讓 Android 開發像 web 開發一樣爽AndroidWeb
- 《讓Linux 像Windows一樣方便》下載[書籍更新](轉)LinuxWindows
- 如何在Windows下像Mac一樣優雅開發WindowsMac
- 如何讓 Python 像 Julia 一樣快地執行Python
- MIT開發新演算法讓自動駕駛汽車像真人司機一樣變道MIT演算法自動駕駛
- 雲開發中的戰鬥機 Laf,讓你像寫部落格一樣寫程式碼
- 讓eclipse像idea一樣炫起來EclipseIdea
- 數字先鋒 | 海南省資料產品超市:讓買資料產品像逛超市一樣方便
- 秀出新天際的SpringBoot筆記,讓開發像搭積木一樣簡單Spring Boot筆記
- 像SpringMVC一樣在Android上做Web開發SpringMVCAndroidWeb
- AirBuddy for Mac(讓Mac像iPhone一樣使用AirPods)AIMaciPhone
- MagicArray:像php一樣,讓Go業務程式碼不再卷!PHPGo
- 用知識圖譜+NLP,海知智慧努力讓機器人的開發像發微信一樣簡單機器人
- 手把手讓你像使用vuex一樣測試vuexVue
- Gitee熱榜第一!讓你可以像操作SQL一樣操作ESGiteeSQL
- 如何像資料分析師一樣思考?
- 如何去開發一個webAppWebAPP
- 直播APP開發公司是如何開發一套完整直播APP?APP
- Vimium外掛讓鍵盤黨像操作Vim一樣操作ChromeChrome
- 讓 UIView 像 UINavigationController 一樣支援 push 和 popUIViewNavigationController
- AirBuddy for Mac讓你的Mac像iPhone一樣使用AirPodsAIMaciPhone
- AirBuddy讓你在Mac上像iPhone一樣使用AirPodsAIMaciPhone
- 歸納+記憶:讓機器像人一樣從小樣本中學習
- 一些板子
- 如何開發一個免費的app?APP
- 如何快速開發一個鴻蒙原生app鴻蒙APP
- Easy New File|讓Mac像Windows一樣可以右鍵新建檔案MacWindows
- EluxJS-讓你像切蛋糕一樣拆解前端巨石應用UXJS前端
- 8個酷炫的GitHub技巧,讓你看起來像大佬一樣!Github
- 讓你的ubuntu像windows一樣絲滑的小工具們UbuntuWindows
- 如果像軟體開發那樣去造飛機
- 讓Mootools的語法結構像Jquery那樣jQuery
- 一種方便的跨域開發解決方案跨域
- 怎麼讓程式碼不再臃腫,寫的像詩一樣優雅
- macw資訊——AirBuddy讓你在Mac上像iPhone一樣使用AirPodsMacAIiPhone
- 讓AI像人類一樣操作手機,華為也做出來了AI
- 翻譯 | 像 JavaScript 一樣思考JavaScript
- 像 IDE 一樣使用 VimIDE