Отправка Int через VirtualWire (433 МГц)

Передающее устройство: Arduino Micro с передатчиком 433 МГц через VirtualWire и ультразвуковым датчиком. Оба подключены к 5 В и заземлению, а также:

Ультразвуковой датчик: Пусковой контакт: 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 МГц. (в таком случае 40или же 39)

Я хотел бы получить это значение с RaspberryPi, к которому подключен приемный блок и работает PIGPIO.

Я уверен, что не совсем понимаю синтаксис Virtual Wire и был бы признателен за помощь в подготовке и отправке сообщения.

1 ответ

Используйте порт UART на RaspberryPi для получения данных от UART на Arduino. Будьте осторожны, RaspberryPi составляет 3,3 В, а Arduino - 5 В. Если вы подключитесь напрямую, это может привести к поломке вашего RaspberryPi. Используйте резистор для преобразования 5В в 3,3В.

Другие вопросы по тегам