Implementazione di Sensori Aggiuntivi

Dopo aver implementato ed ottimizzato l’invio via SMS delle coordinate GPS, utilizzando la scheda Maduino SIM-808 e i moduli GSM/GPRS e GPS, sono state analizzate ulteriori informazioni aggiuntive utilizzando due moduli: il modulo con sensore DHT11 permette di rilevare Temperatura ed Umidità, mentre il kit con cella di carico ed elettronica di interfaccia può essere utilizzata come sistema di antifurto che notifica il sollevamento dell’arnia rispetto la sua posizione originale.

Specifiche – DHT11:

Il modulo basato su sensore DHT11 permette di misurare variazioni di temperatura e variazioni di umidità relative.
È presente un’interfaccia seriale a filo singolo che ne facilita l’utilizzo.
Il sensore DHT11 viene calibrato in modo estremamente preciso: i coefficienti di calibrazione sono memorizzati nella memoria OTP e vengono richiamati durante il processo di rilevamento, in questo modo non vi è alcuna necessità di ricalibrare il sensore.

Caratteristiche Tecniche – DHT11:

  • Temperatura:
    • risoluzione: 1°C
    • precisione: ±2℃
    • range di misurazione: da 0°C a +50°C
  • Umidità:
    • risoluzione: 1%RH
    • precisione: ±5%RH (0~50°C)
    • range di misurazione: 20%RH ~ 90%RH (25°C)
  • Alimentazione DHT11:
    • Tensione – Vin: da 3,3Vdc a 5,5Vdc
    • Corrente – Iin: da 0,5mA a 2,5mA
  • Segnale d’Uscitadigitale, comunicazione tramite single-bus
  • Tempo di Rilevazione (medio): ±2sec
  • Dimensioni (mm): 29x18x7
  • Peso: 30 grammi
  • Datasheet – DHT11

Piedinatura – modulo DHT11:

VCC è l’alimentazione (+3,3Vdc/+5,5Vdc)
GND è la massa
DOUT rappresenta l’uscita Digitale (Digital-OUT)

Codice Esempio – Arduino:
/*
VCC: 5V

 GND: GND
 DATA: pin 2
/*
#include <SimpleDHT.h>
int pinDHT11 = 2;
SimpleDHT11 dht11(pinDHT11);
void setup() {
Serial.begin(9600);
}
void loop() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print(“Lettura fallita, err=”); Serial.println(err);delay(1000);
return;
}
Serial.print(“Temperatura: “);
Serial.print((int)temperature); Serial.print(” *C, “);
Serial.println(” “);
Serial.print(“Umidita’: “);
Serial.print((int)humidity); Serial.println(” H”);
// DHT11 sampling rate is 1HZ.
delay(1500);
}

 

Specifiche – cella di carico:

La cella di carico è gestita attraverso una scheda di interfaccia che permette di gestire i valori in uscita dal modulo stesso, in quanto essa lavora in tensioni molto basse
(nell’ordine dei uV/mV).
La scheda elettronica di interfaccia è basata sul chip HX711, un convertitore
analogico-digitale a 24 bit, specifico per interfacciare la cella di carico a un microcontrollore come Arduino, Fishino o altri compatibili.

                                                          Nella foto sopra è rappresentato il kit con cella di carico (arancione) e la scheda d’interfaccia (scheda verde, a destra) collegata ad Arduino Uno.

Caratteristiche Tecniche – cella di carico:

  • Materiale: lega di alluminio
  • Capacità (portata): 20 kg
  • Sensibilità di uscita: 2 mV / V ( ±0,15)
  • Non linearità (% sul Fondo Scala): 0,02
  • Isteresi (% sul Fondo Scala) : 0,02
  • Ripetibilità (% sul Fondo Scala): 0,02
  • Creep dopo 30 minuti (% sul Fondo Scala): 0,03
  • Effetto della temperatura sulla sensibilità (% sul Fondo Scala): 0,002
  • Effetto della temperatura sullo zero (% sul Fondo Scala): 0,005
  • Resistenza d’ingresso: 1 kohm (±10)
  • Resistenza di uscita: 1 kohm (±10)
  • Resistenza di isolamento: 5000 Mohm
  • Temperatura di lavoro: da -30°C a +70°C
  • Alimentazione: 10Vdc – 15Vdc(max)
  • Uscita analogica, collegata a pin A+ e A- dell’interfaccia HX711
  • Dimensioni (mm): 131x30x22

Caratteristiche Tecniche – interfaccia HX711:

  • Convertitore analogico-digitale a 24 bit
  • Alimentazione: +5Vdc (Arduino)
  • Uscita digitale, pin DT ed SCK
  • Datasheet – HX711

Collegamenti tra Cella di Carico e scheda di interfaccia HX711:

Filo ROSSO della cella di carico -> E+ (positivo) della scheda di interfaccia
Filo NERO della cella di carico -> E- (negativo) della scheda di interfaccia
Filo BIANCO (OUT–) della cella di carico > A- (negativo) della scheda di interfaccia
Filo VERDE (OUT+) della cella di carico -> A+ (positivo) della scheda di interfaccia

Piedinatura – scheda di interfaccia HX711:

                                                                                     VCC collegato a +5V di Arduino
GND collegato a GND di Arduino
SCK collegato al pin A0 di Arduino
DT collegato al pin A1 di Arduino

Configurazione Cella di Carico e interfacciamento con Arduino: link

Codice Esempio – Arduino:
#include<stdio.h>
#include<string.h>
#define DEBUG true
int pon=9;
int poff=6;
int lowp=5;
void setup() {
pinMode(pon, OUTPUT);
pinMode(poff, OUTPUT);
pinMode(lowp, OUTPUT);
digitalWrite(poff, LOW);
digitalWrite(lowp, HIGH);
digitalWrite(pon, HIGH);
SerialUSB.begin(115200);
while (!SerialUSB) {
; // wait for serial port to connect
}
Serial1.begin(115200);
digitalWrite(pon, LOW);
delay(3000);
digitalWrite(pon, HIGH);
delay(5000);
sendData(“AT+GPS=1 “,1000,DEBUG);
}
void loop() {
sendData(“AT+GPSRD=1”,1000,DEBUG);
delay(1000);
}
String sendData(String command, const int timeout, boolean debug) {
String response = “”;
Serial1.println(command);
long int time = millis();
while( (time+timeout) > millis()) {
while(Serial1.available()) {
char c = Serial1.read();
response+=c;
}
}
if(debug) {
SerialUSB.print(response);
}
return response;
}

Lascia un commento