Радиомодуль 433МГц

10.10.2016


Получил очередную посылку из китая. Это модуль RF 315/433 МГЦ, передатчик и приемник. Не знаю где его используют, но мне он нужен, чтобы подключить к микроконтроллеру ардуино и сделать беспроводной датчик движения, чтобы можно было ставить его в пределах дачного участка. Так же не знаю сколько он проработает от одного аккумулятора. Вообще хочу сделать маленькую солнечную панель и блок зарядки аккумулятора. Но даже на одном заряде он проработает долго. Вообщем как проверю скажу что получилось.

Подключение радиомодуля к Arduino


Подключение радиопередатчика RF 315/433 МГц к Arduino

VCC к 5 В.
ATAD к пину 12. 
Земля к GND.

// Тестировалось на Arduino IDE 1.0.1
#include
void setup(void)
{
vw_set_ptt_inverted(true); // Необходимо для DR3100
vw_setup(2000); // Устанавливаем скорость передачи (бит/с)
}
void loop(void)
{
int number = 123;
char symbol = 'c';
String strMsg = "z ";
strMsg += symbol;
strMsg += " ";
strMsg += number;
strMsg += " ";
char msg[255];
strMsg.toCharArray(msg, 255);
Serial.println(msg);
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Ждем пока передача будет окончена
delay(200);
}



Подключение радиопприемника RF 315/433 МГц к Arduino

VCC к 5 В.
Data к пину 12. 
Земля к GND.



Библиотека необходимая для работы с модулем VirtualWire.
Скачиваем и добавляем как ZIP библиотеку в раздел "скетч" Arduino IDE. 
Далее подключаем плату с передатчиком и заливаем следующий код:



// Тестировалось на Arduino IDE 1.0.1
#include
void setup()
{
Serial.begin(9600);
vw_set_ptt_inverted(true); // Необходимо для DR3100
vw_setup(2000); // Задаем скорость приема
vw_rx_start(); // Начинаем мониторинг эфира
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Буфер для сообщения
uint8_t buflen = VW_MAX_MESSAGE_LEN; // Длина буфера
if (vw_get_message(buf, &buflen)) // Если принято сообщение
{
// Начинаем разбор
int i;
// Если сообщение адресовано не нам, выходим
if (buf[0] != 'z')
{
return;
}
char command = buf[2]; // Команда находится на индексе 2
// Числовой параметр начинается с индекса 4
i = 4;
int number = 0;
// Поскольку передача идет посимвольно, то нужно преобразовать набор символов в число
while (buf[i] != ' ')
{
number *= 10;
number += buf[i] - '0';
i++;
}
Serial.print(command);
Serial.print(" ");
Serial.println(number);
}
}


Оставить комментарий...

Добавить комментарий


Защитный код
Обновить