send tcp char far_wemos D1 arduino项目实战1-TCP协议连接Tlink平台③
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-00ab0175d6409e396621125e9a9217df_1440w.jpg?source=172ae18b)
前言
上一节,我们使用Wemos D1连接Tlink云服务器,本节,我们开始使用Tlink平台创建可视化监控页面。
一、设计云端可视化页面
1. 编辑设备信息
在设计可视化页面之前,需要修改下开关为开关类型,用户可操作,也就是说用户可以平台点击开关,下发命令。
编辑设备:
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-7353212134e8d53639fe618a31c36c23_b.jpg)
将开关设置为可操作性的开类型
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-205e7d4b4950bd4de09c98bfbb60a2ea_b.jpg)
可以看到此时开关显示为一个switch按钮,可以通过按钮下发命令
![](http://img-02.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-75ab1ee7003cbbc79652a680ad4de41a_b.jpg)
通过设置连接进入如下页面:
然后设置开关传感器下发开和关的指令分别为{“switch”:1}、{“switch”:0}
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-764521e92410fcd62a6eb487405549fd_b.jpg)
2. 设计云组态
新建云组态:
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-712c40d86cd11b60c21d10434de4abde_b.jpg)
增加一个开关:
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-62988a57790daa3144eae306e6a3f2fb_b.jpg)
增加一个表盘:
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-43eeee359e7bba561470c60124ab2652_b.jpg)
设置开关参数:
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-bb6ba63263249ebd236703928ea42502_b.jpg)
设置表盘参数:
![](http://img-02.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-b33c92c8dc9bea6040117e18419b7b8d_b.jpg)
保存后预览
![](http://img-02.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-745e121efea4e23b73cf59bc61a2ba98_b.jpg)
预览效果:
![](http://img-02.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-c0a195fb50927a425c04af29f19183da_b.jpg)
二、修改设备端代码
代码:
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Ticker.h>#define DEVICE_ID "V36625K243D8ROR1"
#define DEVICE_DATA "#25,1#"char* ssid = "lxy2305";
char* passwd = "123456789a";const uint16_t port = 8647;
const char * host = "tcp.tlink.io"; // ip or dns
WiFiClient client;//创建一个tcp client连接
int heartbeart_flag = 0;
char send_data[32];
Ticker tk;
int temp_value = 25;
int switch_value = 0;
void time_coming_cicyle_cb(void)
{heartbeart_flag = 1;
}// 复位或上电后运行一次:
void setup() {//在这里加入初始化相关代码,只运行一次:Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid, passwd);Serial.println("connecting to router... ");//等待wifi连接成功while (WiFi.status() != WL_CONNECTED) {Serial.print(".");delay(500);}Serial.println("");Serial.print("WiFi connected, local IP address:");Serial.println(WiFi.localIP());delay(500);Serial.print("connecting to ");Serial.println(host);if (!client.connect(host, port)) {Serial.println("connection failed");Serial.println("wait 5 sec...");delay(5000);return;}else{Serial.println("connect to tcp server success.");Serial.println("Send this data to tcp server");client.print(DEVICE_ID);delay(500);client.print(DEVICE_DATA);// call time_coming_cicyle_cb every 30stk.attach(5, time_coming_cicyle_cb);}
}void loop() {if (1 == heartbeart_flag){if (temp_value >= 30){temp_value = 20; }else{temp_value = temp_value + 1; }switch_value = !switch_value;sprintf(send_data, "#%d,%d#", temp_value, switch_value);client.print(send_data);Serial.print("send data : ");Serial.println(send_data);heartbeart_flag = 0;}String recv_data = client.readString(); // client.readStringUntil('r');if (recv_data != NULL){Serial.print("Receive data : ");Serial.println(recv_data);}delay(20);
}
相校上一篇,主要增加了如下代码:
if (1 == heartbeart_flag){if (temp_value >= 30){temp_value = 20; }else{temp_value = temp_value + 1; }switch_value = !switch_value;sprintf(send_data, "#%d,%d#", temp_value, switch_value);client.print(send_data);Serial.print("send data : ");Serial.println(send_data);heartbeart_flag = 0;}
将上一篇的每隔5秒发送一次心跳,修改为发送一次数据,并且温度值在20-30变化,开关值每次取反,这样做可以解决云端设备状态显示异常问题。
三、运行
将设备端代码下载到wemos D1中,设备开始联网,并每隔5秒发送一次本地数据。
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-e57abb54cfa3bd438e31487550bdecf9_b.jpg)
可以看到,每次发送数据,温度加1,开关值取反。
云端显示如下:
![](http://img-03.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-2c10f79b26fb8602989f77be5982507e_b.jpg)
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-1438600cbcee97edeb22eecae6cba679_b.jpg)
点击开关按钮:
![](http://img-01.proxy.5ce.com/view/image?&type=2&guid=60049d56-5c2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-b3cc2824d1536490ccfbc7d3bca84f01_b.jpg)
点击开关后,设备收到云端下发数据。
本文由一叶孤沙原创,欢迎关注,和我们一起成长!
寄语:世界上最远的距离是鱼与飞鸟的距离,一个在天上,一个却深浅海底!
send tcp char far_wemos D1 arduino项目实战1-TCP协议连接Tlink平台③相关推荐
- wemos D1 arduino项目实战2-设备连接Tlink平台
前言 上一节,我们完成了Tlink云端创建项目,并使用网络助手连接Tlink云服务器,本节,我们开始学习使用Wemos D1连接Tlink平台. 一.实例 1.通信流程 首先连接tcp.tlink.i ...
- wemos D1 arduino项目实战1-Tlink平台创建一个产品
前言 本节,我们开始学习连接Tlink平台,通过TCP协议将数据传输到Tlink平台,同时通过Tlink平台下发命令远程控制设备,本节目表示通过网络助手和TLink平台进行数据调试. 一.基础知识 1 ...
- wemos D1 arduino项目实战3-Tlink平台web表盘监听数据
前言 上一节,我们使用Wemos D1连接Tlink云服务器,本节,我们开始使用Tlink平台创建可视化监控页面. 一.设计云端可视化页面 1. 编辑设备信息 在设计可视化页面之前,需要修改下开关为开 ...
- Arduino项目实战——基于Arduino【智能垃圾桶】设计
Arduino项目实战 -基于Arduino[智能垃圾桶]设计 第一次接触Arduino是在大一的时候,距离现在已经五年,当时一个简单的"电子琴"项目就让我抓耳 ...
- 【课题总结】OpenCV 抠图项目实战(11)算法实验平台
Python 小白的课题报告-OpenCV 抠图项目实战(11)抠图算法实验平台 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...
- 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建
岭师人工智能素养教育共同体PBL项目教程系列之1:户外智慧农场项目实战系列 原文链接 https://mp.weixin.qq.com/s/avKWJHNvnPeFsdEXUBByjw 本系列以户外 ...
- 【slighttpd】基于lighttpd架构的Server项目实战(5)—TCP的TIME_WAIT状态
转载地址:https://blog.csdn.net/jiange_zh/article/details/50637549 上一节我们已经开发了一个简单的echo服务器,在这里我们先不急着继续下去,先 ...
- java o2o_Java项目实战篇之校园O2O商铺平台-开发准备一
校园O2O商铺平台 一. 项目介绍 校园o2o平台是一个新兴的电子商务平台,主要是为了广大学生群体建立一个实用性,广泛性,快捷性的消费平台.就大学生的消费的状况,市场份额相当巨大,消费潜力也是非常可观 ...
- 【乐鑫ESP32】腾讯云平台项目创建以及MQTT协议连接
目录 一.腾讯云平台项目创建 1.新建项目 2.新建产品 3.新建设备 二.基于TCP的MQTT接入 1.接入介绍 2.用户名格式 3.密码格式 4.通过python生成用户名和密码 三.ESP32代 ...
- 【课题总结】OpenCV 抠图项目实战(12)源程序代码
Python 小白的课题报告-OpenCV 抠图项目实战(12)源程序代码 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...
最新文章
- 关于选择哪些村庄试点新农村建设的讨论
- django 文档生成器
- VMware安装MacOSx系统
- Andriod开发技巧——Fragment的懒载入
- 计算不规则图形周长_7.2三年级上册数学《周长》同步练习,附答案
- jzoj4673,CF578D-LCS again【统计,字符串,容斥】
- linux 运行 chom,Hadoop安装-单节点/伪分布(2.7.3)
- [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]
- c#equals方法源码_C#中的Int32.Equals()方法示例
- Linux安全手册(转载)
- Windows Server 2008 Server Core模式
- js实现json转excel的npm包
- 如何做一个基于python电影院售票系统毕业设计毕设作品(Django框架)
- lpx寒假作业案例8
- Echarts饼图自定义颜色配置(图色、选择颜色、字体颜色)
- 使用MOno Cecil 的相关开源项目
- win10系统的深度清理方法
- 初学者之蚂蚁蜜蜂分类报错记录
- 用GEPHI绘制的 我的微博 好友 关系 与 好友的好友关系图
- DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
热门文章
- 机器学习入门二 ----- 机器学习术语表
- vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)
- spring与jpa整合 简化persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库...
- javascript中模仿接口(interface)
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较[转]...
- 深度学习pytorch基础入门教程(1小时)-自动梯度
- 图灵专栏微信小程序上线
- ENVI5.1中Landsat 8数据大气校正
- 使用序列标注方法进行关系抽取的相关论文推荐
- 设计模式-02-创建型模式详解