220浏览
查看: 220|回复: 15

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

[复制链接]
【花雕学编程】Arduino动手做(246)--ESP8266 blinker解决方案图2

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

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

一、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)、服务器端,可以快速打造出自己的物联网设备。

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【花雕学编程】Arduino动手做(246)--ESP8266 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。

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

2、安装APP,注册账号并登录
【花雕学编程】Arduino动手做(246)--ESP8266 blinker解决方案图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

4、DIY界面
在设备列表页,点击设备图标,进入设备控制面板
首次进入设备控制面板,会弹出向导页
在向导页点击 载入示例,即可载入示例组件

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

本帖最后由 驴友花雕 于 2025-2-6 20:33 编辑

四、使用esp8266 & WiFi接入blinker测试板载LED
1、实验开源代码

  1. /*
  2.   【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
  3.    实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
  4.    实验项目之十八:使用esp8266 & WiFi接入blinker测试板载LED
  5. */
  6. #define BLINKER_PRINT Serial    // 设置Blinker的调试输出
  7. #define BLINKER_WIFI            // 启用Blinker的WiFi功能
  8. #include <ESP8266WiFi.h>        // 本程序使用 ESP8266WiFi库
  9. #include <Blinker.h>            // 引入Blinker库
  10. char auth[] = "d251bb68ea";  // Blinker授权码
  11. char ssid[] = "zhz3";         // WiFi网络名
  12. char pswd[] = "z156721";     // WiFi密码
  13. // 新建组件对象
  14. BlinkerButton Button1("btn-abc");
  15. BlinkerNumber Number1("num-abc");
  16. int counter = 0; // 计数器初始值为0
  17. // 按下按键即会执行该函数
  18. void button1_callback(const String & state) {
  19.   BLINKER_LOG("get button state: ", state); // 输出按键状态
  20.   digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // 切换LED状态
  21. }
  22. // 如果未绑定的组件被触发,则会执行其中内容
  23. void dataRead(const String & data) {
  24.   BLINKER_LOG("Blinker readString: ", data); // 输出读取到的数据
  25.   counter++; // 计数器加1
  26.   Number1.print(counter); // 显示计数器的值
  27. }
  28. void setup() {
  29.   // 初始化串口
  30.   Serial.begin(115200);
  31. #if defined(BLINKER_PRINT)
  32.   BLINKER_DEBUG.stream(BLINKER_PRINT); // 设置Blinker的调试流
  33. #endif
  34.   // 初始化内置LED的IO
  35.   pinMode(LED_BUILTIN, OUTPUT);
  36.   digitalWrite(LED_BUILTIN, HIGH); // 初始状态设置为熄灭
  37.   // 初始化Blinker
  38.   Blinker.begin(auth, ssid, pswd);
  39.   Blinker.attachData(dataRead); // 绑定数据读取函数
  40.   Button1.attach(button1_callback); // 绑定按键回调函数
  41. }
  42. void loop() {
  43.   Blinker.run(); // 运行Blinker
  44. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

2、代码解读
(1)库的引入和常量定义

  1. #include <ESP8266WiFi.h>
  2. #include <Blinker.h>
复制代码

这些语句引入了ESP8266 WiFi库和Blinker库,后者用于与Blinker平台通信。

  1. #define BLINKER_PRINT Serial
  2. #define BLINKER_WIFI
复制代码

这些宏定义设置了Blinker的调试输出为串行通信,并启用了WiFi功能。

(2)WiFi和Blinker配置

  1. char auth[] = "zhz3";
  2. char ssid[] = "z156721";
  3. char pswd[] = "d251bb68ea";
复制代码

定义了连接Blinker平台的授权码以及连接WiFi网络的SSID和密码。

(3)Blinker组件对象的创建

  1. BlinkerButton Button1("btn-abc");
  2. BlinkerNumber Number1("num-abc");
复制代码

创建了两个Blinker组件对象,一个是按钮,另一个是数字显示器。

(4)按键回调函数

  1. void button1_callback(const String & state) {
  2.     BLINKER_LOG("get button state: ", state);
  3.     digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  4. }
复制代码

定义了一个回调函数,当按钮被按下时,输出按钮状态并切换LED的状态。

(5)数据读取函数

  1. void dataRead(const String & data) {
  2.     BLINKER_LOG("Blinker readString: ", data);
  3.     counter++;
  4.     Number1.print(counter);
  5. }
复制代码

定义了一个函数,当未绑定的组件被触发时,输出数据并增加计数器的值,同时在数字显示器上显示新的计数器值。

(6)初始化

  1. void setup() {
  2.     Serial.begin(115200);
  3.     #if defined(BLINKER_PRINT)
  4.         BLINKER_DEBUG.stream(BLINKER_PRINT);
  5.     #endif
  6.     pinMode(LED_BUILTIN, OUTPUT);
  7.     digitalWrite(LED_BUILTIN, HIGH);
  8.     Blinker.begin(auth, ssid, pswd);
  9.     Blinker.attachData(dataRead);
  10.     Button1.attach(button1_callback);
  11. }
复制代码

在setup函数中,初始化串口通信、内置LED引脚、Blinker库,并绑定数据读取和按键回调函数。

(7)主循环

  1. void loop() {
  2.     Blinker.run();
  3. }
复制代码

在loop函数中,调用Blinker的run方法,持续处理Blinker平台的通信和事件。

这段代码的主要功能是通过WiFi连接到Blinker平台,控制LED的开关,并通过按键和数字显示器与用户进行交互。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

本帖最后由 驴友花雕 于 2025-2-6 20:34 编辑

3、实验串口返回情况

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

4、在手机上打开APP“blinker”,发现设备ESP8266 V3,已经在线

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

6、实验场景图(设备)

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

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

7、实验串口返回情况2

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail