2020-06-08 esp8266ardunio阿里云

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

#include <ArduinoJson.h>

#include "aliyun_mqtt.h"

// GPIO 13, D7 on the Node MCU v3

#define SENSOR_PIN 13

#define WIFI_SSID? ? ? ? "CMCC-123"http://替換自己的WIFI

#define WIFI_PASSWD? ? ? "12345678"http://替換自己的WIFI

#define PRODUCT_KEY? ? ? "abcvfg" //替換自己的PRODUCT_KEY

#define DEVICE_NAME? ? ? "Temp_Sensor" //替換自己的DEVICE_NAME

#define DEVICE_SECRET? ? "QhT3OdM9Yi4izSgiXdjKOPIoCzQbVcLy"http://替換自己的DEVICE_SECRET

#define DEV_VERSION? ? ? "S-TH-WIFI-v1.0-20190220"? ? ? ? //固件版本信息

#define ALINK_BODY_FORMAT? ? ? ? "{\"id\":\"123\",\"version\":\"1.0\",\"method\":\"%s\",\"params\":%s}"

#define ALINK_TOPIC_PROP_POST? ? "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"

#define ALINK_TOPIC_PROP_POSTRSP? "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post_reply"

#define ALINK_TOPIC_PROP_SET? ? ? "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/service/property/set"

#define ALINK_METHOD_PROP_POST? ? "thing.event.property.post"

#define ALINK_TOPIC_DEV_INFO? ? ? "/ota/device/inform/" PRODUCT_KEY "/" DEVICE_NAME ""? ?

#define ALINK_VERSION_FROMA? ? ? "{\"id\": 123,\"params\": {\"version\": \"%s\"}}"

unsigned long lastMs = 0;

WiFiClient? espClient;

PubSubClient mqttClient(espClient);

void init_wifi(const char *ssid, const char *password)

{

? ? WiFi.mode(WIFI_STA);

? ? WiFi.begin(ssid, password);

? ? while (WiFi.status() != WL_CONNECTED)

? ? {

? ? ? ? Serial.println("WiFi does not connect, try again ...");

? ? ? ? delay(500);

? ? }

? ? Serial.println("Wifi is connected.");

? ? Serial.println("IP address: ");

? ? Serial.println(WiFi.localIP());

}

void mqtt_callback(char *topic, byte *payload, unsigned int length)

{

? ? Serial.print("Message arrived [");

? ? Serial.print(topic);

? ? Serial.print("] ");

? ? payload[length] = '\0';

? ? Serial.println((char *)payload);

? ? if (strstr(topic, ALINK_TOPIC_PROP_SET))

? ? {

? ? ? ? StaticJsonBuffer<100> jsonBuffer;

? ? ? ? JsonObject &root = jsonBuffer.parseObject(payload);

? ? ? ? if (!root.success())

? ? ? ? {

? ? ? ? ? ? Serial.println("parseObject() failed");

? ? ? ? ? ? return;

? ? ? ? }

? ? }

}

void mqtt_version_post()

{

? ? char param[512];

? ? char jsonBuf[1024];

? ? //sprintf(param, "{\"MotionAlarmState\":%d}", digitalRead(13));

? ? sprintf(param, "{\"id\": 123,\"params\": {\"version\": \"%s\"}}", DEV_VERSION);

? // sprintf(jsonBuf, ALINK_BODY_FORMAT, ALINK_METHOD_PROP_POST, param);

? ? Serial.println(param);

? ? mqttClient.publish(ALINK_TOPIC_DEV_INFO, param);

}

void mqtt_check_connect()

{

? ? while (!mqttClient.connected())//mqttδ????

? ? {

? ? ? ? while (connect_aliyun_mqtt(mqttClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET))

? ? ? ? {

? ? ? ? ? ? Serial.println("MQTT connect succeed!");

? ? ? ? ? ? //client.subscribe(ALINK_TOPIC_PROP_POSTRSP);

? ? ? ? ? ? mqttClient.subscribe(ALINK_TOPIC_PROP_SET);


? ? ? ? ? ? Serial.println("subscribe done");

? ? ? ? ? ? mqtt_version_post();

? ? ? ? }

? ? }


}

void mqtt_interval_post()

{

? ? char param[512];

? ? char jsonBuf[1024];

? ? //sprintf(param, "{\"MotionAlarmState\":%d}", digitalRead(13));

? ? sprintf(param, "{\"CurrentHumidity\":%d,\"CurrentTemperature\":12,\"GeoLocation\":{\"CoordinateSystem\":2,\"Latitude\":2,\"Longitude\":123,\"Altitude\":1}}", digitalRead(13));

? ? sprintf(jsonBuf, ALINK_BODY_FORMAT, ALINK_METHOD_PROP_POST, param);

? ? Serial.println(jsonBuf);

? ? mqttClient.publish(ALINK_TOPIC_PROP_POST, jsonBuf);

}

void setup()

{

? ? pinMode(SENSOR_PIN, INPUT);

? ? /* initialize serial for debugging */

? ? Serial.begin(115200);

? ? Serial.println("Demo Start");

? ? init_wifi(WIFI_SSID, WIFI_PASSWD);

? ? mqttClient.setCallback(mqtt_callback);

}

// the loop function runs over and over again forever

void loop()

{

? ? if (millis() - lastMs >= 20000)

? ? {

? ? ? ? lastMs = millis();

? ? ? ? mqtt_check_connect();

? ? ? ? /* Post */? ? ? ?

? ? ? ? mqtt_interval_post();

? ? }

? ? mqttClient.loop();

? ? unsigned int WAIT_MS = 2000;

? ? if (digitalRead(SENSOR_PIN) == HIGH)

? ? {

? ? ? ? Serial.println("Motion detected!");

? ? }

? ? else

? ? {

? ? ? ? Serial.println("Motion absent!");

? ? }

? ? delay(WAIT_MS); // ms

? ? Serial.println(millis() / WAIT_MS);

}

————————————————


原文鏈接:https://blog.csdn.net/ziqi5543/java/article/details/88710552

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市骡和,隨后出現(xiàn)的幾起案子蕾羊,更是在濱河造成了極大的恐慌涧至,老刑警劉巖偎蘸,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異档礁,居然都是意外死亡歪玲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蠢甲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)僵刮,“玉大人,你說(shuō)我怎么就攤上這事鹦牛「愀猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵曼追,是天一觀的道長(zhǎng)窍仰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)礼殊,這世上最難降的妖魔是什么驹吮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮晶伦,結(jié)果婚禮上碟狞,老公的妹妹穿的比我還像新娘。我一直安慰自己婚陪,他們只是感情好族沃,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著近忙,像睡著了一般竭业。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上及舍,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天未辆,我揣著相機(jī)與錄音,去河邊找鬼锯玛。 笑死咐柜,一個(gè)胖子當(dāng)著我的面吹牛兼蜈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拙友,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼为狸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了遗契?” 一聲冷哼從身側(cè)響起辐棒,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牍蜂,沒(méi)想到半個(gè)月后漾根,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲫竞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年辐怕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片从绘。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寄疏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出僵井,到底是詐尸還是另有隱情陕截,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布批什,位于F島的核電站艘策,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渊季。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一罚渐、第九天 我趴在偏房一處隱蔽的房頂上張望却汉。 院中可真熱鬧,春花似錦荷并、人聲如沸合砂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翩伪。三九已至,卻和暖如春谈息,著一層夾襖步出監(jiān)牢的瞬間缘屹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工侠仇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轻姿,地道東北人犁珠。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像互亮,于是被迫代替她去往敵國(guó)和親犁享。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361