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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6104|回復: 7
收起左側

ArduinoIDE 開發esp8266連接mqtt阿里云+sntp

  [復制鏈接]
ID:438023 發表于 2020-4-5 14:29 | 顯示全部樓層 |閱讀模式
Arduino環境編譯esp8266  mqtt連接阿里云,實現設備運云端雙向通信,并同時獲取sntp網絡時間

Arduino源程序如下:
  1. //13=D7 16=D0  15=D8  14=D5  12=D6  4=D2  3=D9  2=D4=GPIO2  1=D10  0=D3=GPIO0
  2. #include <ESP8266WiFi.h>//安裝esp8266arduino開發環境
  3. #include <AliyunIoTSDK.h>//引入阿里云 IoT SDK
  4. #include <NTPClient.h>
  5. #include <WiFiUdp.h>
  6. #define PRODUCT_KEY     "***********"//替換自己的PRODUCT_KEY
  7. #define DEVICE_NAME     "***********"//替換自己的DEVICE_NAME
  8. #define DEVICE_SECRET   "***********"//替換自己的DEVICE_SECRET
  9. #define REGION_ID       "cn-shanghai"//默認cn-shanghai

  10. #define WIFI_SSID       "***********"//替換自己的WIFI
  11. #define WIFI_PASSWD     "***********"//替換自己的WIFI
  12. #define ledPin  0
  13. static WiFiClient espClient;
  14. WiFiUDP   ntpUDP;
  15. NTPClient timeClient(ntpUDP,"ntp1.aliyun.com",0,0);//30*60*1000
  16. unsigned long lastMsMain = 0;
  17. String  rxbuff="";

  18. void setup()
  19. {
  20.   Serial.begin(9600);
  21.   pinMode(ledPin, OUTPUT);
  22.   digitalWrite(ledPin, HIGH);

  23.   //連接到wifi
  24.   wifiInit(WIFI_SSID, WIFI_PASSWD);

  25.   timeClient.begin();//SNTP begin

  26.   //初始化 iot,需傳入 wifi 的 client,和設備產品信息
  27.   AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

  28.   //綁定一個設備屬性回調,當遠程修改此屬性,會觸發LED函數
  29.   AliyunIoTSDK::bindData("PowerSwitch",   Relay_Control);//電器開關
  30.   AliyunIoTSDK::bindData("VehACSwitch",   Air_Control);//空調開關
  31.   AliyunIoTSDK::bindData("LightLuminance",PWM_Control);//主燈亮度PWM
  32. }

  33. void loop()
  34. {
  35.   int t=36;
  36.   AliyunIoTSDK::loop();//必要函數

  37.   
  38.   //時刻讀取硬件串口數據
  39.   while (Serial.available())   
  40.   {
  41.     rxbuff += char(Serial.read());
  42.   }
  43.   while (Serial.read() >= 0) {} //清除串口緩存
  44.   if (rxbuff.length() > 0)
  45.   {
  46.     Serial.println(rxbuff[2]);
  47.     rxbuff="";
  48.   }


  49.   
  50.   if (millis() - lastMsMain >= 2000)//每2秒發送一次
  51.   {
  52.     lastMsMain = millis();

  53.     //發送溫度到云平臺
  54.     AliyunIoTSDK::send("IndoorTemperature", t);//溫度上傳
  55.     timeClient.update();
  56.     //Serial.println(timeClient.getFormattedTime());
  57.     //Serial.println(timeClient.getEpochTime());
  58.   }
  59. }

  60. //wifi 連接
  61. void wifiInit(const char *ssid, const char *passphrase)
  62. {
  63.   WiFi.mode(WIFI_STA);
  64.   WiFi.begin(ssid, passphrase);
  65.   while (WiFi.status() != WL_CONNECTED)
  66.   {
  67.     delay(1000);
  68.     Serial.println("WiFi not Connect");
  69.   }
  70.   Serial.println("Connected to AP");
  71. }

  72. //繼電器開關的屬性修改的回調函數
  73. void Relay_Control(JsonVariant L)//固定格式,修改參數l
  74. {
  75.   int Relay = L["PowerSwitch"];//參數l   “”為aliyun 的標志符
  76.   AliyunIoTSDK::send("PowerSwitch", Relay);
  77.   if (Relay == 1)
  78.   {
  79.     Serial.println("Relay On_____________");
  80.     digitalWrite(ledPin,HIGH);
  81.   }
  82.   else
  83.   {
  84.     Serial.println("Relay Off____________");
  85.     digitalWrite(ledPin,LOW);
  86.   }
  87.   
  88. }

  89. //空調開關的屬性修改的回調函數
  90. void Air_Control(JsonVariant L)
  91. {
  92.   int Air = L["VehACSwitch"];//參數l   “”為aliyun 的標志符
  93.   AliyunIoTSDK::send("VehACSwitch", Air);
  94.   if (Air == 1)
  95.     Serial.println("Air PowerOn___________");
  96.   
  97.   else
  98.     Serial.println("Air PowerOff__________");
  99. }
  100. //PWM變頻的屬性修改的回調函數
  101. void PWM_Control(JsonVariant L)
  102. {
  103.     int PWM = L["LightLuminance"];//參數l   “”為aliyun 的標志符
  104.     AliyunIoTSDK::send("LightLuminance", PWM);
  105.     Serial.println("PWM value:");
  106.     Serial.println(PWM);
  107. }
