Arduino: Progetto Multi Sensore

18 Febbraio 2015
Arduino: Progetto Multi Sensore

Ciao a tutti!

In questo articolo vi farò vedere come realizzare un progetto che comprenda molti sensori.

Il progetto che stiamo per realizzare avrà le seguenti funzioni:

– Leggere temperatura e umidità e mostrarla sul display LCD

– Rilevare movimenti

– Accendere/Spegnere la luce in base alla luminosità

– Mostrare su dei LED la temperatura e far suonare un buzzer se la temperatura supera i 35°C

INIZIAMO!!

Prima di tutto il materiale di cui abbiamo bisogno è:

– Arduino Uno

– Breadboard (basetta)

– 12 LED

– 3 resistori da 220Ohm

– 2/3 resistori da 1KOhm

– Una fotoresistenza

– Un buzzer

– Un sensore di umidità e temperatura DHT11

– Un sensore di movimento

– Un display LCD 16×02

Montiamo il circuito come descritto nell’immagine seguente:

Cattura di schermata (12)

Poi passiamo al caricamento dello sketch:

[c]
// Created by //
// Alessio Bigini 2015 //
// https://alessiobigini.it //
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int buzzer = 11;
int led = 8;
int led1 = 6;
int tiltPin = 5;
int ledtilt = 4;
void setup()
{
Serial.begin(9600);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(tiltPin, INPUT);
pinMode(ledtilt, OUTPUT);
lcd.init();
lcd.backlight();
dht.begin();
lcd.print(" Alessio Bigini");
lcd.setCursor(0, 1);
lcd.print("");
delay(2500);
}
void loop()
{
int h = dht.readHumidity(); //Leggo l’umidità
int t = dht.readTemperature(); //Leggo la temperatura
lcd.setCursor(0, 0); //Stampo a schermo la temperatura e l’umidità
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Umidita’: ");
lcd.print(h);
lcd.print("%");
if (t < 18)//Temperatura inferiore a 18°C
{
digitalWrite(12, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
noTone(buzzer);
}
if (t > 18 && t < 35)//Temperatura superiore a 18°C e inferiore a 35°C
{
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(12, LOW);
noTone(buzzer);
}
if (t > 35)//Temperatura superiore a 35°C
{
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(12, LOW);
tone(buzzer, 392);
}
int sensore = digitalRead(tiltPin);
if ( sensore == HIGH )
digitalWrite(ledtilt, HIGH);
else
digitalWrite(ledtilt, LOW);
int luce = analogRead (A0); //porta analogica utilizzata
if (luce < 100) //condizione
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
if (luce < 100) //condizione
digitalWrite(led1, HIGH);
else
digitalWrite(led1, LOW);
}

[/c]

Una volta caricato lo sketch divertitevi a modificare il progetto aggiungendo sensori ecc.

A seguire alcune foto del progetto:

WP_20150218_004 WP_20150218_003 WP_20150218_009 WP_20150218_008 WP_20150218_006

 

Posted in ArduinoTags:
Related Posts

Ciao a tutti, oggi andremo a vedere come creare un Rilevatore di Fiamma con Arduino. Tramite questo sensore, in grado di rilevare la presenza di fiamme attorno ad esso, potrai creare un sistema che ti avvisa in caso di fiamme, spendendo poco e con…

Ciao a tutti, oggi andremo a vedere come utilizzare il Sensore di Tocco, o Tap Sensor. Questo sensore permette di rilevare per esempio il battito di una mano su un tavolo o il bussare ad una porta e ci può tornare utile per alcuni…

Ciao a tutti, in questo nuovo articolo andremo a recensire un Kit Arduino per Principianti di Elegoo. Il packaging è ottimo, con una custodia in plastica, separatori per dividere i componenti tra di loro, in modo da tenere ordinato ed a portata di mano…

5 Comments
  • DAMIANO

    il sensore di movimento eè del tipo :

    TILT inclinazione SW-520D

    21:27 1 Ottobre 2015 Rispondi
    • DevAlessioBigini

      Esatto

      17:46 2 Ottobre 2015 Rispondi
      • DAMIANO

        è tutto perfetto pero nella verifica mi da solo un piccolo problema mi dice :
        #include “DHT.h” //Libreria sensore
        compilation terminated
        exit status 1
        errore durente la compilazione

        pero guardando su internet io una libreria del dht l ho trovata e l ho installata e non capisco dove sto sbagliando sara sicuramente un errore di distrazione….non so se magari potevi aiutarmi

        11:44 9 Febbraio 2016 Rispondi
  • nickelix

    è un progetto vecchio ma per me molto interessante (grazie); ho un dubbio per voi sicuramente elementare ma.. nel caso di sensori non collegati da cavi ma da un sistema wireless bisogna utilizzare più arduino uno? grazie!

    9:50 31 Agosto 2017 Rispondi
    • Ciao, potresti creare una rete con un ESP8266 o con un modulo Wi-Fi, oppure utilizzare più Arduino Uno e/o ATTiny85, tutto dipende dal tipo di sensori e dalla difficoltà di calcolo, A presto!

      16:07 3 Settembre 2017 Rispondi
Write a comment