ESP32基于Arduino框架实现Blinker点灯

一、点灯app独立设备组件介绍

在编辑模式下,点击按键进入编辑组件页面,可以看到 按键类型 有两种:普通按键、开关按键

在这里插入图片描述

普通按键
每次按下发送的指令为
默认状态:
{“btn-abc”:“tap”}

开关按键
按键本身会保存开关状态,默认为off,按下时会发送

{“btn-abc”:“on”}

保存的状态为on时,按下会发送

{“btn-abc”:“off”}

设备端可以发送指令改变当前按键的开关状态

二、 硬件连接参考图:

在这里插入图片描述

三、代码如下所示:

#define BLINKER_PRINT Serial
#define BLINKER_WIFI

#include <Blinker.h>

#define LED1 4
#define LED2 5

// 新建组件对象
BlinkerButton Button1("btn-abc");   // 点灯APP中的组件键名

char auth[] = "8ab016772e62";       // Blinker秘钥
char ssid[] = "Aimore";             // 2.4G频段的WIFI名称
char pswd[] = "1357924680";         // 2.4G频段的WIFI密码

bool LED_state=0;                   // 定义一个全局布尔型变量来控制LED的状态

//LED函数
void LED_ON_OFF()         
{
  if(true == LED_state)
  {
    Button1.print("LED1 ON");       // 点灯app中Monitor打印LED状态日志
  }
  else 
  {
    Button1.print("LED2 ON");
  }
  digitalWrite(LED1, LED_state);    //LED1状态控制
  digitalWrite(LED2, !LED_state);   //LED2状态控制
  LED_state = !LED_state;           // 变换状态
}
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
  LED_ON_OFF();                    // 调用LED函数
}
void setup()
{
  Serial.begin(115200);           // 初始化串口通信,波特率为115200

  //Blinker Monitor窗口打印
  #if defined(BLINKER_PRINT)  
    BLINKER_DEBUG.stream(BLINKER_PRINT);      //将debug的输出流设置为串口
  #endif

  pinMode(LED1, OUTPUT);          // 设置led引脚为输出模式
  pinMode(LED2, OUTPUT);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);

  //Blinker配置
  Blinker.begin(auth, ssid, pswd);            // 配置blinker 
  Button1.attach(button1_callback);           //注册按钮回调函数
}
void loop()
{
  Blinker.run();
}

四、效果展示:

APP监视窗口展示:

实际电路效果展示:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
esp32是一种集成了WiFi和蓝牙功能的开发板,它基于Arduino框架具有强大的硬件和软件支持。UDP通信是一种简单的传输协议,在esp32上实现UDP通信可以用于实现局域网内设备之间的数据传输。 在esp32上使用Arduino IDE进行开发,编写一个UDP通信程序非常简单。首先,我们需要包含ESP32的WiFi库和ESPAsyncUDP库。然后,设置并连接WiFi网络。 接下来,我们可以创建一个AsyncUDP的对象来实现UDP通信。通过begin()函数,我们可以指定监听的端口号。然后,我们可以使用onPacket()函数来接收和处理接收到的数据。 在loop()函数中,我们可以使用发送数据的两个函数:sendTo()和broadcastTo()。前一个函数可以将数据发送给特定的IP地址和端口号,而后一个函数则可以将数据广播到局域网内的所有设备。 根据具体需求,我们可以编写不同的处理函数来对接收到的数据进行处理。例如,我们可以将接收到的数据进行解析并根据内容执行不同的操作。 最后,我们可以在程序中使用Serial Monitor进行调试和查看输出信息,以确保程序正常运行。 总之,利用esp32和Arduino框架,我们可以非常容易地实现UDP通信。这种通信方法简单高效,在实际应用中可以广泛应用于传输实时数据和控制命令等。同时,esp32的强大功能和Arduino的易用性相结合,使得开发人员可以更加方便地进行开发和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值