久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4062|回復: 1
收起左側

Arduino+ESP8266+貝殼物聯網使用手機進行遠程控制

[復制鏈接]
ID:233792 發表于 2020-8-29 13:59 | 顯示全部樓層 |閱讀模式
程序通過ESP8266連接貝殼物聯,使用微信關注貝殼物聯進行控制,也可下載貝殼物聯控制APP 進行操作。程序中加入了自動配網

Arduino源程序如下:
  1. //增加聯網失敗,重新連接,
  2. #include <ESP8266WiFi.h>
  3. WiFiClient client;
  4. #define led 4 //接繼電器控制燈
  5. #define relay1 2 //模塊led,作網絡狀態指示,啟動后常亮,則正常聯網
  6. #define key 5//將dht11的data口接在8266的GPIO2上
  7. const char *ssid = "Nok7";
  8. const char *password = "bfx1234567890";
  9. const char *host = "121.42.180.30";
  10. char flag=0;
  11. int x=0;
  12. int y=0;
  13. int f;
  14. bool autoConfig()
  15. {
  16.   int a=0;
  17.   pinMode(key,INPUT);
  18.   if(digitalRead(key) == LOW)
  19.   flag=1;
  20.   else
  21.   flag=0;
  22.   while(!digitalRead(key));
  23.   
  24.   if(flag==1)
  25.   {
  26.    return false;
  27.   }
  28.   else
  29.   {
  30.       WiFi.begin();
  31.       while (WiFi.status() != WL_CONNECTED)
  32.     {
  33.       Serial.println("AutoConfig Success");
  34.       Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
  35.       Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
  36.       WiFi.printDiag(Serial);
  37.       digitalWrite(relay1,HIGH);
  38.       delay(800);
  39.       delay(100);
  40.       digitalWrite(relay1,LOW);
  41.       delay(100);
  42.       a++;
  43.       if(a==20)
  44.       {
  45.         a=0;
  46.         return false;
  47.         break;
  48.       }
  49.     }
  50.     if(false)
  51.     {
  52.       Serial.println("");
  53.       Serial.println("wifi line faild !");
  54.       while(1)
  55.       {
  56.        digitalWrite(relay1,LOW);
  57.       }
  58.       
  59.     }
  60.     else
  61.     {
  62.       Serial.println("");
  63.       Serial.println("WiFi connected");
  64.       Serial.println("IP address: ");
  65.       Serial.println(WiFi.localIP());
  66.       digitalWrite(relay1,HIGH);
  67.       return true;
  68.     }
  69.   }
  70. }
  71. //*
  72. void smartConfig()
  73. {
  74.   WiFi.mode(WIFI_STA);
  75.   Serial.println("\r\nWait for Smartconfig");
  76.   WiFi.beginSmartConfig();
  77.   while (1)
  78.   {
  79.       Serial.print("Wait soft line..\r\n");
  80.     if (WiFi.smartConfigDone())
  81.     {
  82.       Serial.println("SmartConfig Success");
  83.       Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
  84.       Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
  85.       autoConfig();
  86.       //WiFi.setAutoConnect(true); // 設置自動連接
  87.       break;
  88.     }
  89.     digitalWrite(relay1,LOW);
  90.     delay(100);
  91.     digitalWrite(relay1,HIGH);
  92.     delay(100);         
  93.   }
  94.   Serial.println("");
  95.   digitalWrite(relay1,HIGH);
  96.   Serial.println("WiFi connected");
  97.   Serial.println("IP address: ");
  98.   Serial.println(WiFi.localIP());
  99. }
  100. //*/
  101. //*
  102. void line_tcp()
  103. {
  104.   Serial.println(WiFi.localIP());
  105.   const int httpPort =8282;
  106.   client.connect(host, httpPort);
  107.   f=10;
  108.   while(f--)
  109.   {
  110.     digitalWrite(relay1,LOW);
  111.     delay(500);
  112.     digitalWrite(relay1,HIGH);
  113.     delay(500);  
  114.   }
  115.   if (!client.connect(host, httpPort))
  116.   {
  117.     Serial.println("connection failed");
  118.     return;
  119.   }
  120.   Serial.print("connecting to ");
  121.   Serial.println(host);
  122.   delay(1000);
  123.   //client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\6743d7a7c\"}\r\n");//登陸設備,修改成自己的ID和key
  124.   delay(1000);
  125.   client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 換行才能登陸成功
  126.   delay(1000);
  127.   client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 換行才能登陸成功
  128.   delay(1000);
  129.   client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 換行才能登陸成功
  130. }
  131. //*/
  132. void setup()
  133. {
  134.   Serial.begin(115200);
  135.   pinMode(relay1, OUTPUT);
  136.   pinMode(led, OUTPUT);
  137.   if (!autoConfig())
  138.   {
  139.     Serial.println("Start AP mode");
  140.     smartConfig();
  141.   }
  142.   line_tcp();
  143. }

  144. void loop()
  145. {
  146.   char valueread;
  147.   while(client.available())
  148.   {
  149.     String line = client.readStringUntil('\r');
  150.     Serial.print(line);
  151.     int i;
  152.     for(i=0;i<=150;i++)
  153.     {
  154.       if((line[i]=='p') &&( line[i+1]=='l'))
  155.       {
  156.         digitalWrite(led,HIGH);
  157.         client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"\"}\r\n");
  158.       }
  159.       
  160.       if((line[i]=='s') && (line[i+1]=='t'))
  161.       {
  162.         digitalWrite(led,LOW);
  163.         client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"\"}\r\n");
  164.       }
  165.       if((line[i]=='n') && (line[i+1]=='o')&&(line[i+2]=='k'))
  166.       {
  167.         digitalWrite(relay1,LOW);
  168.        // client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"\"}\r\n");
  169.       }
  170.       //*
  171.       if(line[i]=='b')
  172.       {
  173.         //digitalWrite(relay1,LOW);
  174.         //client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is connected\",\"SIGN\":\"ok\"}\r\n");
  175.         y=0;
  176.         client.write("{\"M\":\"say\",\"ID\":\"****\",\"C\":\"12664\"}\r\n");//修改自己的ID,向設備發送信息,防止掉線  
  177.       }
  178.        //*/
  179.     }
  180.   }
  181. // delay(1000);
  182. // Serial.print(WiFi.status());
  183.   //*
  184.   x++;
  185.   if(x>=10000)
  186.   {
  187.     x=0;
  188.     y++;
  189.     //Serial.println(y);
  190.   }
  191.   if(WiFi.status()!=3||y>=1200)
  192.   {
  193.         if (!autoConfig())
  194.     {
  195.       Serial.println("Start AP mode");
  196.       smartConfig();
  197.     }
  198.     line_tcp();
  199.   }
  200.   //*/
  201. // delay(1000);
  202. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:53978 發表于 2020-8-31 08:34 | 顯示全部樓層
這個要學習一下,感謝分享。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99热在线免费| 九九导航 | 久久激情网 | 欧美aⅴ片 | 91青娱乐在线 | 精品国产欧美日韩不卡在线观看 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕亚洲视频 | 91久久精品一区二区二区 | 国产成人自拍一区 | 国产免费一区二区 | 成年人免费在线视频 | 欧美一级片在线观看 | 日韩欧美在线观看 | 精品国产不卡一区二区三区 | 伊人电影院av | 国产欧美日韩综合精品一区二区 | 一区二区三区精品 | 欧美激情五月 | 欧美成人综合 | 久久久久亚洲精品 | 亚洲国产精品久久久 | 视频一区二区国产 | 特一级黄色毛片 | 日韩中文字幕 | 欧美一级久久精品 | 欧美精品久久久 | 国产精品美女久久久久久免费 | 久久网亚洲 | 欧美成人自拍视频 | 精品国产aⅴ | 精品成人佐山爱一区二区 | 日韩欧美久久精品 | 亚洲黄色在线免费观看 | 久久99精品久久久 | 亚洲欧美日韩电影 | www.久草.com | 一区在线观看视频 | 国产日韩免费观看 | 伊人激情综合网 | 亚洲精品美女视频 |