Arduino使用433MHz RF射频发射器和接收器的方法
参考网址:Arduino开发板使用RF 433M发送器/接收器模块的方法
Arduino开发板使用433MHz RF射频发射器和接收器的方法
原文地址:https://www.yiboard.com/forum.php?mod=viewthread&tid=1535
- √ 工作电压:3V – 12V
- √ 工作电流:最大小于40mA,最小9mA
- √ 谐振模式:(SAW)
- √ 调制模式:ASK
- √ 工作频率:433.92MHz
- √ 发射功率:25mWF
- √ 频率误差:+ 150kHz(max)
- √ 通讯速率:小于10Kbps
- √ 发射范围:90m(在开放空间)
- √ 工作电压:5.0VDC + 0.5V
- √ 工作电流:≤5.5mAmax
- √ 调制模式:OOK / ASK
- √ 工作频率:433.92MHz
- √ 带宽:2MHz
- √ 灵敏度:超过–100dBm(50Ω)
所需的组件
● Arduino Uno开发板
● 433Mhz射频套件
● DHT22温湿度传感器
● 1.8寸彩色TFT显示屏
● 面包板
● 跳线
原理图
该项目有两个原理图。第一个用于发送器,该发送器获取环境的温度和湿度,并将其发送到项目的接收器,后者在显示屏上显示数据。
接收器电路由433 MHz射频接收器模块、ST7735 1.8寸彩色TFT显示屏和Arduino Uno开发板组成。如下图所示连接组件。
完成所有连接后,我们现在可以为该项目编写代码。
//Written by Nick Koumaris
//info@educ8s.tv
#include <VirtualWire.h>
#include "DHT.h"
之后,我们声明将DHT连接到的Arduino的引脚,并指定要使用的DHT的类型。
#define DHTPIN 4
#define DHTTYPE DHT22
接下来,我们定义Arduino的引脚,该引脚将用作我们的数据传输引脚(连接到RF发送器模块的数据引脚),然后创建将一个用于发送数据的结构体package。
const int led_pin = 13;
const int transmit_pin = 12;struct package
{float temperature ;float humidity ;
};
接下来,我们定义一个package实例,并创建DHT类的实例以处理DHT传感器。
typedef struct package Package;
Package data;DHT dht(DHTPIN, DHTTYPE);
完成这些操作后,我们转到***void setup()***函数,在其中设置TX引脚和其他参数以初始化RF模块。
void setup()
{// Initialise the IO and ISRvw_set_tx_pin(transmit_pin);vw_set_ptt_inverted(true); // Required for DR3100vw_setup(500); // Bits per secpinMode(led_pin, OUTPUT);
}
void loop()
{digitalWrite(led_pin, HIGH); // Flash a light to show transmittingreadSensor();vw_send((uint8_t *)&data, sizeof(data));vw_wait_tx(); // Wait until the whole message is gonedigitalWrite(led_pin, LOW);delay(2000);
}
//Written by Nick Koumaris
//info@educ8s.tv#include <VirtualWire.h>
#include <Adafruit_ST7735.h>
#include <Adafruit_GFX.h>
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);// Option 2: use any pins but a little slower
#define TFT_SCLK 13 // set these to be whatever pins you like!
#define TFT_MOSI 11 // set these to be whatever pins you like!
接下来,我们声明RF接收器模块的数据引脚所连接的Arduino引脚(receive_pin),并创建char型变量来保存温度和湿度值。
const int receive_pin = 12;
char temperatureChar[10];
char humidityChar[10];
接下来,我们创建一个类似于发射器代码中的结构体package。
struct package
{float temperature = 0.0;float humidity = 0.0;
};
完成此操作后,我们转到void setup()函数,在该函数中我们初始化显示屏,RF接收器模块设置比特率并启动接收器。
void setup()
{tft.initR(INITR_BLACKTAB);tft.fillScreen(ST7735_BLACK);printUI();delay(1000);// Initialise the IO and ISRvw_set_rx_pin(receive_pin);vw_setup(500); // Bits per secvw_rx_start(); // Start the receiver PLL running
}
接下来,是***void loop()*函数。通过使用*vw_have_message()***函数检查是否已收到消息。如果收到消息,我们将从中提取温度和湿度数据,并将其显示在LCD上。
void loop()
{uint8_t buf[sizeof(data)];uint8_t buflen = sizeof(data);if (vw_have_message()) // Is there a packet for us?{vw_get_message(buf, &buflen);memcpy(&data,&buf,buflen);Serial.print("\nPackage:");Serial.print(data.temperature);String temperatureString = String(data.temperature,1);temperatureString.toCharArray(temperatureChar,10);tft.fillRect(10,20,80,30,ST7735_BLACK);printText(temperatureChar, ST7735_WHITE,10,20,3);String humidityString = String(data.humidity,1);humidityString.toCharArray(humidityChar,10);tft.fillRect(10,95,80,100,ST7735_BLACK);printText(humidityChar, ST7735_WHITE,10,95,3);Serial.print("\n");Serial.println(data.humidity);}
}
void printText(char *text, uint16_t color, int x, int y,int textSize)
{tft.setCursor(x, y);tft.setTextColor(color);tft.setTextSize(textSize);tft.setTextWrap(true);tft.print(text);
}void printUI()
{printText("TEMPERATURE", ST7735_GREEN,30,5,1); // Temperature Static TextprintText("o", ST7735_WHITE,90,13,2);printText("C", ST7735_WHITE,105,20,3);printText("HUMIDITY", ST7735_BLUE,30,80,1); // Temperature Static TextprintText("%", ST7735_WHITE,90,95,3);
}
将相应的代码上传到每个Arduino开发板。 两个Arduino开发板都可以使用电池组供电。 开机后几分钟,您应该会在LCD上看到温度和湿度数据。
433MHz发射器和接收器模块的范围通常很小,但是通过焊接外部天线,它们的通讯范围可以增大。以上就是本文的所有内容,如有任何疑问,请随时在本帖下面进行回复。
使用Arduino解码并发送433MHz RF无线射频信号 [复制链接]
Arduino使用433MHz RF射频发射器和接收器的方法相关推荐
- Arduino - 315/433MHz RF无线收发模块
貌似又是为了找个合适的库文件进行了N多周折. 元件如下图(左边为接收模块,右边为发送模块): 接线图如下: 以下为控制代码: [库文件:RCSwitch]点此下载 [注意点:接收模块数据线要接到Ard ...
- RF发射器和接收器电路
原文地址:https://circuitdigest.com/electronic-circuits/rf-transmitter-and-receiver-circuit-diagram RF发射器 ...
- 每个工程师都应该知道的 5 个射频发射器测量指标(自NI官网翻译)
概述 射频发射器是现代通信的重要组成部分.射频发射器由核心射频组件设计和组装而成,具有多种不同的形式和应用.我们经常想到无线通信中的射频发射器,但这个概念同样适用于有线应用,如有线电视.蜂窝电话.雷达 ...
- 315Mhz RF射频解码 串口输出方案(支持2262/1527多种编码方式)
315Mhz RF射频解码 串口输出方案 一.简介 二.使用前准备 三.测试方法 四.测试现象 总结 原文链接:https://www.yourcee.com/newsinfo/2929023.htm ...
- 电子工程师标配十款经典RF射频器件
RF射频器件对非射频领域的工程师来说并没有那么悬乎,说白了就是一种可发生高频交流变化电磁波的器件,目前的应用非常广,如智能手机.GPS.手持设备等. 下面这篇文章肯定不会让你失望,让你更清楚的了解RF ...
- matlab射频传输距离计算,Lora参数计算和RF射频传输距离计算公式和工具
Lora参数计算和RF射频传输距离计算公式和工具 [复制链接] 本帖最后由 xulikai 于 2019-10-20 10:36 编辑 此内容由EEWORLD论坛网友xulikai原创,如需转载或用于 ...
- 如何使用RS-232发射器和接收器?
目录 前言 设计一 设计二(回环) 设计二(回环)测试 前言 前面讲到了波特率的产生,发射器以及接收器: RS232 波特率时钟产生方法? RS-232 Transmitter RS-232 Rece ...
- [4G5G专题-109]:部署 - LTE RF射频优化的流程、原因综合分析、解决办法大全
目录 第1章 什么是RF优化 1.1 概述 1.2 RF优化的目的 1.3 RF优化的内容 1.4 RF优化流程 第2章 测试准备: 2.1 确定RF优化目标 2.2 Cluster的划分 2.3 测 ...
- 产品如何选择 RF射频,RF433,RF315
通常大家说的RF射频,RF433,RF315开发都是指工作在1Ghz频率一下的无线开发,还有人统称为sub-1G开发,RF433是指无线工作频率是以433M赫兹为中心的,相应的RF315是指无线工作频 ...
- 关于RF射频 PCB布线心得
关于RF射频 PCB布线心得1.最近公司出了一款BLE芯片,部分应用厂商使用我司的芯片做一些应用,手环,温度计,电子价签等应用.因为是RF芯片,涉及到射频部分,很多客户在设计PCB的时候完全没有考虑到 ...
最新文章
- flask_restplus的fields中怎么定义字典_Quora | 成功的定义是什么?
- 【mysql】mysql的数据库主从2(双主双从)
- 实验二matlab数值,实验二MATLAB数值计算
- 实现哈希表 java,如何实现Java的哈希表?
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹、避障、遥控实验综合程序
- PythonOpencv-分类器—SVM,KNearest,RTrees,Boost,MLP
- python3程序转python2_python2到python3代码转化:2to3
- ipython和jupyter哪个好_对Python开发者而言,IPython仍然是Jupyter Notebook的核心
- 关于海量分页的补充说明(转)
- 事件冒泡与事件捕获,附实例
- linux怎么返回上级目录啊,用cd/命令却这样:bash:cd/:没有那个文件或目录
- node版本管理和npm源管理工具
- 微信小程序开发入门与实践
- Windows Server AppFabric 简介
- FPGA编程中常用的经典方法及技巧(图像处理-映射技术)
- vim keymap
- 关于外接显示器无信号的解决办法Win10
- 苹果开发:开发证书都显示“此证书的签发者无效”的解决方法
- 域名转入需要经过“命名审核”状态
- 安装JDK报错“当前页面的脚本发生错误”解决方案
热门文章
- win10中鼠标点右键或者重命名文件夹系统卡顿解决方法
- 美团获得小样本学习榜单FewCLUE第一!Prompt Learning+自训练实战
- 2021.09.17 word文档撤销按钮变灰,快捷键失效解决办法
- 其它——简历编写、五险一金、补充一些就业相关的东西
- C语言小游戏,笑傲江湖之鸿蒙
- js判断移动端还是pc端
- 【移动网络】5GC:5G核心网络的移动性管理(Mobility Management)
- 2022·09·漏洞众测平台·企业应急响应中心SRC·大集合·不定时更新
- Windows 9预览版今秋发布 正式版明年推出
- 年轻时代,噢,年轻时代