查看: 265|回复: 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上程序怎么写,这个只有靠你自己学习了
    如果以上内容对你有帮助,你可以通过打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    一直显示'Serial' was not declared in this scope,求前辈解答谢谢
    一直显示'Serial'
    做了一个温控装置的蓝牙模块时遇到的问题,
    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    【Arduino】108种传感器模块系列实验(97)---0.96寸OLED液晶屏
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    教你让OLED动起来!多重字符串版!
    教你让OLED动起来!多重字
    大家都知道:arduino单片机是单线程的 而上次教程中的多段字符串的运行速度必须一致
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表