【花雕学编程】Arduino动手做(246)--ESP8266 blinker解决方案

2025-02-064457
精华项目
【花雕学编程】Arduino动手做(246)--ESP8266 blinker解决方案图2

【花雕学编程】Arduino动手做(246)--ESP8266 blinker解决方案图1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(15)
驴友花雕
驴友花雕
作者
7、实验串口返回情况2

驴友花雕
驴友花雕
作者
6、实验场景图(设备)

驴友花雕
驴友花雕
作者
5、打开设备,点击按钮,即可控制设备板载LED灯的亮灭,并能计数

驴友花雕
驴友花雕
作者
4、在手机上打开APP“blinker”,发现设备ESP8266 V3,已经在线

驴友花雕
驴友花雕
作者
3、实验串口返回情况

驴友花雕
驴友花雕
作者
2、代码解读
(1)库的引入和常量定义
[code]#include
#include [/code]
这些语句引入了ESP8266 WiFi库和Blinker库,后者用于与Blinker平台通信。
[code]#define BLINKER_PRINT Serial
#define BLINKER_WIFI[/code]
这些宏定义设置了Blinker的调试输出为串行通信,并启用了WiFi功能。
(2)WiFi和Blinker配置
[code]char auth[] = "zhz3";
char ssid[] = "z156721";
char pswd[] = "d251bb68ea";[/code]
定义了连接Blinker平台的授权码以及连接WiFi网络的SSID和密码。
(3)Blinker组件对象的创建
[code]BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");[/code]
创建了两个Blinker组件对象,一个是按钮,另一个是数字显示器。
(4)按键回调函数
[code]void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}[/code]
定义了一个回调函数,当按钮被按下时,输出按钮状态并切换LED的状态。
(5)数据读取函数
[code]void dataRead(const String & data) {
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}[/code]
定义了一个函数,当未绑定的组件被触发时,输出数据并增加计数器的值,同时在数字显示器上显示新的计数器值。
(6)初始化
[code]void setup() {
Serial.begin(115200);
#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT);
#endif
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
}[/code]
在setup函数中,初始化串口通信、内置LED引脚、Blinker库,并绑定数据读取和按键回调函数。
(7)主循环
[code]void loop() {
Blinker.run();
}[/code]
在loop函数中,调用Blinker的run方法,持续处理Blinker平台的通信和事件。
这段代码的主要功能是通过WiFi连接到Blinker平台,控制LED的开关,并通过按键和数字显示器与用户进行交互。
驴友花雕
驴友花雕
作者
四、使用esp8266 & WiFi接入blinker测试板载LED
1、实验开源代码
[code]/*
【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
实验项目之十八:使用esp8266 & WiFi接入blinker测试板载LED
*/
#define BLINKER_PRINT Serial // 设置Blinker的调试输出
#define BLINKER_WIFI // 启用Blinker的WiFi功能
#include // 本程序使用 ESP8266WiFi库
#include // 引入Blinker库
char auth[] = "d251bb68ea"; // Blinker授权码
char ssid[] = "zhz3"; // WiFi网络名
char pswd[] = "z156721"; // WiFi密码
// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
int counter = 0; // 计数器初始值为0
// 按下按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state); // 输出按键状态
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // 切换LED状态
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data) {
BLINKER_LOG("Blinker readString: ", data); // 输出读取到的数据
counter++; // 计数器加1
Number1.print(counter); // 显示计数器的值
}
void setup() {
// 初始化串口
Serial.begin(115200);
#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT); // 设置Blinker的调试流
#endif
// 初始化内置LED的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH); // 初始状态设置为熄灭
// 初始化Blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead); // 绑定数据读取函数
Button1.attach(button1_callback); // 绑定按键回调函数
}
void loop() {
Blinker.run(); // 运行Blinker
}[/code]
驴友花雕
驴友花雕
作者
4、DIY界面
在设备列表页,点击设备图标,进入设备控制面板
首次进入设备控制面板,会弹出向导页
在向导页点击 载入示例,即可载入示例组件


驴友花雕
驴友花雕
作者
3、在app中添加设备,获取Secret Key
进入App,点击右上角的“+”号,然后选择 添加设备(独立设备)
点击选择Arduino > WiFi接入(网络接入)
复制申请到的Secret Key


驴友花雕
驴友花雕
作者
2、安装APP,注册账号并登录

驴友花雕
驴友花雕
作者

