文章目录

  • blinker数据反馈
    • 一.简介
    • 二.心跳包
    • 三.心跳包初始化ui
      • 1.代码部分
      • 2.ui库的使用
    • 四.温湿度测试
      • 1.DHT 库的安装
      • 2.app端ui组件设置
      • 3.代码部分
      • 4.测试
    • 四.总结

blinker数据反馈

一.简介

我们在做智能家居项目的时候,数据的反馈是必不可少的,比如测温度湿度等等,将得到的数据通过服务器发送到我们的app端,实时的观测数据,今天简=简绍的是blinker 的心跳包来反馈数据

二.心跳包

我们先来了解一下什么是心跳包

在blinker app上,点击设备图标进入设备控制页面时,app会向设备发送一个状态查询指令(心跳查询)
此后,WiFi设备,每59秒会返回一次心跳包;Ble(蓝牙)设备,每29秒返回一次心跳包

状态查询指令

{"get":"state"}

默认状态下,wifi接入设备会返回

{"state":"online"}

BLE(蓝牙)接入设备会返回

{"state":"connected"}

blinker提供了改写心跳包内容的方法,使用此方法可将一些数据放置在心跳包中返回,该方法可用于数据同步、状态查询。

但是注意
设备端不主动发送数据(我们在app上不刷新的话我们检测的数据是不会变得),一切反馈都是由客户端(APP)发起。这样设计可以节约服务器资源,避免浪费。

三.心跳包初始化ui

1.代码部分

#define BLINKER_WIFI#include <Blinker.h>char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";
// 新建组件对象
BlinkerButton Button1("btn-abc");// 按下按键即会执行该函数
void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state);
}// 心跳包函数
void heartbeat() {Button1.icon("fas fa-lightbulb");Button1.color("#fddb00");Button1.text("关灯","打开啦");Button1.print("on");
}void setup() {// 初始化串口Serial.begin(115200);// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Button1.attach(button1_callback);//注册一个心跳包Blinker.attachHeartbeat(heartbeat);
}void loop() {Blinker.run();
}

上面代码的目的就是在进入软件控制界面后初始化ui界面

下面代码是对Button1 组件的初始化,当用户调用Button1.print(“on”);这些设置才会一并发送,APP收到这些数据,即会改变组件上显示的内容

 Button1.icon("fas fa-lightbulb");Button1.color("#fddb00");Button1.text("关灯","打开啦");

2.ui库的使用

我们可以在下面 图标库中找到我们想要的图标

点击此处:图标库

我们只需要根据 图标的名字来更换 下面代码中 fa- 后面的内容就可以了

 Button1.icon("fas fa-lightbulb");

四.温湿度测试

在这里我就用DHT11模块来测量温湿度数据,然后再通过心跳包的形式发送到app上面

1.DHT 库的安装

首先我们下载DHT库,然后将这个库文件解压到我们arduino 软件安装目录下的 libraries文件夹下

下载地址:DHT11库文件

2.app端ui组件设置

首先我们添加两个数据组件,将数据键值分别设为humi(温度)和temp(湿度) 如图

此图借用的是Arduino中文社区的图片

我们可以再添加一个调试组件,用以观察APP收到的数据,方便调试程序。

3.代码部分

#define BLINKER_WIFI#include <Blinker.h>
#include <DHT.h>char auth[] = "774c60aac10f"; //上一步中在app中获取到的Secret Key(新建设备的秘钥)char ssid[] = "ZFQ"; //你的WiFi热点名称char pswd[] = "123456789"; //你的WiFi密码BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");#define DHTPIN 2  //接的是GPIO2端口#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE);float humi_read = 0, temp_read = 0;void heartbeat()
{//反馈温度数据HUMI.print(humi_read);//设置ui组件图标和颜色HUMI.icon("fas fa-thermometer-2");HUMI.color("#fddb10");//反馈湿度数据TEMP.print(temp_read);TEMP.icon("fas fa-heart");HUMI.color("#fddb01");
}void setup()
{Serial.begin(115200);BLINKER_DEBUG.stream(Serial);BLINKER_DEBUG.debugAll();pinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, LOW);Blinker.begin(auth, ssid, pswd);Blinker.attachHeartbeat(heartbeat);dht.begin();
}void loop()
{Blinker.run();float h = dht.readHumidity();float t = dht.readTemperature();if (isnan(h) || isnan(t)){BLINKER_LOG("Failed to read from DHT sensor!");}else{BLINKER_LOG("Humidity: ", h, " %");BLINKER_LOG("Temperature: ", t, " *C");humi_read = h;temp_read = t;}Blinker.delay(2000);
}

注意

  1. 配置自己的模块联网代码,不会的可以看一下 前一个教程

  2. 注意配置#define DHTPIN D7 模块的io口,我们可以根据自己的连接来定义这个宏,不同的开发板书写上可能会不同,大家注意一下

  3. 我们根据我们所所选择的模块,来在代码此处修改

    #define DHTTYPE DHT11   // DHT 11
    //#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
    //#define DHTTYPE DHT21   // DHT 21 (AM2301)
    
  4. blinker下的所有延时操作,都需要使用Blinker.delay(val);替代,否则会导致设备断开连接

同时我们也可以自己可以在心跳包里添加ui组件美化的代码,来优化组件

