Blinker arduino系列单片机+ESP 8266 做穿透模块 物联网

Arduino Blinker ESP8266 做穿透模块

之前想做几个arduino的物联网来参加比赛,但是大部分都太难了,而且编辑起来相当麻烦,再加上水平有限,所以最后看到,arduino中文开发者平台上的,blinker,最后决定尝试做一下,先是用了wifiduino板子,实现了按键,等一系列基本功能,后来受到引脚太少的限制,决定用mega2560+ESP8266,做一个穿透模块,这样就加更多的传感器了.

1.实验准备

1.1硬件准备

你要实现用UNO/MEGA+Blinker+ESP 8266+Blinker+物联网你需要准备以下材料

  1. Arduino UNO/MEGA 2560 单片机
  2. ESP 8266 01S模块 及其烧录器(下面这种最好用,某宝上最便宜)
    8266模块
  3. 杜邦线

1.2所需要的软件

  1. Arduino IED 1.8.5以上(越高越好)
  2. blinker头文件库 下载以后粘贴到libraries 里 (包括blinker例程)
  3. 下载blinker 组件拓展包 提供Generic 8266 moudle 烧录选项
  4. bilnker app 在手机网页搜索下载即可
  5. 底下是2.3的百度云链接自取

链接: https://pan.baidu.com/s/1iIMgWuyEoUBQ1nlKJ1Xrzw .
提取码:6uvw

2.实验步骤

2.1为ESP 8266 烧录穿透组件

  1. 选择Generic ESP 8266 Moudle
    选择开发板
    2.选择AT固件文件
    选择路径
// blinker AT固件代码
#define BLINKER_AT_MQTT

#include <Blinker.h>

void setup()
{
    Blinker.begin();
}

void loop()
{
    Blinker.run();
}
  1. 选择串口上传

串口上传
注:很多小伙伴在这烧录不成功,建议更换更高版本的IED,或者换一个烧录器

  1. 配置blinker(有基础可跳过)
    在这里插入图片描述
    下载好之后按右上角的+号新建设备
    在这里插入图片描述
    选择arduino

在这里插入图片描述
点击WIFI接入

请在这里选择阿里云在这里插入图片描述
复制好你的KEY 然后返回设备
在这里插入图片描述
点击载入式例
在这里插入图片描述
到了这个界面我们就回到IED准备链接

  1. 给ESP8266模块配网
    在这里插入图片描述

1.如果烧录成功打开串口 上电之后会显示 BLINKER-WIFI(如果没显示按一下复位键
2.在串口处输入指令AT+BLINKER_WIFI=0,“API key”,“wifi名”,“wifi密码”
3.例:AT+BLINKER_WIFI=0,3f8b2d5b6cf0,ch,66666666
返回一大堆数字表明穿透成功

在这里插入图片描述
打开app已经显示在线
在这里插入图片描述
通过串口向app发送信息
在这里插入图片描述
可以看到穿透信息
在这里插入图片描述

2.2 与ARDUINO单片机的交互

好的你以为这就结束了吗,这才刚刚开始,我们仅仅完成了穿透,但是通过单片机还是不能控制到BLINKER,具体与单片机怎么交互,我看官网好久才看出来(大佬勿喷)

  1. 烧录开发板的穿透程序

这是更改过后 hello blinker 的官方代码


#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "********";  //自己的API KEY
char ssid[] = "*****";      //自己的wifi 名
char pswd[] = "************"; //自己的WIFI密码


// 新建组件对象
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);
    BLINKER_DEBUG.stream(Serial);
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd,15,14);
    Blinker.attachData(dataRead);

    Button1.attach(button1_callback);
}

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

重点是这一句
Blinker.begin(auth, ssid, pswd,15,14); 15是RX 14是TX
里面的后两个数字是你单片机要链接的串口引脚号码
注:我用的是mega 2560 的Serial3 UNO的话 最后两个数字改成 0,1(建议使用软串口)

  1. 接线
    将ESP8266模块的TX RX与之前单片机你设定好的串口引脚链接上(别忘了串口反接)
    选择ESP 8266-01S 模块配完网络之后拔掉烧录器,取下模块,链接单片机即可,重新上电就会重新联网
    在这里插入图片描述
  2. 实际调试(终于到最后一步了)

点击点我计数
在这里插入图片描述
打开单片机的串口就可以看到调试信息
在这里插入图片描述

3.补充链接

下面第一个是对应的开发者文档官方的
第二个是我初学的一个大佬的文章
第三个是Ardunio 开发者社区
物联网模块可以从最基础学习一下BLINKER

  1. Blinker开发者文档.

  2. https://blog.csdn.net/crossni/article/details/104627768?utm_source=app.

  3. https://www.arduino.cn/.

猜你喜欢

转载自blog.csdn.net/chrnhao/article/details/106021103