通过 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 发送测量结果的最简单/最佳方式是什么。 (在那种情况下4039

我想用一个 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自发电无线控制器

433MHz自发电无线控制器

433MHz(CC1101)与zigbee (CC2530)对比测试

Arduino RF 接收器接收一些 433MHz 信号,但不接收其他信号

433MHZ SPI模块使用心得