国内综合精彩aⅤ无码不卡_日本少妇做爰全过程_欧美性爱在线播放免费_午夜?V日韩一区二区_免费a级毛片无码免费播放_成在人线av无码喷水_亚洲精品网站色视频_国产婷婷精品成人_老师撩起裙子让我桶的视频_秋霞影院国产

基于Arduino ESP8266控制LED燈并返回控制結(jié)果 實(shí)驗(yàn)不成功,是不是提供代碼有問題?

作者:devilzh | 更新時(shí)間:2016-11-16 | 瀏覽量:3173

教程地址  http://www.arduino.cn/thread-19051-1-1.html

按著這個(gè)來連接的,但代碼好像不完整,整篇代碼里,沒找到 WIFI密碼的設(shè)置和云服務(wù)器的連接?。??絕對新手,請指教。。。

 

kaiguan.ino 文件代碼如下,只燒這部分代碼總感覺有問題??

#include <aJSON.h>
//=============  此處必須修該============
String DEVICEID="1047"; // 你的設(shè)備編號   這個(gè)編號和下面的密碼自己隨便起嗎?增加設(shè)備時(shí)也沒讓輸入啊,還是先增加設(shè)備,生成后再寫到這里??
String  APIKEY="f54631de6"; // 設(shè)備密碼==
//=======================================
const int LED = 4;// LED正極連接針腳4
unsigned long lastCheckInTime = 0; //記錄上次報(bào)到時(shí)間
const unsigned long postingInterval = 40000; // 每隔40秒向服務(wù)器報(bào)到一次
String inputString = "";
boolean stringComplete = false;
boolean CONNECT = true; 
char* parseJson(char *jsonString);
void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  delay(5000);
}
void loop() {
  if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {
    checkIn();
  }
  serialEvent();
    if (stringComplete) {
      inputString.trim();
      //Serial.println(inputString);
      if(inputString=="CLOSED"){
        Serial.println("connect closed!");
        CONNECT=false;        
      }else{
        int len = inputString.length()+1;    
        if(inputString.startsWith("{") && inputString.endsWith("}")){
          char jsonString[len];
          inputString.toCharArray(jsonString,len);
          aJsonObject *msg = aJson.parse(jsonString);
          processMessage(msg);
          aJson.deleteItem(msg);          
        }
      }      
      // clear the string:
      inputString = "";
      stringComplete = false;    
  }
}
void checkIn() {
  if (!CONNECT) {
    Serial.print("+++");
    delay(500);  
    Serial.print("\r\n"); 
    delay(1000);
    Serial.print("AT+RST\r\n"); 
    delay(6000);
    CONNECT=true;
    lastCheckInTime=0;
  }
  else{
    Serial.print("{\"M\":\"checkin\",\"ID\":\"");
    Serial.print(DEVICEID);
    Serial.print("\",\"K\":\"");
    Serial.print(APIKEY);
    Serial.print("\"}\r\n");
    lastCheckInTime = millis();   
  }
}
void processMessage(aJsonObject *msg){
  aJsonObject* method = aJson.getObjectItem(msg, "M");
  aJsonObject* content = aJson.getObjectItem(msg, "C");     
  aJsonObject* client_id = aJson.getObjectItem(msg, "ID");  
  //char* st = aJson.print(msg);
  if (!method) {
    return;
  }
    //Serial.println(st); 
    //free(st);
    String M=method->valuestring;
    String C=content->valuestring;
    String F_C_ID=client_id->valuestring;
    if(M=="say"){
      if(C=="play"){
        digitalWrite(LED, HIGH);
        sayToClient(F_C_ID,"LED on!");    
      }
      if(C=="stop"){
        digitalWrite(LED, LOW);
        sayToClient(F_C_ID,"LED off!");    
      }
    }
}
void sayToClient(String client_id, String content){
  Serial.print("{\"M\":\"say\",\"ID\":\"");
  Serial.print(client_id);
  Serial.print("\",\"C\":\"");
  Serial.print(content);
  Serial.print("\"}\r\n");
  lastCheckInTime = millis();
}
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}


評論:共19條

