本文使用Arduino开发RF433模块和Blinker同时控制灯的方法。RF433模块可以实现无线控制,Blinker是一款物联网平台,可以通过手机APP控制设备。

硬件准备

  • Arduino UNO板
  • RF433模块
  • 一个LED灯
  • 220欧姆电阻
  • 杜邦线若干

软件准备

  • Arduino IDE软件
  • Blinker库文件(可以在Arduino IDE的库管理器中搜索安装)

电路连接

将RF433模块的DATA引脚连接到Arduino的D2引脚,VCC连接到5V,GND连接到GND。将LED的正极连接到Arduino的D13引脚,负极通过220欧姆电阻连接到GND。

编写代码

在Arduino IDE中新建一个工程,将以下代码复制到工程中。这个代码包含了RF433模块和Blinker的代码,其中RF433模块用于接收无线信号,Blinker用于与物联网平台通信。

#include <RCSwitch.h>
#include <Blinker.h>

#define LED_PIN 13
#define RX_PIN 2

RCSwitch mySwitch = RCSwitch();

char auth[] = "YourAuth"; // Blinker物联网平台的设备密钥
char ssid[] = "YourSSID"; // WiFi名称
char pswd[] = "YourPass"; // WiFi密码

void setup()
{
  Serial.begin(115200);

  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);

  mySwitch.enableReceive(RX_PIN);

  Blinker.begin(auth, ssid, pswd);
  Blinker.attachPowerState(powerState);

  Blinker.attachData(dataRead);

  Blinker.attachHeartBeat(heartBeat);

  digitalWrite(LED_PIN, HIGH);
}

void loop()
{
  Blinker.run();
  if (mySwitch.available())
  {
    int value = mySwitch.getReceivedValue();
    if (value == 12345)
    {
      digitalWrite(LED_PIN, HIGH);
      Blinker.powerState("on");
    }
    else if (value == 67890)
    {
      digitalWrite(LED_PIN, LOW);
      Blinker.powerState("off");
    }
    mySwitch.resetAvailable();
  }
}

void powerState(const String &state)
{
  if (state == BLINKER_CMD_ON)
  {
    digitalWrite(LED_PIN, HIGH);
    mySwitch.send(12345, 24);
  }
  else if (state == BLINKER_CMD_OFF)
  {
    digitalWrite(LED_PIN, LOW);
    mySwitch.send(67890, 24);
  }
}

void dataRead(const String &data)
{
  Serial.println("Blinker readString: " + data);
}

void heartBeat()
{
  Serial.println("Blinker heartbeat");
}

其中auth、ssid、pswd需要替换为Blinker物联网平台的设备密钥、WiFi名称和WiFi密码。

代码解析

代码中使用了RCSwitch库和Blinker库。RCSwitch库用于接收无线信号,Blinker库用于与物联网平台通信。

在setup函数中,首先初始化串口和LED引脚。然后启用RF433模块的接收功能,同时初始化Blinker库。

在loop函数中,首先调用Blinker.run函数,该函数用于处理Blinker库的事件。然后检查RF433模块是否接收到了信号,如果接收到了信号,则根据信号的值控制LED灯的亮灭,并将状态信息发送给物联网平台。

在powerState函数中,根据Blinker库传递过来的状态信息控制LED灯的亮灭,并将状态信息发送给RF433模块。

在dataRead函数中,输出Blinker库接收到的字符串。

在heartBeat函数中,输出Blinker库发送心跳包的信息。

上传代码

将Arduino UNO板通过USB线连接到电脑上,打开Arduino IDE软件,将代码上传到Arduino UNO板中。上传完成后,在Blinker物联网平台中添加设备,然后打开手机APP扫描二维码添加设备,就可以通过手机APP控制LED灯的亮灭了。

总结

本文介绍了如何使用Arduino开发RF433模块和Blinker同时控制LED灯的方法。通过这种方法,可以实现无线控制LED灯,同时可以通过手机APP与物联网平台互动。

arduino开发RF433模块+blinker同时控制灯

原文地址: http://www.cveoy.top/t/topic/bjHV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录