OnlineTest
原文連結 (Pixnet) ↗
#include <SoftwareSerial.h> #define _baudrate 9600 #define _rxpin 4 #define _txpin 5 SoftwareSerial debug( _rxpin, _txpin ); // RX, TX //*-- IoT Information #define SSID "Huang" #define PASS "e53asus0211" #define IP "184.106.153.149" // ThingSpeak IP Address: 184.106.153.149 // 使用 GET 傳送資料的格式 // GET /update?key=[THINGSPEAK_KEY]&field1=[data 1]&filed2=[data 2]...; String GET = "GET /update?key=MIN085MR4XATH8VD";void setup() { Serial.begin( _baudrate ); debug.begin( _baudrate ); sendDebug(“AT”); delay(1000); if(debug.find(“OK”)) { Serial.println(“RECEIVED: OK\nData ready to sent!”); connectWiFi(); } else{ Serial.println(“NO RESEPONCE!”); } } void loop() { delay(5000); // 60 second SentOnCloud( String(5), String(9) ); } void SentOnCloud( String T, String H ) { // 設定 ESP8266 作為 Client 端 String cmd = “AT+CIPSTART=“TCP”,""; cmd += IP; cmd += "",80”; sendDebug(cmd); if( debug.find( “Error” ) ) { Serial.print( “RECEIVED: Error\nExit1” ); return; } cmd = GET + “&field1=” + T + “&field2=” + H +“\r\n”; debug.print( “AT+CIPSEND=” ); debug.println( cmd.length() ); if(debug.find( ”>” ) ) { Serial.print(”>”); Serial.print(cmd); debug.print(cmd); } else { debug.print( “AT+CIPCLOSE” ); } if( debug.find(“OK”) ) { Serial.println( “RECEIVED: OK” ); } else { Serial.println( “RECEIVED: Error\nExit2” ); } } void sendDebug(String cmd) { Serial.print(“SEND: ”); Serial.println(cmd); debug.println(cmd); }
boolean connectWiFi() { debug.println(“AT+CWMODE=1”); delay(2000); String cmd=“AT+CWJAP=""; cmd+=SSID; cmd+="",""; cmd+=PASS; cmd+="""; sendDebug(cmd); delay(5000); if(debug.find(“OK”)) { Serial.println(“RECEIVED: OK”); return true; } else { Serial.println(“RECEIVED: Error”); return false; } cmd = “AT+CIPMUX=0”; sendDebug( cmd ); if( debug.find( “Error”) ) { Serial.print( “RECEIVED: Error” ); return false; } }