Отправлено спустя 11 минут 7 секунд:
За основу думаю взять скетч от работавший на моей ардуине радиоглушилки на 433Мгц
СпойлерПоказать
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
}
Отправлено спустя 10 минут 19 секунд:
А эта у меня не работала
#include <VirtualWire.h>
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
const int transmit_pin = 12;
const int receive_pin = 11;
void setup(void)
{
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_inverted(true); // Необходимо для DR3100
vw_setup(2000); // Устанавливаем скорость передачи (бит/с)
}
int getWeather(String type) {
DHT.read(DHT11_PIN); // READ DATA
if (type == "temp") {
return (int)DHT.temperature;
}
if (type == "hum") {
return (int)DHT.humidity;
}
}
void loop(void)
{
char msg[255];
String strMsg;
String temp = (String)getWeather("temp");
String hum = (String)getWeather("hum");
strMsg = "DHT11,DHT1101,1,"+temp+","+hum+",0,DHT11";
strMsg.toCharArray(msg, 100);
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Ждем пока передача будет окончена
delay(2000);
}
Отправлено спустя 2 минуты 7 секунд:
Приёмник
#include <VirtualWire.h>
const int transmit_pin = 12;
const int receive_pin = 11;
char data[100];
char mode[4];
char addres[10];
char value1[14];
char value2[14];
char value3[14];
char value4[4];
char modecontrol[4];
int i;
void setup()
{
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
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)) // Если принято сообщение
{
for (i = 0; i < buflen; i++)
{
data=buf;
}
sscanf(data, "%[^','],%[^','],%[^','],%[^','],%[^','],%[^','],%s", &mode, &addres, &value1, &value2, &value3, &value4, &modecontrol);
Serial.print(mode);
Serial.print(",");
Serial.print(addres);
Serial.print(",");
Serial.print(value1);
Serial.print(",");
Serial.print(value2);
Serial.print(",");
Serial.print(value3);
Serial.print(",");
Serial.print(value4);
Serial.print(",");
Serial.print(modecontrol);
Serial.println();
}
}
Отправлено спустя 31 минуту 45 секунд:
Вот еще один скотч передатчика
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
mySwitch.enableTransmit(2);
}
void loop() {
mySwitch.send(B0100, 4);
delay(1000);
mySwitch.send(B1000, 4);
delay(1000);
}
Отправлено спустя 3 минуты 40 секунд:
Скетч приемника
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
pinMode( 3, OUTPUT );
mySwitch.enableReceive(0);
}
void loop() {
if( mySwitch.available() ){
int value = mySwitch.getReceivedValue();
if( value == B1000 )
digitalWrite( 3, HIGH );
else if( value == B0100 )
digitalWrite( 3, LOW );
mySwitch.resetAvailable();
}
}
Отправлено спустя 2 минуты 27 секунд:
Описано в http://robotclass.ru/tutorials/arduino-radio-433mhz/