Ta emot och skicka data mellan Attiny85 (Arduino IDE 1.06) uppdaterad Nov 2015 (4 / 4 steg)
Steg 4: Skicka och ta emot sensordata med Attiny85/45: DHT11 och LDR via Manchester kod
Skicka ett stillastående nummer är naturligtvis kul i början, men inte mycket användning. Nedan är ett konkret exempel på Skicka 1 stationära värde och 3 variabelvärden genom etern.
/*
LDR = A1
RF433 = D0
DHT11 = D4
LED = D3
*/
bibliotek
#include < dht11.h >
#include < Manchester.h >
dht11 DHT11;
#define DHT11PIN 4
#define TX_PIN 0 //pin där din sändare är ansluten
variabler
flyta h = 0;
flyta t = 0;
int transmit_data = 2761;
int transmit_t = 0;
int transmit_h = 0;
int ljus = 0;
void setup() {
man.setupTransmit (TX_PIN, MAN_1200);
}
void loop() {
int chk = DHT11.read(DHT11PIN);
h = DHT11.humidity;
t = DHT11.temperature;
transmit_h = 100 * h;
transmit_t = 100 * t;
man.Transmit(transmit_data);
Delay(200);
man.Transmit(transmit_h);
Delay(200);
man.Transmit(transmit_t);
ljus = analogRead(A1);
man.Transmit(Light);
}
Det tar 3194 byte så jag kunde sammanställa det i en Attiny45.
Sändaren är ansluten till D0 (pin 5). DHT11 sensorn är
ansluten till D4 (pin 3) och en LDR ansluten till A1 (pin 7), med den andra änden är ansluten till marken eller Vcc och ett motsvarande dra upp eller dra ner motstånd, beroende på dina önskemål,
Variablerna h och t är flottar som kan ha decimaler. Eftersom jag är endast intresserad av 2 decimal noggrannhet, jag multipliceras med 100 och förvandla dem till heltal. Jag skickar sedan en ID '2716", följt av 3 värden: fuktighet, temperatur, ljus. Den mottagande stationen kan sedan identifiera var den kom ifrån och bearbeta de inkommande signalerna (start genom att dividera dem med 100 igen)