Arduino+esp32+blinker第一课点灯

Arduino+esp32+blinker第一课点灯


前言

为了实现远程控制,加深为物联网知识的认识,今天就教大家如何用手机app来控制我们的开发板,通过控制开发板点亮一盏灯。我们的开发环境是以arduino IDE为开发基础,通过blinker服务器来控制我们的esp32 WiFi模块,来点主板上的闪光灯。


一、开发环境搭建

  1. arduino的安装
    选择 arduino开发的环境原因是,它有好的库,所以在开发过程中就非常的简单
    在这里插入图片描述
    Arduino IDE 是Arduino官方提供的开发环境–点击下载

在这里插入图片描述

  1. 添加esp32开发板
  • 我们刚安装的 ide中是没有 esp32开发板选项的。我们需要自己手动安装
  • 我们首先下载,这个安装包,然后直接运行就可以将其导入
    esp32开发板下载地址
    在这里插入图片描述
    我们打开工具,点击开发板观察到,多出来上面的开发板选项就证明安装成功

在这里插入图片描述

  1. blinker库的导入
    我们是通过blinker服务器进行开发的,所有我们需要添加blinker库,正因为有这些库,我们只需要使用里面封装好的函数就可以了

下载地址:
点击去下载

添加方法
我们需要将我们下载的文件,解压到我们arduino 软件安装目录下的 libraries文件夹下

在这里插入图片描述
安装成功我们可以看到如下

在这里插入图片描述
4.下载并安装blinker APP
android下载:点击下载
IOS下载:app store中搜索“blinker”下载

二、开发第一个点灯程序

1.添加设备

在这里插入图片描述

2.载入示例

根据提示,有好多种组件可选,我们可以先尝试最简单的
在这里插入图片描述

3.代码部分


#define BLINKER_WIFI 
#include <Blinker.h>

char auth[] = "4b35a5b03044";
char ssid[] = "xiaomi";
char pswd[] = "126789667";

#define BUTTON_1 "btn-abc"
#define LED_BUILTIN       4


BlinkerButton Button1(BUTTON_1);

void button1_callback(const String & state)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CM_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");

        Button1.icon("fas fa-air-freshener");
        Button1.color("#FFFFFF");
        Button1.text("第一点灯程序");
        Button1.print();
    }
    
}

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
    
    uint32_t BlinkerTime = millis();
    
    Blinker.print("millis", BlinkerTime);
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachata(dataRead);
    Button1.attach(button1_callback);
}

void loop()
{
    Blinker.run();
}

我们需要修改的部分
配置esp32连接网络的部分

char auth[] = " "; //上一步中在app中获取到的Secret Key
char ssid[] = " "; //你的WiFi热点名称
char pswd[] = " "; //你的WiFi密码

4.关键代码讲解

新建组件并绑定回调函数
blinker app上每个UI组件在设备端都可以创建一个对应的对象。创建方式如下:

组件类型  对象名(键名) 

app中组件对应的键名可以在界面编辑模式下看到。
使用组件的数据键名创建对应的对象,这个对象就与blinker app界面上的UI组件进行了绑定。
blinker库定义了多种组件类型,对应app上UI组件类型,如
BlinkerSlider 滑块组件
BlinkerRGB 颜色拾取组件
BlinkerNumber 数值组件
BlinkerText 文本组件
如下,创建了按键组件和数值组件对应的对象:

BlinkerButton Button1("btn-abc");
 

定义开发板上的灯的io编号

#define LED_BUILTIN       4

新建组件对象

BlinkerButton Button1(BUTTON_1);

app调用esp32的回调函数

void button1_callback(const String & state)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");

        Button1.icon("fas fa-air-freshener");
        Button1.color("#FFFFFF");
        Button1.text("第一点灯程序");
        Button1.print();
    }
    
}

让程序一直运行永不停止

void loop()
{
    Blinker.run();
}

5.程序烧写

我们在改为代码之后就可以往esp8266开发板内烧写程序了

注意

一般所购买的wifi模块,通过数据线就可以连接进行烧写
特殊的我们需要用到usb-ttl 来为其烧写程序
在这里插入图片描述


