blinker+esp8266点灯(入门篇)

         之前有分享过智能浇花系统的总体框架图,那次分享后留下了一些遗留问题。因为疫情原因快递比较慢,我买的esp8266模块到了昨天才拿到,其中我们的智能浇花系统有一部分就是用blinker+esp8266模块实现远程的控制功能。

使用esp8266 & WiFi接入

自blinker App 2.1.1起,原WiFi接入和MQTT已经合并为新WiFi接入

使用WiFi接入,当设备和手机在同一个局域网中,为局域网通信
其余情况,使用MQTT远程通信

准备工作

硬件准备

esp8266开发板(查看支持的设备)

软件准备

Arduino IDE需安装好esp8266扩展

Arduino IDE 1.8.7或更新版本
务必使用 2.7.4 或以上release版本的 ESP8266 Arduino package

下载并安装blinker APP

在应用商店下载即可。

下载并安装blinker Arduino库

点击下载
Windows:将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中
Mac OS:将下载好的blinker库解压到 文稿>Arduino>libraries 文件夹中

在app中添加设备,获取Secret Key

  1. 进入App,点击右上角的“+”号,然后选择 添加设备

  2. 点击选择Arduino > WiFi接入

  3. 选择要接入的服务商

  4. 复制申请到的Secret Key

DIY界面

  1. 在设备列表页,点击设备图标,进入设备控制面板

  2. 首次进入设备控制面板,会弹出向导页

  3. 在向导页点击 载入示例,即可载入示例组件

编译并上传示例程序

打开Arduino IDE,通过 文件>示例>Blinker>Blinker_Hello/Hello_WiFi 打开例程
在程序中找到如下变量,填入您申请到的Secret Key(auth)和要连接的WiFi热点名(ssid)、密码(pswd),如:

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

        例程中宏LED_BUILTIN为开发板厂家定义的连接板载LED的引脚,如果您选择的开发板没有定义LED_BUILTIN,可以自行修改为您要使用的引脚
编译并上传程序到esp8266开发板,打开串口调试器
当看到提示“MQTT Connected!”,说明设备已经成功连接到MQTT服务器

恭喜!一切就绪

        在APP中点击刚才您添加的设备,即可进入控制界面,点点按钮就可以控制Arduino上的LED灯开关,另一个按钮也点下试试,放心,您的手机不会爆炸~

完整示例程序

#define BLINKER_PRINT Serial
#define BLINKER_WIFI

#include 

char auth[] = "Your Device Secret Key";//手机端秘钥
char ssid[] = "Your WiFi network SSID or name";//自家WiFi名称
char pswd[] = "Your WiFi network WPA password or WEP key";
//WiFi密码(只需要改这3处就可以了,将程序导入开发板中就可了)

// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");

int counter = 0;

// 按下按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}

void setup() {
// 初始化串口
Serial.begin(115200);

#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT);
#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();
}

        最后怕写的不太好,给大家录了个实操的视频,教大家如下一步一步实现点灯的功能。


B站视频版本

blinker+esp8266_哔哩哔哩_bilibili


        我准备了一些资料在我的公主号(帆帆的杂货铺)中回复“blinker”领取资料

你可能感兴趣的:(esp8266,物联网,单片机,嵌入式硬件)