通过 VirtualWire (433MHz) 发送 Int
Posted
技术标签:
【中文标题】通过 VirtualWire (433MHz) 发送 Int【英文标题】:Sending Int via VirtualWire (433MHz) 【发布时间】:2017-04-18 05:05:56 【问题描述】:传输设备:Arduino Micro,带有通过 VirtualWire 和超声波传感器的 433Mhz 发射器。 都连接到 5V 和接地以及:
超声波传感器: 触发引脚:11 回声针:12 433 发射机: 发射机:11
到目前为止,我的代码使用 NewPing 库进行声波距离测量:
#include <NewPing.h>
#include <VirtualWire.h>
#define TRIGGER_PIN 10
#define ECHO_PIN 12
#define MAX_DISTANCE 500
#define ledPin 13
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup()
vw_set_tx_pin(11);
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
vw_setup(2000);
void loop()
delay(5000);
unsigned int uS = sonar.ping();
Serial.print("Distance: ");
unsigned int Distance = (uS / US_ROUNDTRIP_CM);
Serial.print(Distance);
Serial.println("cm");
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
这给了我这样的串行监视器输出:
Distance: 40cm
Distance: 39cm
我的问题:通过 433 MHz 发送测量结果的最简单/最佳方式是什么。
(在那种情况下40
或39
)
我想用一个 RaspberryPi 接收这个值,该树莓派连接了接收器单元并且正在运行 PIGPIO。
我很确定我并没有真正了解 Virtual Wire 的语法,希望能在如何准备和发送消息方面提供一些帮助。
【问题讨论】:
【参考方案1】:使用 RaspberryPi 上的 UART 端口从 arduino 上的 UART 接收数据。小心 RaspberryPi 是 3.3V,而 Arduino 是 5V。如果您直接连接可能会破坏您的 RaspberryPi。使用电阻将 5V 转换为 3.3V。
【讨论】:
以上是关于通过 VirtualWire (433MHz) 发送 Int的主要内容,如果未能解决你的问题,请参考以下文章
Arduino nano 通过RF433射频模块实现数据传输
433MHz(CC1101)与zigbee (CC2530)对比测试