復制代碼

以上程序51hei提供下載:
esp.zip (1.61 KB, 下載次數: 98)


評分

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

查看全部評分

回復

使用道具 舉報

ID:75737 發表于 2020-6-1 19:58 | 顯示全部樓層
不錯,正在學習,應該還需要下載對應的庫才可以吧!不知哪里有離線下載的
回復

使用道具 舉報

ID:74872 發表于 2020-6-2 17:48 | 顯示全部樓層
謝謝,正要學習,感謝分享。
回復

使用道具 舉報

ID:230374 發表于 2020-6-3 09:50 | 顯示全部樓層
正在學習,謝謝分享!
回復

使用道具 舉報

ID:94079 發表于 2020-6-3 15:43 | 顯示全部樓層
正在學習這方面的知識呢,感謝樓主無私分享
回復

使用道具 舉報

ID:804156 發表于 2020-7-21 10:30 | 顯示全部樓層
不錯   esp8266板子應用廣泛
回復

使用道具 舉報

ID:46999 發表于 2021-1-18 15:21 | 顯示全部樓層
請問樓主用的哪個庫來編譯的?我試了下,出錯如下:D:\My Documents\Arduino\libraries\AliyunIoTSDK\src\AliyunIoTSDK.cpp:4:20: fatal error: SHA256.h: No such file or directory
回復

使用道具 舉報

ID:345495 發表于 2021-1-23 10:14 | 顯示全部樓層
維超 發表于 2021-1-18 15:21
請問樓主用的哪個庫來編譯的?我試了下,出錯如下:D:\My Documents\Arduino\libraries\AliyunIoTSDK\src\Aliy ...

你這是沒有阿里云庫
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级看片免费视频 | 色综合激情 | 欧美特黄视频 | 麻豆精品在线播放 | 久草手机在线视频 | 久久成人毛片 | 日韩黄色网址 | 成人h片在线观看 | 国产黄色一级片 | 老司机深夜福利视频 | 国产一级片免费 | 国产综合第一页 | 日韩a在线 | 欧美日韩国产三级 | 91亚洲一区| 国产无遮挡 | 色婷婷基地 | 玖玖久久 | 一区二区三区四区视频 | 久草网站 | 亚洲91av| 国产一级视频在线观看 | 欧美日韩在线精品 | 日韩免费在线观看视频 | 九九热视频在线 | 成人精品在线观看 | 永久免费av | 亚洲免费视频观看 | 国产精品久久网 | 免费的黄色网址 | 国产女人水真多18毛片18精品 | 免费黄色一级片 | 久久青青操 | 在线不卡av| 日韩久久久久久久 | 欧美激情视频一区二区三区 | 四虎影视库 | 国产福利网站 | 97精品国产97久久久久久免费 | 日韩精品在线看 | 亚洲视频在线看 |