项目分享|远程控制继电器,轻松学会LoRa

项目分享|远程控制继电器,轻松学会LoRa今天分享的一个 LoRa 项目 展示如何使用具有实时反馈的 RYLR896 LoRa 模块制作 LoRa Arduino ESP8266 远程控制继电器

大家好,欢迎来到IT知识分享网。

今天分享的一个LoRa 项目,展示如何使用具有实时反馈的 RYLR896 LoRa 模块制作 LoRa Arduino ESP8266,远程控制继电器。

  • ESP8266 Arduino Lora 家庭自动化项目;
  • 发射器和接收器LoRa电路组成;
  • 如何使用 AT 命令配置 LoRa;
  • 项目的源代码介绍;
  • 如何将 LoRa 模块与 Arduino 和 ESP8266 连接;
  • 如何使用 LoRa 控制高压电器

按照下面所有步骤进行操作, 就可以轻松地制作这个 LoRa Arduino 项目来控制任何设备。尤其是在没有Wifi和蓝牙的偏远地区,这个可以达到10 公里外的控制是非常有用的。当然,LoRa 作为一种低功耗局域网无线标准,在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一,让其在物联网具有一席之地。如果你对LoRa感兴趣,这个项目可以让你练练手。

变送器电路所需的组件:

  • RYLR896 LoRa模块
  • Arduino Nano
  • 220Ω、4.7K、10K电阻器
  • LED
项目分享|远程控制继电器,轻松学会LoRa

接收器电路所需的组件:

  • RYLR896 LoRa模块
  • ESP8266 节点处理器
  • 5V 4通道继电器模块
  • 4.7k、10k 电阻器
项目分享|远程控制继电器,轻松学会LoRa

接收电路PCB上所需元件:

1. 继电器 5v (单刀双掷)

2. BC547 晶体管

3. PC817 Optocuplors

4. 510Ω 0.25w 电阻器 (R1 – R4)

5. 1k 0.25w 电阻器 (R5 – R9)

6. 5 毫米发光二极管LED

7. 1N4007 二极管 (D1 – D5)

8. 开关按钮

9. 端子连接器

10. 5V 直流电源

使用Arduino的发射器Lora电路

项目分享|远程控制继电器,轻松学会LoRa

在发射器LoRa电路中,使用了Arduino Nano,并使用 4.7k 和 10k 电阻的分压器,将 5V逻辑电平降至 3.3V逻辑电平。按钮与 Arduino 的 D2、D3、D4 和 D5 数字引脚连接。在 Arduino IDE中使用了INPUT_PULLUP功能,而不是使用上拉电阻。LED 与 Arduino 的 D7、D8 和 D13 数字引脚相连。可以使用任何 5V 直流电源或 9V 电池为电路供电。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:加微信领取资料

项目分享|远程控制继电器,轻松学会LoRa

使用NodeMCU的接收器Lora电路

项目分享|远程控制继电器,轻松学会LoRa

在接收器LoRa电路中,使用NodeMCU作为微控制器,同样的通过电阻分压,将5V逻辑电平降至3.3V逻辑电平。使用D1,D2,D5和D6 GPIO引脚来控制4个继电器。

如果在 NodeMCU 的引导过程中 RX 接地,则引导将失败。将电源提供给 NodeMCU 后连接 LoRa 模块。

这里使用 5V 电源为 NodeMCU 和继电器模块供电。在高压下工作时,需要采取适当的安全预防措施。

使用 AT 命令配置参数

首先,将LoRa模块连接到带有FTDI232的串行接口板上,使用AT命令配置一些参数。

项目分享|远程控制继电器,轻松学会LoRa

在串行工具中,选择波特率 = 和“NL 和 CR”。

用于发射器 LoRa 模块的 AT 命令:

AT+ADDRESS=1 AT+NETWORKID=5 AT+BAND=

用于接收器 LoRa 模块的 AT 命令:

AT+ADDRESS=1 AT+NETWORKID=5 AT+BAND=

需要根据所在国家/地区可用的符合条件的 LoRa 频段选择。

使用 Arduino 和 ESP8266 的 LoRa 项目的代码

在这个Lora项目中,使用Arduino Nano用于发射器电路,和NodeMCU用于接收电路。

首先,下载源代码。将发射器电路的代码上传到Arduino,并将接收电路的代码上传到节点MCU。

项目分享|远程控制继电器,轻松学会LoRa

发送端代码:

/* * TITLE: This is transmitter LoRa Arduino sketch to send and receive signal * Click on the following links to learn more. * YouTube Video: https://youtu.be/uWCY1CkvhR8 * Related Blog : https://iotcircuithub.com/esp8266-projects/ * by Tech StudyCell */ const int pLED = 13; const int rLED = 7; const int gLED = 8; const int pSwitch_1 = 2; const int pSwitch_2 = 3; const int pSwitch_3 = 4; const int pSwitch_4 = 5; int i; String incomingString; boolean state; void setup() { // put your setup code here, to run once: Serial.begin(); pinMode(pLED, OUTPUT); pinMode(rLED, OUTPUT); pinMode(gLED, OUTPUT); pinMode(pSwitch_1, INPUT_PULLUP); pinMode(pSwitch_2, INPUT_PULLUP); pinMode(pSwitch_3, INPUT_PULLUP); pinMode(pSwitch_4, INPUT_PULLUP); } void getFeedback(String excpt_str){ i = 0; incomingString = ""; state = true; digitalWrite(gLED, LOW); digitalWrite(rLED, LOW); //Serial.print("Waiting for feedback"); while(1){ if(Serial.available()>0){ incomingString = Serial.readString(); if(incomingString.indexOf(excpt_str) > 0) { state = true; break; } } if (i > 60) { state = false; break; } delay(100); digitalWrite(pLED, !digitalRead(pLED)); i++; } if(state){ digitalWrite(gLED, HIGH); digitalWrite(rLED, LOW); digitalWrite(pLED, LOW); //Serial.println("Received"); } else{ digitalWrite(gLED, LOW); digitalWrite(rLED, HIGH); digitalWrite(pLED, LOW); //Serial.println("Not Received"); } } void loop() { // put your main code here, to run repeatedly: if (digitalRead(pSwitch_1) == LOW){ Serial.println("AT+SEND=2,6,R1"); getFeedback("FR1"); } else if (digitalRead(pSwitch_2) == LOW){ Serial.println("AT+SEND=2,6,R2"); getFeedback("FR2"); } else if (digitalRead(pSwitch_3) == LOW){ Serial.println("AT+SEND=2,6,R3"); getFeedback("FR3"); } else if (digitalRead(pSwitch_4) == LOW){ Serial.println("AT+SEND=2,6,R4"); getFeedback("FR4"); } } 

接收端代码:

/ * TITLE: LoRa control 4 Relays using NodeMCU ESP8266 with real-time feedback (Receiving end) * Click on the following links to learn more. * YouTube Video: https://youtu.be/uWCY1CkvhR8 * Related Blog : https://iotcircuithub.com/esp8266-projects/ * by Tech StudyCell * Preferences--> Aditional boards Manager URLs : * https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json * Download Board ESP8266 NodeMCU : https://github.com/esp8266/Arduino * / // define the GPIO connected with Relays and switches #define RelayPin1 5 //D1 #define RelayPin2 4 //D2 #define RelayPin3 14 //D5 #define RelayPin4 12 //D6 #define sLed 16 //D0 String incomingString; void setup() { Serial.begin(); pinMode(RelayPin1, OUTPUT); pinMode(RelayPin2, OUTPUT); pinMode(RelayPin3, OUTPUT); pinMode(RelayPin4, OUTPUT); pinMode(sLed, OUTPUT); //During Starting all Relays should TURN OFF digitalWrite(RelayPin1, HIGH); digitalWrite(RelayPin2, HIGH); digitalWrite(RelayPin3, HIGH); digitalWrite(RelayPin4, HIGH); digitalWrite(sLed, HIGH); } void loop() { lora_control(); } void lora_control(){ if(Serial.available()) { incomingString = Serial.readString(); digitalWrite(sLed, LOW); if(incomingString.indexOf("R1") >0) { digitalWrite(RelayPin1, !digitalRead(RelayPin1)); Serial.println("AT+SEND=1,6,FR1"); } else if(incomingString.indexOf("R2") >0) { digitalWrite(RelayPin2, !digitalRead(RelayPin2)); Serial.println("AT+SEND=1,6,FR2"); } else if(incomingString.indexOf("R3") >0) { digitalWrite(RelayPin3, !digitalRead(RelayPin3)); Serial.println("AT+SEND=1,6,FR3"); } else if(incomingString.indexOf("R4") >0) { digitalWrite(RelayPin4, !digitalRead(RelayPin4)); Serial.println("AT+SEND=1,6,FR4"); } delay(100); digitalWrite(sLed, HIGH); } }

设计用于接收 LoRa 电路的 PCB

为了使电路紧凑并具有专业的外观, 在测试了智能继电器模块的所有功能后设计了PCB。可以从以下链接下载此家庭自动化项目的PCB Gerber文件:

https://drive.google.com/uc?export=download&id=1Jx4D_DSV_ei1y0a82AbtxbsNhy8sjCmY

之后,我按照电路图焊接了所有组件。

项目分享|远程控制继电器,轻松学会LoRa

然后将节点MCU板与PCB连接。

项目分享|远程控制继电器,轻松学会LoRa

按照电路图将 4 个灯与继电器模块连接。

将 LoRa 模块与 Arduino 和 ESP8266 连接

上传代码后, 将 LoRa 模块与 Arduino 和 NodeMCU 连接。对于接收电路,在连接 LoRa 模块之前打开 5V 电源。

现在,就使用发射器 LoRa 电路控制设备,还可以监控来自接收器 LoRa 电路的实时反馈。

转载自:Subhajit

文章来源于项目分享| 远程控制继电器,轻松学会LoRa

原文链接:
https://www.hackster.io/techstudycell/lora-project-with-esp8266-arduino-control-relay-70c56b

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/172766.html

(0)
上一篇 2025-03-07 08:15
下一篇 2025-03-07 08:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信