貝殼物聯(lián) 評論于:2016-11-17 08:58:37
esp模塊在本示例中的使用前提是要進(jìn)行透傳設(shè)置,參見:http://m.placeboworld.cn/talk/1.html
聯(lián)網(wǎng)相關(guān)設(shè)置在透傳中進(jìn)行,教程里在硬件部分有說明。
devilzh 回復(fù)于:2016-11-17 11:16:35
回復(fù) @貝殼物聯(lián):
如果按您的教程里,先燒錄 config.ino,再按 上面的教程,燒錄 kaiguan.ino,豈不是把 配置的代碼覆蓋了,還是沒有用????我是小白,麻煩了。
貝殼物聯(lián) 回復(fù)于:2016-11-17 11:38:17
回復(fù) @devilzh:config.ino完成它的設(shè)置使命之后,可有放心覆蓋了。
devilzh 回復(fù)于:2016-11-17 15:00:47
回復(fù) @貝殼物聯(lián):
多謝,config將聯(lián)網(wǎng)的配置寫入ESP,重啟后,ESP按寫入的配置自動聯(lián)網(wǎng)。kaiguan.ino 只負(fù)責(zé)處理通信,控制LED就完事了,是這個(gè)意思吧。
devilzh 回復(fù)于:2016-11-17 15:02:00
回復(fù) @貝殼物聯(lián):
再麻煩一下,那個(gè)編號和下面的密碼是自己隨便起嗎?增加設(shè)備時(shí)也沒讓輸入啊,還是先增加設(shè)備,生成后再寫到那里??
貝殼物聯(lián) 回復(fù)于:2016-11-18 16:09:38
回復(fù) @devilzh:在用戶中心添加設(shè)備,每一個(gè)設(shè)備都有對應(yīng)的id和apikey。
hyd8058 回復(fù)于:2017-06-09 11:34:17
回復(fù) @貝殼物聯(lián)您好,我想先燒錄webconfig的init.lua和main.lua,然后再燒錄kaiguan的nit.lua和main.lua,而kaiguan里的wifi配置我隱藏掉,這樣可以把kaiguan和webconfig兩者結(jié)合,您看這樣可以嗎?
ignore 評論于:2016-11-18 14:29:03
問一下,你是否實(shí)現(xiàn)了LED 的控制,我有個(gè)情況搞不明白,顯示在線,發(fā)送play,返回不了LED turn on
貝殼物聯(lián) 回復(fù)于:2016-11-18 16:11:19
回復(fù) @ignore:改動過源代碼嗎?除了id和key
ignore 回復(fù)于:2016-11-18 16:59:21
回復(fù) @貝殼物聯(lián):沒有,
貝殼物聯(lián) 回復(fù)于:2016-11-18 17:03:44
回復(fù) @ignore:具體細(xì)節(jié)問題可進(jìn)群交流。
ignore 回復(fù)于:2016-11-18 17:27:30
回復(fù) @貝殼物聯(lián):具體原因搞不懂,刷nodemcu是可以的,唯獨(dú)刷arduino不行,剛接觸,不知道是不是提供的代碼有問題!
貝殼物聯(lián) 回復(fù)于:2016-11-18 21:21:28
回復(fù) @ignore:代碼都經(jīng)過大家檢驗(yàn)的,應(yīng)該沒有問題,當(dāng)然也可能設(shè)備的特殊性引起問題。
devilzh 回復(fù)于:2016-11-19 16:18:12
回復(fù) @ignore:
我的費(fèi)了很大勁才連成功,但有一些還在理解中,剛接觸這塊,需要學(xué)習(xí)的東西太多了。

ignore 回復(fù)于:2016-11-21 13:54:46
回復(fù) @devilzh:我想請教你下,你具體是卡在什么地方?
devilzh 回復(fù)于:2016-11-21 14:08:51
回復(fù) @ignore: 先燒寫config 后燒寫 kaiguan.ino,連線弄錯了,我用的arduino,沒用TTL,兩次用的串口的引腳不同,我注意,浪費(fèi)時(shí)間了。
ignore 回復(fù)于:2016-11-22 14:12:16
回復(fù) @devilzh:kaiguan的程序中沒有寫明串口,config里面是2、3,kaiguan.ino怎么沒寫啊?
zwa7788 回復(fù)于:2016-12-29 12:45:55
回復(fù) @devilzh:是kaiguan.ino還是kaiguan.lua?
吱吱吱 評論于:2017-05-03 18:06:20
能不能用UDP協(xié)議實(shí)現(xiàn)?
返回頂部