驴友花雕
驴友花雕
作者
三、使用esp8266 & WiFi接入
1、手机下载blinker APP
android下载:点击下载 https://diandeng.tech/dev
IOS下载:app store中搜索“blinker”下载。
下载完成后注册一个账号就可以使用blinker对外开放的功能。

驴友花雕
驴友花雕
作者
二、Blinker Arduino 支持库
是一个专为物联网(IoT)开发设计的开源库,旨在简化 Arduino 设备与 Blinker 平台的连接和交互。Blinker 平台是一个物联网云服务平台,支持多种通信协议(如 MQTT、HTTP 等),能够帮助开发者快速实现设备与手机 App、Web 端的数据交互和控制。
1. Blinker Arduino 支持库的功能
设备连接:支持 Wi-Fi、蓝牙、GSM 等多种通信方式,方便 Arduino 设备接入互联网。
数据交互:通过 Blinker 平台实现设备与手机 App、Web 端的双向数据交互。
远程控制:通过手机 App 或 Web 端远程控制 Arduino 设备。
数据可视化:支持将设备数据实时显示在手机 App 或 Web 端。
多平台支持:兼容 Arduino IDE 和 PlatformIO 开发环境。
丰富的组件:支持按钮、滑块、图表、开关等多种 UI 组件,方便快速构建用户界面。
2. 支持的硬件
Blinker Arduino 支持库兼容多种 Arduino 开发板和模块,包括但不限于:
Arduino 开发板:如 Arduino Uno、Arduino Mega、Arduino Nano 等。
ESP8266:如 NodeMCU、Wemos D1 Mini 等。
ESP32:如 ESP32 DevKit、ESP32-CAM 等。
其他支持 Wi-Fi 或蓝牙的模块:如 SIM800、SIM900 等 GSM 模块。
3. 支持的通信方式
Wi-Fi:通过 Wi-Fi 连接互联网,支持 MQTT 和 HTTP 协议。
蓝牙:通过蓝牙与手机 App 直接通信。
GSM:通过 GSM 模块实现远程通信。
4. 安装 Blinker Arduino 支持库
方法 1:通过 Arduino IDE 库管理器安装
打开 Arduino IDE。
点击菜单栏的 工具 > 管理库。
在搜索框中输入 Blinker。
找到 Blinker 库,点击 安装。
方法 2:手动安装
从 GitHub 下载 Blinker Arduino 支持库:Blinker Library GitHub。
https://github.com/blinker-iot/blinker-library
解压下载的文件,将文件夹重命名为 Blinker。
将 Blinker 文件夹复制到 Arduino 的库目录中(通常位于 Documents/Arduino/libraries)。
重启 Arduino IDE。

驴友花雕
驴友花雕
作者
一、blinker解决方案
官方网站:https://diandeng.tech/
官方文档:https://diandeng.tech/doc
blinker是一套跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输。可用于智能家居、数据监测等领域,可以帮助用户更好更快地搭建物联网项目。
blinker具备哪些优势
1. 支持多种连接方式
blinker提供当前最流行的连接方式支持,如蓝牙、WiFi、NBiot/GPRS,可以应对大多数物联网场景需求。
2. 支持多种开发平台
blinker提供Arduino、freeRTOS支持库,可以使用AVR / ARM / ESP8266 / ESP32等芯片进行开发。
对于linux设备,可以使用blinker python模块进行开发。
同时也提供了esp8266支持固件,设备只需要连接一个烧写了blinker固件的WiFi模块,即可接入。
2. 提供丰富的附加功能
通信是blinker方案的核心,此外blinker也提供了多种附加功能,如:
定时控制、自动化控制、场景控制、云存储、固件更新、设备分享、微信通知、消息推送、短信报警、语音控制、智能音响接入等。这些功能都是物联网设备常见功能,现在不需要复杂的代码,你就可以轻松使用这些功能。
blinker DIY
blinker DIY是blinker团队针对diy爱好者、个人开发者推出的项目原型快速开发方案。
通常物联网项目开发,需要进行 设备端、客户端、服务器端开发,每一部分开发,都需要投入人力财力。对个人开发者,通常不可能一人完成这三部分的开发。blinker提供了手机APP到设备端的控制方案,有多种设备端SDK支持,让开发者更好的聚焦于设备端。配合由blinker团队运维的客户端(blinker APP)、服务器端,可以快速打造出自己的物联网设备。

驴友花雕
驴友花雕
作者


- 没有更多了 -