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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5939|回復: 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 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:75737 發表于 2020-6-1 19:58 | 只看該作者
不錯,正在學習,應該還需要下載對應的庫才可以吧!不知哪里有離線下載的
回復

使用道具 舉報

板凳
ID:74872 發表于 2020-6-2 17:48 | 只看該作者
謝謝,正要學習,感謝分享。
回復

使用道具 舉報

地板
ID:230374 發表于 2020-6-3 09:50 | 只看該作者
正在學習,謝謝分享!
回復

使用道具 舉報

5#
ID:94079 發表于 2020-6-3 15:43 | 只看該作者
正在學習這方面的知識呢,感謝樓主無私分享
回復

使用道具 舉報

6#
ID:804156 發表于 2020-7-21 10:30 | 只看該作者
不錯   esp8266板子應用廣泛
回復

使用道具 舉報

7#
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
回復

使用道具 舉報

8#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 337p日本欧洲亚洲大胆鲁鲁 | 久久久999免费视频 999久久久久久久久6666 | 欧美精品久久久久久久久久 | 免费在线观看av网站 | 国产高潮好爽受不了了夜夜做 | 成人久久久 | 欧美片网站免费 | 黄色av网站在线观看 | 亚洲香蕉在线视频 | 婷婷在线网站 | 免费网站国产 | 久久久久久免费毛片精品 | 免费视频一区二区 | 亚洲国产成人av | 69热视频在线观看 | 欧美三级在线 | 国产一区二区三区www | 国产传媒在线观看 | 蜜桃av一区二区三区 | 色性av| 国产精品一区二区久久精品爱微奶 | 日韩av免费在线观看 | 国内av在线 | 久久久久久免费毛片精品 | 久久精品99| 欧美中国少妇xxx性高请视频 | 成人国产精品免费观看 | 中文字幕亚洲区一区二 | 国产日韩欧美一区二区在线播放 | 国产精品v | 久久99国产精品久久99果冻传媒 | 国产黄色精品 | 久久91 | 亚洲精品福利在线 | 国产精品一区二区在线播放 | 黄色毛片网站在线观看 | 精品久久久久久国产 | 日日干日日射 | 美女福利网站 | 午夜精品一区二区三区在线 | 日韩二三区 |