Отправка 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В.