物联网离线语音控制智能家居系统设计(三):ESP8266(Arduino IDE)连接阿里云物联网平台

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include "aliyun_mqtt.h"//以上四个为可以直接在arduino库安装//start*********此处需要修改************************
//WiFi名称密码
#define WIFI_SSID        "********"//替换自己的WIFI
#define WIFI_PASSWD      "********"//替换自己的WIFI
//阿里云物联网三元模组
#define PRODUCT_KEY      "********" //替换自己的PRODUCT_KEY
#define DEVICE_NAME      "********" //替换自己的DEVICE_NAME
#define DEVICE_SECRET    "********"//替换自己的DEVICE_SECRET
//接收与发送消息的两个topic,修改为自己需要的topic,一下无效的实例
#define updata_topic    "/devicename/test/user/update"
#define get_topic     "/devicename/test/user/get"
//end*********需要修改的已完毕************************unsigned long lastMs = 0;WiFiClient   espClient;
PubSubClient mqttClient(espClient);void init_wifi(const char *ssid, const char *password)//连接WiFi
{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)//回调函数,会打印出接收到的topic以及对应的消息,需要的话,此处也可以对消息中包含的信息进行解析
{Serial.print("Message arrived [");Serial.print(topic);Serial.print("] ");payload[length] = '\0';Serial.println((char *)payload);}
void mqtt_version_post()//发送消息
{char param[512];char jsonBuf[1024];sprintf(param, "{\"TargetDevice\":\"phone\",\"DeviceName\":\"test\",\"data\":\"123\"}");//此处为将需要发送的文本赋值给paramSerial.println(param);//打印param至串口mqttClient.publish(updata_topic, param);//发送param至update_topic这个topic
}
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(get_topic);Serial.println("subscribe done");mqtt_version_post();}}}
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()//循环,相当于while(1)
{if (millis() - lastMs >= 20000){lastMs = millis();mqtt_check_connect();/* 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); // msmqtt_version_post();Serial.println(millis() / WAIT_MS);
}

程序参考了很多网上代码,自己做了一定修改整理,有问题可以交流

物联网离线语音控制智能家居系统设计(三):ESP8266(Arduino IDE)连接阿里云物联网平台相关推荐

  1. ESP8266 AT指令连接阿里云物联网平台

    模组:ESP-12F   ||   ESP-12S  ||   (保险来说,ESP模组的flash应该 大于4MB.或者说为32Mbit 才可以)待补充 ... 平台:阿里云物联网平台 固件:ESP8 ...

  2. STM32 通过 ESP8266 AT指令连接阿里云物联网平台

    模组  :ESP-12F   ||   ESP-12S  ||  (保险来说,ESP模组的flash应该 大于4MB.或者说为32Mbit 才可以) 待补充 ... 平台  :阿里云物联网平台 MCU ...

  3. STM32+ESP8266+MQTT协议连接阿里云物联网平台

    一.环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可.比如:GSM模块.有线网卡等. 开发软件:keil5 硬件连接功能: ...

  4. ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居

    ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...

  5. 2022-2028全球与中国语音控制智能家居平台市场现状及未来发展趋势

    本文研究全球及中国市场语音控制智能家居平台现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国.日本.东南亚和印度等地区的现状及未来发展趋势.  2021年全球语音控制智能家 ...

  6. 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

    树莓派mqtt协议连接阿里云物联网平台(三) 前面树莓派的数据已经上传到云端,可是我的android手机该如何获取树莓派上传的这些数据呢,,困惑了我好几天的疑问,解开的那一刻,真的时拨开云雾见青天啊. ...

  7. 微信小程序连接物联网(三):微信小程序远程遥控宿舍开门 基于NodeMCU通过MQTT协议连接阿里云物联网平台

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

  8. STM32F103C8T6通过ESP8266连接阿里云物联网平台(附代码)

    代码: https://download.csdn.net/download/cainiaofu/13973012 阿里云lot Studio控制 Web开发(程序已精简) 分享一下自己使用stm32 ...

  9. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(四)---阿里云物联网平台使用基础

    前面几个文章一直在分析arduino d1 wifi模块如何安装开发板库,如何编程,如何调用wifi操作库,如何运行第一个网络扫描程序. 现在突然跳转到介绍阿里云,为什么呢? 原因很简单,就是物联网设 ...

  10. 【阿里云生活物联网架构师专题 ④】分享可商用的ESP8266 SDK连接阿里云物联网生活平台的在线远程升级OTA笔记。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

最新文章

  1. 软件开发本质论——自然之路
  2. Java基础篇:封装、继承、多态三大特性
  3. 使用Mapreduce案例编写用于统计文本中单词出现的次数的案例、mapreduce本地运行等,Combiner使用及其相关的知识,流量统计案例和流量总和以及流量排序案例,自定义Partitioner
  4. 搭建IIS并配置网站之旅
  5. 交换机组最常见的8大故障及解决方法
  6. 关于游戏排行榜设计开发的一些总结
  7. php实现git服务器,如何搭建和配置Git服务器
  8. 怎么删除python工程_python根据字典的键来删除元素的方法
  9. oracle将字符串的日期格式化,oracle格式化字符串 oracle 怎么把字符串转换成日期...
  10. ARM、X86/Atom、MIPS、PowerPC 介绍
  11. 掉价最快的手机排行榜_如何看待2020第一季度手机销量数据。
  12. 遗传算法c语言 x^2,c语言遗传算法 解决 y=x2问题
  13. 瓦尔德-沃尔福威茨检验
  14. 5g网络模式是以什么划分的_5G组网的8种方式,有什么不同?各方式又怎么进行网络部署...
  15. Android 系统的分区和文件系统(一)--Android分区的大概框架
  16. 裁判文书android app逆向
  17. 计算机信息的应用安全中心在哪,通过Windows Defender安全中心“全新启动”功能恢复/刷新电脑...
  18. 网站日志流量分析系统之(日志收集)
  19. 农村谋定产业发展模式-农业大健康:特色赋能乡村多元化
  20. 2018-9-3-vue的tabs表单代码的思考

热门文章

  1. 笔记 GWAS 操作流程2-5:杂合率检验
  2. 炒币疯狂的背后,如何解决区块链技术落地问题?
  3. 关于explain plan的使用!
  4. 记2012.12.20北京CISSP考试通过-“末日”前终于拿到“船票”
  5. 一些大任务SQL的优化方案
  6. Linux容器的安装链接
  7. yarn.lock、package-lock.json、npm-shrinkwrap.json的理解
  8. c语言数组转换树存储结构,c语言, 一棵具有n个结点的完全二叉树以数组存储,试写一个非递归 算法实现对 该树的前序遍历。...
  9. SX1308电压调节,踩坑
  10. 使用Fastlane编写Android自动打包脚本