arduino连接阿里云IOT平台 并上传数据点模型
很久没更新了,写个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平台 并上传数据点模型相关推荐
- NodeMCU-ESP8266连接阿里云Iot平台进行数据监测
简介 本教程中主要讲解使用阿里云Iot监测控制NodeMCU的方法. 设备从MQTT数据上传.监测.控制的全流程如下图所示,本教程仅仅讲解从设备与Aliyun平台之间的交互,业务服务器部分(App开发 ...
- 本地远程连接阿里云Windows服务器并上传文件的方法
欢迎移步我的个人博客 先学会如何连接远程计算机 1. 从阿里云控制台进入实例,并且复制公网ip(下一步用到) 2. win+r输入cmd回车,在cmd窗口中输入mstsc命令,打开远程桌面连接 3. ...
- 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...
使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...
- 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台
摘要:本篇文章讲解如何使用JavaScript"轻应用"连接阿里云物联网平台并上报一个数据.仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够 ...
- 4G Modbus Json边缘网关接入阿里云IoT平台
LTE-669P 4G边缘网关系列 阿里云平台连接教程 今天介绍物联设备 LTE-669P 4G边缘网关如何接入阿里云平台系列. LTE-669P是一款工业级4G JSON无线边缘解析网关,支持RS4 ...
- 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台
我们在上一节<[ODYSSEY-STM32MP157C]驱动 UART 读取传感器数据> 已经成功读取到 PMS5003ST 传感器的数据,本节我们将学习如何将设备接入阿里云 IoT 平台 ...
- 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(九)---制作APP
前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...
- 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(四)---阿里云物联网平台使用基础
前面几个文章一直在分析arduino d1 wifi模块如何安装开发板库,如何编程,如何调用wifi操作库,如何运行第一个网络扫描程序. 现在突然跳转到介绍阿里云,为什么呢? 原因很简单,就是物联网设 ...
- 支付宝小程序使用MQTT over WebSocket连接阿里云IoT物联网平台
前言 之前写了一篇微信小程序使用MQTT over WebSocket连接阿里云IoT物联网平台,介绍了如何使用mqtt.js在微信小程序上连接mqtt服务器,文中顺带提了mqtt.js是支持支付宝小 ...
最新文章
- Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)
- 黑入苹果特斯拉竟如此容易!这位鬼才的攻击方法火了,微软等35家公司一起悬赏...
- EF mysql 数据迁移_EF Code First Migrations数据库迁移
- 语言堆栈入门——堆和栈的区别
- poj2912(种类并查集+枚举)
- Android之解决Base64 encode中文乱码问题
- 论文浅尝 | 使用变分推理做KBQA
- java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?
- Qt4访问sqlite数据库
- 乔布斯:你须寻得所爱(转)
- EasyCVR调用Ehome协议接入的硬盘录像机设备录像无法播放,如何处理?
- 苹果cms去掉html,苹果cmsV10 隐藏显示视频设置教程
- 数据分析-信用卡反欺诈模型
- 点击上下左右按钮让背景上下左右移动
- 提高淘宝店铺动态评分的四大技巧
- 关于fiddler和charles手机代理以后无法上网的问题解决
- str在c语言什么意思,C语言(str)是什么意思
- 【Python】在字符串的头尾做文本匹配
- oracle ORA-22992问题
- GNS模拟linux,GNS3模拟器官方版最新版及安装说明