总结

提示:这里对文章进行总结:
对于ESP32这个是比较简单的程序,我们先搞明白app如何调用到的esp32开发板,后面再进行拓展学习,注意一点现在市面上的wifi模块的开发板很多,所以在模块的选择和电脑的连接上存在差异。

*玩转esp8266 ESP32 喜欢的朋友请加 微信ilinker32 技术咨询

如果我的创作对你有帮助 ,相信请作者喝杯咖啡钱是值得的,那么你的鼓励将是我创作的最大动力!非常感谢

<think>好的,我现在需要帮助用户了解如何通过Blinker点灯科技实现向微信推送通知的功能。用户提到了微信推送通知、实现方式、文档和示例,我需要根据提供的引用资料来整理答案。 首先,查看用户提供的三个引用。引用[1]提到使用Blinker.wechat函数发送微信消息,并给出了示例代码。引用[2]和[3]主要涉及Blinker的初始化和APP通信,可能与微信推送相关,但需要确认。引用[3]中的示例可能对初始化部分有帮助。 接下来,我需要确定实现微信推送的具体步骤。根据引用[1],关键步骤是调用Blinker.wechat函数,并传递标题、状态和信息参数。然后,可能需要配置微信通知权限,确保用户绑定微信账号。此外,设备端需要正确初始化和连接Blinker服务,这部分可能需要参考引用[2]中的初始化步骤,比如设置Blinker.begin,绑定回调函数等。 需要注意的是,文档和示例的链接在引用[3]中提供了GitHub的示例代码链接,用户可能需要访问该链接查看完整示例。同时,引用[1]中的代码片段可以直接用于发送消息,但需要结合初始化部分才能正常工作。 可能的问题包括如何获取微信通知权限,Blinker.wechat的参数具体含义,以及如何处理发送后的反馈。此外,用户可能需要了解是否需要额外的硬件或软件配置,比如ESP8266的联网设置。 最后,生成相关问题,帮助用户深入理解,比如如何调试微信推送失败、如何发送更复杂的内容,以及如何确保消息的实时性等。</think>### 通过Blinker实现微信推送通知的步骤 #### 1. **功能实现核心方法** Blinker通过`Blinker.wechat()`函数直接向微信发送通知,需在代码中调用该函数并填入参数。格式为: ```cpp Blinker.wechat("标题", "状态", "消息内容"); //示例:Blinker.wechat("温度警报", "紧急", "当前温度超过30℃"); ``` 参数对应微信通知的三部分:标题(粗体显示)、状态(辅助描述)、消息内容(详细文本)[^1]。 #### 2. **设备端配置要求** - **硬件准备**:需支持WiFi的物联网设备(如ESP8266/ESP32) - **初始化代码**: ```cpp #include <Blinker.h> void setup() { Blinker.begin(auth, ssid, password); // 填入设备密钥、WiFi名称和密码 Blinker.attachData(dataRead); // 绑定数据接收回调(可选) } void loop() { Blinker.run(); } ``` 需在Blinker APP中完成设备绑定并开启微信通知权限[^2][^3]。 #### 3. **微信服务绑定流程** 1. 在Blinker APP中进入设备控制页面 2. 点击右上角设置图标 → **通知设置** → 绑定微信账号 3. 扫描二维码完成授权绑定 4. 开启**微信通知**开关 #### 4. **完整示例代码** ```cpp #include <Blinker.h> char auth[] = "设备密钥"; // 从Blinker APP获取 char ssid[] = "WiFi名称"; char pass[] = "WiFi密码"; void setup() { Serial.begin(115200); Blinker.begin(auth, ssid, pass); Blinker.wechat("系统启动", "设备在线", "ESP8266已连接云端"); // 上电通知 } void loop() { Blinker.run(); // 示例:温度超过阈值时发送警报 if (readTemperature() > 30) { Blinker.wechat("温度警报", "紧急", "当前温度:" + String(temp) + "℃"); delay(60000); // 限制发送频率 } } ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值