很久没更新了,写个esp连接阿里云平台吧,主要实现云平台的连接和物模型的数据点上传,相比Onenet,阿里云平台的功能更加丰富,产业链更长远(虽然我更喜欢用自己的服务器,没那么约束,但安全系数也没那么高)。效果图就不放了,原理都差不多。

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
/* 连接您的WIFI SSID和密码 */
#define WIFI_SSID         "TP-LINK_3BF2"
#define WIFI_PASSWD       "13219991021"
/* 设备的三元组信息*/
#define PRODUCT_KEY       "a1XBVOA1XGE"
#define DEVICE_NAME       "card"
#define DEVICE_SECRET     "489bc1de15cea782d0bbcf1b4ec041d6"
#define REGION_ID         "cn-shanghai"
/* 线上环境域名和端口号,不需要改 */
#define MQTT_SERVER       PRODUCT_KEY ".iot-as-mqtt." REGION_ID ".aliyuncs.com"
#define MQTT_PORT         1883
#define MQTT_USRNAME      DEVICE_NAME "&" PRODUCT_KEY
#define CLIENT_ID         "pw123|securemode=3,signmethod=hmacsha1|"
// 算法工具: http://iot-face.oss-cn-shanghai.aliyuncs.com/tools.htm 进行加密生成password
// password教程 https://www.yuque.com/cloud-dev/iot-tech/mebm5g
#define MQTT_PASSWD       "83B667A9E9BBD4F59479BA7F81BC9F79A599758E"
//{"id":"temp","version":"1.0","params":{"CurrentHumidity":10},"method":"thing.event.property.post"}
#define ALINK_BODY_FORMAT         "{\"id\":\"card\",\"version\":\"1.0\",\"method\":\"thing.event.property.post\",\"params\":%s}"
#define ALINK_TOPIC_PROP_POST     "/sys/a1XBVOA1XGE/card/thing/event/property/post"
unsigned long lastMs = 0;
String get_id="adviceA:";
String serial_input="";
long temp_id=0;
unsigned char count=0;
WiFiClient espClient;
PubSubClient  client(espClient);
void callback(char *topic, byte *payload, unsigned int length)
{Serial.print("Message arrived [");Serial.print(topic);Serial.print("] ");payload[length] = '\0';Serial.println((char *)payload);
}
void wifiInit()
{WiFi.mode(WIFI_STA);WiFi.begin(WIFI_SSID, WIFI_PASSWD);   //连接WiFiwhile (WiFi.status() != WL_CONNECTED){delay(1000);Serial.println("WiFi not Connect");}Serial.println("Connected to AP");Serial.println("IP address: ");Serial.println(WiFi.localIP());    Serial.print("espClient [");client.setServer(MQTT_SERVER, MQTT_PORT);   /* 连接WiFi之后,连接MQTT服务器 */client.setCallback(callback);
}
void mqttCheckConnect()
{while (!client.connected()){Serial.println("Connecting to MQTT Server ...");if (client.connect(CLIENT_ID, MQTT_USRNAME, MQTT_PASSWD)){Serial.println("MQTT Connected!");}else{Serial.print("MQTT Connect err:");Serial.println(client.state());delay(5000);}}
}void mqttIntervalPost()
{char param[40];char jsonBuf[128];String buf="{\"Display\":\""+get_id+"\"}";strcpy(param, buf.c_str());sprintf(jsonBuf, ALINK_BODY_FORMAT, param);Serial.println(jsonBuf);boolean d = client.publish(ALINK_TOPIC_PROP_POST, jsonBuf);if(d){Serial.println("publish  success"); }else{Serial.println("publish  fail"); }get_id="adviceA:";
}
void setup()
{   Serial.begin(115200);Serial.println("Demo Start");wifiInit();unsigned char i=0;// mqttCheckConnect();
}
void loop()
{mqttCheckConnect(); /* 上报 */while(Serial.available()){serial_input+=(char)Serial.read();delay(2);}//读取电脑传来的数据//Serial.println(serial_input);if(serial_input!=""){//Serial.println(serial_input);get_id+=serial_input;mqttIntervalPost();serial_input="";Serial.println(get_id);mqttIntervalPost();}client.loop();
}

