Ciao
Non riesco a stabilire una comunicazione tra due moduli HC12 per trasmettere temperatura e umidita da un DHT22.
Anche gli esempi in rete non mi hanno molto aiutato
Ho provato questo semplice sketch come test (su due arduino) e funziona, lo uso per ricevere
/* HC12 Send/Receive Example Program 1
By Mark J. Hughes
for AllAboutCircuits.com
Connect HC12 "RXD" pin to Arduino Digital Pin 2
Connect HC12 "TXD" pin to Arduino Digital Pin 3
Connect HC12 "Set" pin to Arduino Digital Pin 6
Do not power over USB. Per datasheet,
power HC12 with a supply of at least 100 mA with
a 22 uF - 1000 uF reservoir capacitor.
Upload code to two Arduinos connected to two computers.
Transceivers must be at least several meters apart to work.
*/
#include <SoftwareSerial.h>
const byte HC12RxdPin = 2; // "RXD" Pin on HC12
const byte HC12TxdPin = 3; // "TXD" Pin on HC12
const byte HC12SetPin = 6; // "SET" Pin on HC12
SoftwareSerial HC12(HC12TxdPin, HC12RxdPin); // RX to HC-12 TX Pin, TX to HC-12 RX Pin
void setup()
{
Serial.begin(9600); // Open serial port to computer
HC12.begin(9600); // Open serial port to HC12
Serial.println("Enter AT commands:");
// digitalWrite(HC12SetPin, 0);
}
void loop()
{
while (HC12.available()) { // If HC-12 has data
Serial.write(HC12.read()); // Send the data to Serial monitor
}
while (Serial.available()) { // If Serial monitor has data
HC12.write(Serial.read()); // Send that data to HC-12
}
}
questo con il DHT per trasmettere ma non ricevo dati
/* HC12 Send/Receive Example Program 1
By Mark J. Hughes
for AllAboutCircuits.com
Connect HC12 "RXD" pin to Arduino Digital Pin 4
Connect HC12 "TXD" pin to Arduino Digital Pin 5
Connect HC12 "Set" pin to Arduino Digital Pin 6
Do not power over USB. Per datasheet,
power HC12 with a supply of at least 100 mA with
a 22 uF - 1000 uF reservoir capacitor.
Upload code to two Arduinos connected to two computers.
Transceivers must be at least several meters apart to work.
*/
#include <SoftwareSerial.h>
#include <Wire.h> //DHT 22 (AM2302)
#include "DHT.h" //DHT 22 (AM2302)
#define DHTPIN 4 //DHT 22 (AM2302) what pin we're connected to
float h; //DHT 22 (AM2302)
float t; //DHT 22 (AM2302)
#define DHTTYPE DHT22 //DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);//DHT 22 (AM2302)
const byte HC12RxdPin = 2; //HC12 "RXD" Pin on HC12
const byte HC12TxdPin = 3; //HC12 "TXD" Pin on HC12
const byte HC12SetPin = 6; //HC12 "SET" Pin on HC12
SoftwareSerial HC12(HC12TxdPin, HC12RxdPin); // RX nano to HC-12 TX Pin, TX nano to HC-12 RX Pin
void setup()
{
Serial.begin(9600); // Open serial port to computer
HC12.begin(9600); // Open serial port to HC12
// Serial.println("Enter AT commands:");
// digitalWrite(HC12SetPin, 0);
dht.begin(); //DHT 22 (AM2302)
delay(500);
}
void loop()
{
h = dht.readHumidity();
t = dht.readTemperature();
delay(3000);
// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h))
{
Serial.println("Failed to read from DHT");
//lcd.clear();
delay(500);
// lcd.setCursor(0, 0);
// lcd.print("no data from DHT");
}
else
{
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature ");
Serial.print(t);
Serial.println(" *C");
HC12.print(h);
}
}
grazie per ogni suggerimento

