Tutorial Arduino #20

Radiofrequenze

Come usare le radio frequenze - Tutorial Arduino #20
Tutorial Arduino #19: Display TFT Touchscreen
Tutorial Arduino #19
Display TFT Touchscreen
Tutorial Arduino #21: Striscia LED RGB
Tutorial Arduino #21
Striscia LED RGB

Descrizione

Questa puntata è dedicata alla comunicazione senza fili attraverso le radio frequenze. Vedremo come utilizzarla per trasmettere i messaggi da una scheda di Arduino e riceverli sull'altra.

Tra gli esempi vedremo come inviare i dati ambientali per visualizzarli sul display LCD.

Scarica le risorse

Progetto: Radiofrequenze (base)

Schema

Componenti

Codice

#include <RH_ASK.h>#define BUTTON_PIN 2 RH_ASK rf; int lastValue = LOW;int state = LOW;const char *msgON = "ON";const char *msgOFF = "OFF"; void setup() {  rf.init();  pinMode(BUTTON_PIN, INPUT);} void loop() {  int value = digitalRead(BUTTON_PIN);  if (value != lastValue && value == HIGH) {    state = !state;    if (state) {      rf.send((uint8_t *) msgON, strlen(msgON));    } else {      rf.send((uint8_t *) msgOFF, strlen(msgOFF));    }    rf.waitPacketSent();  }  lastValue = value;  delay(50);}
#include <RH_ASK.h>#define LED_PIN 7 RH_ASK rf;   void setup() {  rf.init();  pinMode(LED_PIN, OUTPUT);} void loop() {  uint8_t buffer[RH_ASK_MAX_MESSAGE_LEN];  uint8_t bufferLength = sizeof(buffer);  if (rf.recv(buffer, &bufferLength)) {    buffer[bufferLength] = '\0';    if (strncmp((char *) buffer, "ON", bufferLength) == 0) {      digitalWrite(LED_PIN, HIGH);    } else {      digitalWrite(LED_PIN, LOW);    }  }  delay(10);}
scarica il file

Progetto: Radiofrequenze (esteso)

Schema

Componenti

Codice

#include <RH_ASK.h>#include <DHT.h>#define DHT_PIN 7 struct DataHolder {  float temperature;  float humidity;}; DataHolder dh;RH_ASK rf;DHT dht(DHT_PIN, DHT11); void setup() {  dht.begin();  rf.init();} void loop() {  delay(1000);  dh.temperature = dht.readTemperature();  dh.humidity = dht.readHumidity();    rf.send((uint8_t *) &dh, sizeof(dh));  rf.waitPacketSent();}
#include <RH_ASK.h>#include <LiquidCrystal_I2C.h> struct DataHolder{  float temperature;  float humidity;}; DataHolder dh;RH_ASK rf;LiquidCrystal_I2C lcd(0x27162);   void setup() {  rf.init();  lcd.init();  lcd.backlight();} void loop() {  uint8_t buffer[RH_ASK_MAX_MESSAGE_LEN];  uint8_t bufferLength = sizeof(buffer);  if (rf.recv(buffer, &bufferLength)) {    memcpy(&dh, buffer, bufferLength);    lcd.clear();    lcd.setCursor(0,0);    lcd.print("Temp.: " + String(dh.temperature) + char(0xDF+ "C");    lcd.setCursor(0,1);    lcd.print("Umid.: " + String(dh.humidity) + "%");  }  delay(10);}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio