查看: 659|回复: 3

[已解答] ESP826601使用blinker与arduino通信控制灯

[复制链接]

该用户从未签到

发表于 2019-8-3 19:43 | 显示全部楼层 |阅读模式
arduino端的代码:
#include<SoftwareSerial.h>
SoftwareSerial mySerial(5,6);
String Serial_String="";
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
mySerial.begin(115200);
pinMode(3,OUTPUT);
}
void read_string(){
  while(mySerial.available()>0){
  Serial_String+=(char)(mySerial.read());
  delay(2);}
}
void loop() {
  // put your main code here, to run repeatedly:
  if(mySerial.available()>0){
    Serial_String="";
    read_string();
  }
   Serial.println(Serial_String);
delay (1000);
   if(Serial_String=="Turn on LED")
   digitalWrite(3,HIGH);
    else if(Serial_String=="Turn off LED")
    digitalWrite(3,LOW);
}

ESP8266端的代码
#define BLINKER_WIFI

#include <Blinker.h>
#include<SoftwareSerial.h>
SoftwareSerial mySerial(13,15);
char auth[] = "f785232a72e5";
char ssid[] = "TP-LINK_67C596";
char pswd[] = "07938208201";

#define BUTTON_1 "ABC"

BlinkerButton Button1(BUTTON_1);

void button1_callback(const String & state)
{
if (state == BLINKER_CMD_ON) {
        BLINKER_LOG("Toggle on!");

        Button1.icon("icon_1");
        Button1.color("#FFFFFF");
        Button1.text("Your button name or describe");
        // Button1.text("Your button name", "describe");
        Button1.print("on");
        mySerial.print("Turn on LED");//程序的关键部分,串口通讯,至于你要发送的内容,不要管,只要在nano方面判断就好
    }
    else if (state == BLINKER_CMD_OFF) {
        BLINKER_LOG("Toggle off!");

        Button1.icon("icon_1");
        Button1.color("#FFFFFF");
        Button1.text("Your button name or describe");
        // Button1.text("Your button name", "describe");
        Button1.print("off");
        mySerial.print("Turn off LED");//程序的关键部分,串口通讯,至于你要发送的内容,不要管,只要在nano方面判断就好
    }
}

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

    Blinker.vibrate();

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

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    mySerial.begin(115200);
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

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

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

设计思路就是ESP8266收到按钮的指令后,通过软串口向Arduino发送Turn on LED,在Adruino端识别指令控制灯点亮。
调试.jpg 在串口监视器中反馈的数据竟然是 Toggle on! Toggle off!
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-8-3 20:26 | 显示全部楼层
    没看懂想问啥

    该用户从未签到

     楼主| 发表于 2019-8-3 20:40 | 显示全部楼层

    我测试以后,在BLINKER端 按钮开关有变化,但是Adruino控制的灯无反应,打开串口调试器没看到Turn on LED,所以不知到问题出在哪里了

    点评

    你的8266端看样子是正常的,blinker已经正常通信了,至于arduino上程序怎么写,这个只有靠你自己学习了  详情 回复 发表于 2019-8-3 21:08
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-8-3 21:08 | 显示全部楼层
    fwl190612 发表于 2019-8-3 20:40
    我测试以后,在BLINKER端 按钮开关有变化,但是Adruino控制的灯无反应,打开串口调试器没看到Turn on LED ...

    你的8266端看样子是正常的,blinker已经正常通信了,至于arduino上程序怎么写,这个只有靠你自己学习了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Blynk与m5stack basic以及uiflow的交互玩法
    Blynk与m5stack basic以及
    Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    【零知ESP8266项目篇】1 OLED天气时钟
    【零知ESP8266项目篇】1 O
    引述: 我们一起学了这么久的零知ESP8266的教程,是不是该检验一下自己了呢?在前面的
    创客集结号:温馨水杯
    创客集结号:温馨水杯
    今天,在创客集结号平台看到一个能自动感应的杯子,不仅神奇还非常有创意,该作品主要
    下载库报错
    下载库报错
    我在编写arduino1602液晶屏温湿度下载DHT_sensor_library库时,下载了库后,还没有改
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表