4.测试

我们连接好开发板,将程序烧写进去,我们就可以看到对应的数据了

四.总结

这篇文章参考arduino中文社区里的教程,自己测试了一边,有的地方书写的不够详细,包括如何和DHT11连接,如何设置IO口,以及程序如何下载进开发板,这些问题都挺简单的,不会的可以先去看一下前一篇文章,blinker点灯的文章,同时也可以和我交流

ESP8266+blinker测温湿度相关推荐

  1. 小爱同学+ESP8266+blinker点灯

    系列文章目录 第一章 ESP8266+blinker 点灯 文章目录 系列文章目录 小爱同学控制 一.简介 二. app端添加设备 三. 小爱同学接入 1.简绍 2.代码部分 3.代码讲解 4.米家的 ...

  2. ESP8266+Blinker 的万物互联(智能家居篇)

    前面学习了使用ESP8266将温湿度等上传到阿里云平台,于是我想起来了万物互联,就想先做个有关智能家居的,通过查阅资料发现了Blinker(轻松物联网).下面是演示视频 Esp8266物联网 文章目录 ...

  3. 从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座

    从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座 前言 一直对8266很感兴趣,放寒假嘛,也挺闲,刚好手头有原来买下的Nodemcu,就拿来做个多路开关 参考资料我 ...

  4. 【stm32c8t6+esp8266上传温湿度到Onenet云平台】

    stm32c8t6+esp8266上传温湿度到Onenet云平台 最近做的一个小项目中需要将获取的数据到云平台,我选择的是onenet平台,下面会根据个人学习过程分享如何使用onenet平台以及如何通 ...

  5. ESP32+dht11/sht30测温湿度(arduino编程)

    闲话不多说,直接上干货. 文章目录 一.硬件介绍 二.软件编程 1.dht11测温湿度 2.sht30测温湿度 3.运行结果 一.硬件介绍 开发板型号:NodeMCU-32S(这个是我用的,其他类型的 ...

  6. ⑦ ESP8266 开发学习笔记_By_GYC 【ESP8266 驱动 DHT11 温湿度传感器】

    目录 一.准备材料 二.硬件连接 三.软件编程 1.修改工程名 2.添加组件 3.编程 4.反馈结果 5.核心代码 四.总结 ⑦ ESP8266 开发学习笔记_By_GYC [ESP8266 驱动 D ...

  7. ESP8266读DHT11温湿度,开发微信小程序实时显示

    ESP8266读DHT11温湿度,开发微信小程序实时显示 第一.原理讲解 第二.ESP8266读取DHT11 第三.温湿度推送到云端 第四.微信小程序开发 个人可免费注册五个微信小程序账号. 第一.原 ...

  8. (可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示

    ESP8266读DHT11温湿度传感器------APP inventor实时显示 原理讲解 ESP8266读取DHT11 温湿度推送到云端 app inventor 制作app 接收实时数据 关键程 ...

  9. WOL远程开机——通过ESP8266+blinker(点灯)平台实现

    WOL远程开机--通过ESP8266+blinker(点灯)平台实现 之前疫情现在家里,无聊时改装家里的吸顶灯入网时,寻找了各种物联网平台,最终找到了blinker(点灯)这个物联网平台,APP很简洁 ...

  10. Arduio ESP8266将DHT11温湿度传感器数据在网页上显示

    Arduio ESP8266将DHT11温湿度传感器数据在网页上显示

最新文章

  1. ThinkPHP的field方法的用法总结
  2. 【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入
  3. java中对时间的操作
  4. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)
  5. docker部署php的性能,Docker 学习之部署php + nginx(一)
  6. C语言:运行中获取宏名字的技巧
  7. Windows界面编程_Miniblink(6) 个人信息界面
  8. 【GIS|原理】地统计分析
  9. gaster字体转换器_gautami字体
  10. 【干货分享】Color Fonts是什么?多彩字体详解
  11. 拇指玩」制作的「谷歌安装器」app
  12. 通过搭建web服务来实现页面访问
  13. iOS 9-iPhone6s-iPadmini4企业证书信任
  14. 手风琴效果——原生JS
  15. 利用C语言求一个数的所有质因数
  16. 计算机组装前工具的准备,计算机组装 必备工具
  17. 目睹鸿蒙开创四大至高位面,第二十三章 鸿蒙四大至高规则
  18. 如何在安卓手机上查看airpods pro的电量
  19. Calibre xRC在 RF PDK的使用
  20. Powershell管理系列(三)2012 AD域用户UPN名称还原

热门文章

  1. 16岁的雅虎问答,因“不再受欢迎”将永久关闭
  2. android 读取本地超大图片
  3. 修改postgresql库表的owner
  4. java读取服务器上文件,java 读取linux服务器上文件
  5. 基于C# winform实现随机点名小工具(支持csv导入)
  6. swift 选取图库中的图片
  7. 深度xp系统插入光盘显示上一张光盘资料解决方法
  8. IDEA2021+Tomcat8+Servlet加载别人的项目时无web application导致无法进行Tomcat部署及实现Servlet程序的解决办法
  9. android中menu重写哪些方法,在Android中Menu的使用
  10. 计算机病毒有熊猫病毒,世界最厉害的电脑病毒排名 熊猫烧香病毒最使人讨厌...