zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Arduino+esp32+blinker第一课点灯

Arduino ESP32 第一课
2023-09-11 14:21:44 时间

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 技术咨询

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