arduino连接阿里云IOT平台 并上传数据点模型相关推荐

  1. NodeMCU-ESP8266连接阿里云Iot平台进行数据监测

    简介 本教程中主要讲解使用阿里云Iot监测控制NodeMCU的方法. 设备从MQTT数据上传.监测.控制的全流程如下图所示,本教程仅仅讲解从设备与Aliyun平台之间的交互,业务服务器部分(App开发 ...

  2. 本地远程连接阿里云Windows服务器并上传文件的方法

    欢迎移步我的个人博客 先学会如何连接远程计算机 1. 从阿里云控制台进入实例,并且复制公网ip(下一步用到) 2. win+r输入cmd回车,在cmd窗口中输入mstsc命令,打开远程桌面连接 3. ...

  3. 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...

    使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...

  4. 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

    摘要:本篇文章讲解如何使用JavaScript"轻应用"连接阿里云物联网平台并上报一个数据.仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够 ...

  5. 4G Modbus Json边缘网关接入阿里云IoT平台

    LTE-669P 4G边缘网关系列 阿里云平台连接教程 今天介绍物联设备 LTE-669P 4G边缘网关如何接入阿里云平台系列. LTE-669P是一款工业级4G JSON无线边缘解析网关,支持RS4 ...

  6. 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台

    我们在上一节<[ODYSSEY-STM32MP157C]驱动 UART 读取传感器数据> 已经成功读取到 PMS5003ST 传感器的数据,本节我们将学习如何将设备接入阿里云 IoT 平台 ...

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

    前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...

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

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

  9. 支付宝小程序使用MQTT over WebSocket连接阿里云IoT物联网平台

    前言 之前写了一篇微信小程序使用MQTT over WebSocket连接阿里云IoT物联网平台,介绍了如何使用mqtt.js在微信小程序上连接mqtt服务器,文中顺带提了mqtt.js是支持支付宝小 ...

最新文章

  1. Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)
  2. 黑入苹果特斯拉竟如此容易!这位鬼才的攻击方法火了,微软等35家公司一起悬赏...
  3. EF mysql 数据迁移_EF Code First Migrations数据库迁移
  4. 语言堆栈入门——堆和栈的区别
  5. poj2912(种类并查集+枚举)
  6. Android之解决Base64 encode中文乱码问题
  7. 论文浅尝 | 使用变分推理做KBQA
  8. java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?
  9. Qt4访问sqlite数据库
  10. 乔布斯:你须寻得所爱(转)
  11. EasyCVR调用Ehome协议接入的硬盘录像机设备录像无法播放,如何处理?
  12. 苹果cms去掉html,苹果cmsV10 隐藏显示视频设置教程
  13. 数据分析-信用卡反欺诈模型
  14. 点击上下左右按钮让背景上下左右移动
  15. 提高淘宝店铺动态评分的四大技巧
  16. 关于fiddler和charles手机代理以后无法上网的问题解决
  17. str在c语言什么意思,C语言(str)是什么意思
  18. 【Python】在字符串的头尾做文本匹配
  19. oracle ORA-22992问题
  20. GNS模拟linux,GNS3模拟器官方版最新版及安装说明

热门文章

  1. 游卡桌游王锐杰:桌游网游化是必然趋势
  2. Android 之夜间模式(多主题)的实现
  3. 我的北漂生活:我来北京一个月了
  4. DPDK RSS 基础
  5. Python经典面试题(100+)
  6. LiveCD及Casper调研
  7. 什么是TCP三次握手和四次挥手【重点学习系列---干货十足--一文详解】
  8. HTML用<form>表单制作个人简历
  9. 【hx717称重传感器采集芯片】双输入通道高精度 24 位模/数(A/D)转换器芯片(附芯片手册)
  10. 分布式系统消息中间件-RabbitMQ介绍及其应用