Saluti a tutti!
Sul balcone ho un arduino che trasmette, tramite un modulino a 433mhz, la temperatura e l'umidtà misurata con il dht22; misura anche la resistenza tra chiodi inox infilati nel terreno con una resistenza da 10khom collegata dall'analog pin a grd.
Lo alimento con una batteria che durava una settimana e che ora si è rotta.
Vorrei utilizzare un power bank da 2600mah perché è molto piccolo e vorrei tentare di nasconderlo da qualche parte nel mio piccolo e non recintato terreno . Tuttavia questa batteria anche, con la funzione sleep, dura solo un paio di giorni. Per questo ho acquistato un digispark.
.
Vi trascrivo i codice di trasmissione del digispark:
// pin0 tx led pin1 dht pin2 pin3 e 4 Usdb pin 5 analoread(0)inox ??
//l'inox si con resistenza 10khom tra pin5 e grd
#include <Manchester.h>
#define TX_PIN 0 //pin where your transmitter is connected
#include "DHT.h"
DHT dht(2, DHT22); //pin 2 pin5analog0
byte inox=0;
void setup() {
pinMode(1, OUTPUT); //led
pinMode(5,INPUT); //analog0 il 5 non va bene per l'analog oppure provere come input
man.setupTransmit(TX_PIN, MAN_600);
dht.begin();
}
void loop() {
float h = dht.readHumidity(); h=round(h);
float t = dht.readTemperature(); t=round(t);
if (isnan(h) || isnan(t)) {//Serial.println("Failed to read from DHT sensor!");
return; }
uint8_t msg[20];
msg[1]=(int) t; msg[0]='t';
msg[3]=(int) h; msg[2]='h';
digitalWrite(1, true);delay(100);
inox = analogRead(0); //Read P2
digitalWrite(1, false);
msg[5]= inox;
msg[4]='x';
man.transmitArray(20, msg);
delay(3000);
}
e il codice di ricezione di Arduino:
//riceve con Arduino
#include <Manchester.h>
#define RX_PIN 2
#define BUFFER_SIZE 20
uint8_t buffer[BUFFER_SIZE];
byte t,h,inox;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.print("ok");
man.setupReceive(RX_PIN, MAN_600);
man.beginReceiveArray(BUFFER_SIZE, buffer);
}
void loop() {
if (man.receiveComplete() ) {
uint16_t m = man.getMessage();
if (buffer[0] = 't') { t=buffer[1];
digitalWrite(13, HIGH);delay(1000);digitalWrite(13, LOW);
}
if (buffer[2] = 'h') { h=buffer[3];}
// if (buffer[4] = 'x') { inox=buffer[5];}
Serial.print("t");Serial.println(t);
Serial.print("h");Serial.println(h);
// Serial.print("x");Serial.println(inox);
man.beginReceiveArray(BUFFER_SIZE, buffer);
}
}
I collegamenti del digispark:
pin0 tx, led pin1, dht pin2, pin3 e 4 Usb, pin 5 analoread(0)inox
Pensavo di collegare i chiodi inox al pin 1 e al pin5 (analogread0) maquando collego la resistenza di 10khom da grd al p5 (A0) si blocca tutto. Stessa cosa anche se collego direttamente il p1 al p5
Non riesco a venirne fuori