<em id="ri2my"></em>
  • <em id="ri2my"></em>
    <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
  • <em id="ri2my"><label id="ri2my"></label></em>
    <div id="ri2my"></div>
    1. <em id="ri2my"><label id="ri2my"></label></em>
    2. <em id="ri2my"><ol id="ri2my"></ol></em>
      <em id="ri2my"></em>

      1. ESP8266 arduino IDE模式 使用smartconfig配置WIFI,連接物聯網

        作者:wangbo0727 | 更新時間:2018-12-11 | 瀏覽量:5482

        一直想試用ESP8266做一個和商業WIFI能媲美的項目但是總是做不好。網上看了很多例程后來還是覺得arduino IDE好懂一點;

        想要達到商業WIFI項目基本上要能有以下功能:

        設備開機之后默認進入smartconfig模式,手機打開APP能很快配網;

        配網結束之后,進入連接WiFi模式,聯網結束之后,連接服務器,之后就能傳輸數據,還有發送指令了,

        目前網上很多代碼都是基本里程,沒有很完整的,那個大神能寫一個完整的啊;

         

         


        評論:共5條

        wangbo0727 評論于:2018-12-11 16:52:00
        我附上我寫的源代碼,基本上開機之后默認配網,還可以按鍵強制配網;之后都是大家熟悉的連接方式
        wangbo0727 評論于:2018-12-11 16:53:03
        #include <ESP8266WiFi.h>
        WiFiClient client;
        #define relay1 2
        #define key 5//將dht11的data口接在8266的GPIO2上
        const char *ssid = "Charlie Testing AP";
        const char *password = "11111111";
        const char *host = "121.42.180.30";
        char flag=0;

        bool autoConfig()
        {
        int a=0;
        pinMode(key,INPUT);
        if(digitalRead(key) == LOW)
        flag=1;
        else
        flag=0;
        while(!digitalRead(key));

        if(flag==1)
        {
        return false;
        }
        else
        {
        WiFi.begin();
        while (WiFi.status() != WL_CONNECTED)
        {
        Serial.println("AutoConfig Success");
        Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
        Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
        WiFi.printDiag(Serial);
        delay(1000);
        a++;
        if(a==30)
        {
        a=0;
        return false;
        break;
        }
        }
        if(false)
        {
        Serial.println("");
        Serial.println("wifi line faild !");
        }
        else
        {
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
        return true;
        }
        }
        }

        void smartConfig()
        {
        WiFi.mode(WIFI_STA);
        Serial.println("\r\nWait for Smartconfig");
        WiFi.beginSmartConfig();
        while (1)
        {
        Serial.print("Wait soft line..\r\n");
        if (WiFi.smartConfigDone())
        {
        Serial.println("SmartConfig Success");
        Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
        Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
        WiFi.setAutoConnect(true); // 設置自動連接
        break;
        }
        delay(1000);
        }
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
        }
        void line_tcp()
        {
        Serial.println(WiFi.localIP());
        const int httpPort =8181;
        if (!client.connect(host, httpPort))
        {
        Serial.println("connection failed");
        return;
        }
        Serial.print("connecting to ");
        Serial.println(host);
        client.write("{\"M\":\"checkin\",\"ID\":\"****\",\"K\":\"**********\"}\r\n");//登陸設備,修改成自己的ID和key
        delay(100);
        }
        void setup()
        {
        Serial.begin(115200);
        if (!autoConfig())
        {
        Serial.println("Start AP mode");
        smartConfig();
        }
        line_tcp();
        }

        void loop()
        {
        char valueread;
        while(client.available())
        {
        String line = client.readStringUntil('\r');
        Serial.print(line);
        int i;
        for(i=0;i<=150;i++)
        {
        if((line[i]=='p') &&( line[i+1]=='l'))
        {
        digitalWrite(relay1,HIGH);
        client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"ok\"}\r\n");
        }

        if((line[i]=='s') && (line[i+1]=='t'))
        {
        digitalWrite(relay1,LOW);
        client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"ok\"}\r\n");
        }


        }
        }
        client.write("{\"M\":\"say\",\"ID\":\"****\",\"C\":\"123456\"}\r\n");//修改自己的ID,向設備發送信息,防止掉線
        delay(6000);
        }
        xupengju110 回復于:2018-12-16 17:24:46
        回復 @wangbo0727:dht11數據接口的ID填寫到哪里么?
        wangbo0727 評論于:2018-12-19 08:11:56
        DHT還沒寫上去
        zjnbzm 評論于:2019-04-16 12:03:57
        這個源代碼能用NodeMCU Studio 2015 LUA 編輯,寫入ESP8266內嗎?
        返回頂部

        <em id="ri2my"></em>
      2. <em id="ri2my"></em>
        <em id="ri2my"><label id="ri2my"><nav id="ri2my"></nav></label></em>
      3. <em id="ri2my"><label id="ri2my"></label></em>
        <div id="ri2my"></div>
        1. <em id="ri2my"><label id="ri2my"></label></em>
        2. <em id="ri2my"><ol id="ri2my"></ol></em>
          <em id="ri2my"></em>

          1. 免费高清视频