我所知道的无线通讯设备分为这么几种类型:
1.蓝牙发送数据
2.wifi发送数据
3.nRF24L01模块发送数据
4.433MHZ模块(单向通讯)
今天我介绍一下433MHZ模块在两块arduino uno开发板上实现通讯
发射器:连接示意图如下
模块有三个连接:
VCC:可以是3-12V的直流电压(电压要和接送器匹配,5V-5V或者其他anyway)
GND:连接板子上的GND
DATA OUT:连接板子的PIN 12
接收器:示意连接如下图
模块有三个连接:
VCC:可以是3-12V的直流电压(电压要和接送器匹配,5V-5V或者其他anyway)
GND:连接板子上的GND
DATA OUT:连接板子的PIN 11
下面是代码区域:
发射器代码
/* 433 MHz RF Module Transmitter Demonstration 1 RF-Xmit-Demo-1.ino Demonstrates 433 MHz RF Transmitter Module Use with Receiver Demonstration 1 DroneBot Workshop 2018 https://dronebotworkshop.com*/ // Include RadioHead Amplitude Shift Keying Library#include// Include dependant SPI Library #include // Create Amplitude Shift Keying ObjectRH_ASK rf_driver; void setup(){ // Initialize ASK Object rf_driver.init();} void loop(){ const char *msg = "Welcome to the Workshop!"; rf_driver.send((uint8_t *)msg, strlen(msg)); rf_driver.waitPacketSent(); delay(1000);}
接收器代码
/* 433 MHz RF Module Receiver Demonstration 1 RF-Rcv-Demo-1.ino Demonstrates 433 MHz RF Receiver Module Use with Transmitter Demonstration 1 DroneBot Workshop 2018 https://dronebotworkshop.com*/ // Include RadioHead Amplitude Shift Keying Library#include// Include dependant SPI Library #include // Create Amplitude Shift Keying ObjectRH_ASK rf_driver; void setup(){ // Initialize ASK Object rf_driver.init(); // Setup Serial Monitor Serial.begin(9600);} void loop(){ // Set buffer to size of expected message uint8_t buf[24]; uint8_t buflen = sizeof(buf); // Check if received packet is correct size if (rf_driver.recv(buf, &buflen)) { // Message received with valid checksum Serial.print("Message Received: "); Serial.println((char*)buf); }}
arduino库如下:
链接:https://pan.baidu.com/s/1_jWYNHKuXuSTUG3Br0XaBQ
提取码:7hm6库文件导入步骤:
现在打开你的Arduino IDE。转到项目下拉菜单,然后打开加载库子菜单。选择添加ZIP库
将打开一个对话框,允许您导航到放置RadioHead ZIP文件的位置。找到该文件并选择它。
该库将安装到您的Arduino IDE中。执行此操作后,您可能需要重新启动IDE。
现在,RadioHead已成为Arduino IDE的一部分,您已准备好进行编码。