Sunteți pe pagina 1din 20

Ministerul Educaţiei, Tineretului şi Sportului al Republicii Moldova

Universitatea Tehnică a Moldovei

Departamentul Informatică și Ingineria Sistemelor

RAPORT
IoT Proiect
TEMA: “Statie meteo Wireless”

Au elaborat:
st. gr. CRI-191M
Dutcovici Radu
Mamolea Igor
Cervac Petru

A verificat: l.u., A.Martiniuc

Nota:

Chisinau 2020
1. Introducere
Sursa de inspiratie pentru acest proiect o constituie vizita la statia
meteorologica din mun.Chisinau. Consider ca este necesar ca fiecare dintre noi
sa cunoasca conditiile atmosferice ale orasului in care locuieste.

Statiile meteo in perioada actuala reprezinta un domeniu important in


prognozarea vremii folosind tehnici de masurari combinatorice probabilistice cu
marje de eroare mici. Acestea sunt utilizate pe scara larga impunindu-se din ce in
ce mai mult in aplicatiile industriale. Majoritatea statiilor meteo sunt constituite
din mai multe echipamente electronice de diferite tipuri. Orice aparat care
masoara, stocheaza, comanda, calculeaza sau afiseaza informatii este o potentiala
gazda pentru un microcontroler. Aceasta lucrare urmrareste facilitatea masurarii
temperaturii si umiditatii, in cazul unei statii meteorologice este nevoie de apelat
la ajutorul unor senzori sensibili si, totodata, robusti, prin folosirea unor module
de dezvoltare Arduino.
Datorita dimensiunilor reduse a componentelor, utilizarea lor in practica este
facilitata, spatiul de actionare a acestora nereprezentint o problema, si totodata,
impreuna cu dimensiunile reduse are loc si reducerea costurilor pentru fabricarea
acestora. Unde este o industrie in continua dezvoltare, si cu preturi avantajoase
pe piata, fiind accesibile o varietate mare de componente.

1.1 Scopul Proiectului

Scopul acestui proiect este de a transmite informatii despre starea vremii in


timp real, prin internet, si accesarea acestora remote prin intermediul unei
aplicatii desktop/smartphone.Ușurează munca utilizatorului deoarece
transmiterea wireless elimină necesitatea unei interfețe separate de transmitere a
datelor și a unui cablu de conectare.

1.2 Obiective:
- Realizarea unui concept(stație meteo) pentru determinarea mediei
temperaturii și umidității fără a avea nevoie de un cablu conector de
transmitere a datelor
- Implementarea unei placuțe de achiziție pentru a putea controla stația
meteo de la distanță
- Implementarea unei interfețe grafice pentru a afișa datele prin intermediul
conexiunii bluetooth

2. Actualitatea problemei:
Actualitatea problemei consta in incalzirea globala care este o provocare de
mileniu. Populatia de pe glob este ameninta, unde se stagneaza dezvoltarea
economica siprosperitatea globala .

Proiectul a fost conceput pentru determinarea mediei temperaturii și umidității ,


fără a avea nevoie de un cablu conector de transmitere a datelor, pe o rază de
maxim 10 m, acest lucru este benefic utilizatorului pentru a afla informații
meteo în timp real. Proiectul final va include o stație meteo de la distanță(
plăcuța de achiziție) și o interfață grafică pentru a afișa datele prin intermediul
conexiunii WiFi. Cea de la distanță conține 2 senzori integrati, unul de
temperatură și unul de umiditate, iar informațiile generate de cei 2 senzori vor fi
trimise la stația severul central Blynk ce ne ofera un suport pe platforma mobila
pentru monitorizarea datelor obtinute.

4. Rolul și încadrarea în IoT


Acest proiect este legat de pașii inițiali din lumea IoT, aici vom interfața
senzorul DHT22 cu NodeMCU sau alte plăci bazate pe ESP8266 și vom primi
date pe internet cu care vom folosi aplicația Blynk.
Blynk a fost proiectat pentru Internet of Things. Poate controla hardware-ul de
la distanță, poate afișa datele senzorului, poate stoca date, vizualiza și face
multe alte lucruri interesante.

Există trei componente majore în platformă:

1. Aplicația Blynk - ne permite să creăm interfețe uimitoare pentru


proiectele dvs. folosind diverse widgeturi pe care le oferim.
2. Blynk Server - responsabil pentru toate comunicațiile dintre smartphone
și hardware. Puteți utiliza Cloudul nostru Blynk sau rula serverul dvs.
privat Blynk local. Este open-source, poate gestiona cu ușurință mii de
dispozitive și poate fi chiar lansat pe un Raspberry Pi.
3. Bibliotecile Blynk - pentru toate platformele hardware populare - permit
comunicarea cu serverul și prelucrați toate comenzile de intrare și de
ieșire.

5. Sisteme existente și analogi existenți


Pe piata exista mai multe solutii analogice cu aceasta solutie propusa de
noi.
Statiile wireless existente sunt dotate cu mai multi transmitatori (senzori) si
receptori (console). Avantajul este ca nu mai e nevoie sa te gandesti cum sa le
legi cu cabluri, ci doar sa te incadrezi in distanta de transmisie, care poate fi
intre 30 m si 300 m. O alta conditie este ca intre componente sa nu existe ziduri,
tavane sau alte obiecte care ar putea scadea puterea semnalului. Numeroase
pareri despre cele mai bune statii meteo sustin ca aceste modele sunt potrivite
pentru aplicatiile casnice, pentru a sti cum sa te pregatesti atunci cand iesi
dimineata din casa, pentru activitatile agricole, dar si pentru a afla care e
temperatura si nivelul de umiditate din diferite camere.
Dezavantajul acestor solutii existente ar fi faptul ca distanta de transmisie poate
fi doar intre 10 - 30 m, ceea ce limiteaza intr-un fel sau altul aria de acoperire a
statiei.
6. Caietul de sarcini pentru sistemul proiectat
Pentru proiectarea unei statii meteo Wireless este nevoie de elaborarea unui plan
de dezvoltare a actiunilor fiecarei persoane implicate in proiect. Pentru
elaborarea proiectului au fost necesare 20 zile lucratoare .
Tabelul 1.1 Planificarea sarcinilor de proiect si duratele
efectuarii acestora
Nr. Titlul sarcinii Durata Executantul
d/o activitatil
or, zile
I II III IV
1 3 MI,DR,CP
Elaborarea planului de lucru

2 1 DR
Introducerea schimbarilor in proiect

3 2 MI,CR,CP
Studierea literaturii pentru realizarea
sarcinilor tehnice

4 3 MI
Analiza si selectarea modulelor
electronice

5 1 CP
Achizitionarea modulelor

6 2 DR,MI
Proiectarea si optimizarea functionala
a statiei meteo wireless

7 4 MI
Implimentarea softului (a
programului logic de lucru a
dispozitivului)

8 1 DR
Testarea functionala hard/soft
9 2 CP
Testarea integrala a statiei meteo
wireless si diminuarea erorilor

10 1 MI,DR,CP
Prezentarea produsului

Indrumar:
MI - Mamolea Igor
DR - Dutcovici Radu
CP - Cervac Petru

7. Sistemul implementat spre proiectare: Statie meteo Wireless

7.1 Arhitectura generala a sistemului


Statia meteo Wireless a fost conceputa pentru determinarea mediei
temperaturii și umidității , fără a avea nevoie de un cablu conector de
transmitere a datelor, pe o rază de maxim 10 m, acest lucru fiind este benefic
utilizatorului pentru a afla informații meteo în timp real. Proiectul final va
include o stație meteo de la distanță( plăcuța de achiziție) și o interfață grafică
pentru a afișa datele prin intermediul conexiunii bluetooth. Cea de la distanță
conține 1 senzor, de temperatură și umiditate, iar informațiile generate de acel
senzor v-a fi trimisa la stația de bază și anume sistemul de operare.

7.2 Descrierea componentelor sistemului

Componentele sistemului:

1. DHT22 - senzor digital de temperatură și umiditate. DHT22 este un


senzor digital de temperatură și umiditate low cost cu o interfață digitală
cu un singur fir. Utilizează un senzor de umiditate capacitiv și un
termistor pentru a măsura aerul din jur și scoate un semnal digital pe
pinul de date (nu este nevoie de ace de intrare analogici), analizind
vaporii de apa prin masurarea rezistentei electrice dintre doi electrozi.
Este calibrat și nu necesită componente suplimentare, astfel încât să aveți
dreptul să măsurați umiditatea și temperatura relativă.

Figura 1: Senzor de temperatura si umiditate DHT22

2. Wemos D1 mini - Modulul WeMos D1 este cel mai avansat din întreaga
linie de module ESP8266 până în prezent, inima plăcii este modulul
compact ESP-12E. Acest modul se conectează la USB fără placi
suplimentare și convertoare USB, are un conector micro USB și un cip
USB CH340G. Modulul are multe compilatoare și este, de asemenea,
suportat în mediul de dezvoltare IDE Arduino. Modulul Wemos WiFi
este utilizat în mod activ în comunitatea DIY și de către producători,
pentru a crea internetul lucrurilor, în robotică, în monitorizarea de la
distanță etc.
Figura 2: Modul ESP8266 Adafruit HUZZAH

3. Breadboard - este o bază(panou) de construcție pentru prototiparea


electronică.

Figura 3: Breadboard

4. Jumper - este un fir electric, sau un grup de ele într-un cablu, cu un


conector sau un știft la fiecare capăt (sau uneori fără ele - pur și simplu
„înțepat”), care este folosit în mod normal. pentru a interconecta
componentele unei placi de pană sau a unui alt prototip sau circuit de
încercare, intern sau cu alte echipamente sau componente, fără lipire.
Figura 4: Jumpers

5. Baterie Externa - Bateria externă este un gadget destul de recent apărut


ce ține locul unui acumulator obișnuit. Bateria externă este un dispozitiv
ce se încarcă de la priză, laptop/PC sau chiar solar, iar mai apoi este
folosit că un acumulator extern de sine stătător cu o capacitate de 7200
mAh.

Figura 5: Power Bank Lithium Battery 7200 mAh

7.3 Descrierea platformei IoT utilizate


Blynk este o platformă care a fost proiectată pentru Internet of Things. Ea poate
controla hardware-ul de la distanță, poate afișa datele senzorului, poate stoca
date, vizualiza și face multe alte lucruri interesante.
Există trei componente majore în platformă:

1. Aplicația Blynk - vă permite să creați interfețe uimitoare pentru


proiectele dvs. folosind diverse widgeturi pe care le oferim.
2. Blynk Server - responsabil pentru toate comunicațiile dintre smartphone
și hardware. Puteți utiliza Cloudul nostru Blynk sau rula serverul dvs.
privat Blynk local. Este open-source, poate gestiona cu ușurință mii de
dispozitive și poate fi chiar lansat pe un Raspberry Pi.
3. Bibliotecile Blynk - pentru toate platformele hardware populare - permit
comunicarea cu serverul și prelucrați toate comenzile de intrare și de
ieșire.

Figura 6: Platforma Blynk

7.3.1 Caracteristicile Blynk


API și UI similare pentru toate dispozitivele hardware și dispozitive acceptate

Conexiune la cloud folosind:

Wifi
Bluetooth și BLE
Ethernet

USB (serial)

GSM

Set de widget-uri ușor de utilizat

Manipulare directă a pinului fără scriere de cod

Ușor de integrat și de adăugat funcționalități noi folosind pinii virtuali

Monitorizarea datelor de istoric prin widgetul SuperChart

Comunicare de la dispozitiv la dispozitiv folosind Bridge Widget


Trimiterea de e-mailuri, tweet-uri, notificări push, noi funcții sunt adăugate în
mod constant.

De ce avem nevoie pentru Blynk?

1. Hardware.
Un Arduino, Raspberry Pi sau un kit de dezvoltare similar.

Blynk lucrează pe Internet. Aceasta înseamnă că hardware-ul pe care îl alegeți


ar trebui să se poată conecta la internet. Unele dintre plăci, cum ar fi Arduino
Uno, vor avea nevoie de un Ethernet sau WiFi Shield pentru a comunica, altele
sunt deja activate pe Internet: precum ESP8266, Raspberry Pi cu dongle WiFi,
Parton Photon sau SparkFun Blynk Board. Dar chiar dacă nu aveți un scut, îl
puteți conecta prin USB la laptop sau desktop. Ce este fain, este că lista
hardware-ului care funcționează cu Blynk este uriașă și va continua să crească.

2. Un smartphone.

Aplicația Blynk este un constructor de interfață bine proiectat. Funcționează atât


pe iOS cât și pe Android. Ce ofera o gama larga de instrumente Soft pentru
crearea si proiectarea interfetelor grafice pe platforma . Este usor de utilizat si
depanat.
8. Proiectarea și implementarea sistemului(statiei meteo wireless)
Pentru proiectarea si implementarea statiei meteo Wireless vom uni toate
componentele pe Board, vom scrie codul pentru ca sa putem primi
rezultatele(datele) si de asemenea vom utiliza platforma IoT Blynk pentru
vizualizarea datelor.

8.1 Proiectare Hardware


Pentru proiectarea hardware este utilizat un senzor de temperatura si
umiditate DHT 22 , ESP8266, Acumulator Lithium Polimer, suport si fire de
conexiune. DHT22 se utilizeaza pentru transmiterea datelor de umiditate si
temperatura . ESP8266 este utilizat pentru partea logica de executie a
programului software elaborat si conexiunea la reteaua locala pentru
transmiterea datelor catre serverele externe disponibile , in cazul nostru se
utlizeaza reteaua Blynk.com.

GHD -> GND


D4 -> DatOut

VCC -> VCC


Figura 7,8,9: Proiectarea Hardware

8.2 Proiectare Software


La implimentarea softului ca scop a fost realizarea partii de conexiune a
modulului ESP8266 cu introducerea in cod a parametrilor de conexiune SSID si
parola retelei Wifi personale. Algoritmul de functionare a aplicatiei este
obtinerea datelor

Codul sursa: IoT.ino


#define BLYNK_PRINT Serial
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <SimpleTimer.h>
char auth[] = "Ibt1gCLOhgcpEbqQyi-CKaE6keDg_5am";
char ssid[] = "yourWiFI-SSID";
char pass[] = "yourPassword";
#define DHTPIN 2

//#define DHTTYPE DHT11 // DHT 11


#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;

void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();

if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

Blynk.virtualWrite(V5, h); //V5 is for Humidity


Blynk.virtualWrite(V6, t); //V6 is for Temperature
}

void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
timer.setInterval(1000L, sendSensor);
}

void loop(){
Blynk.run();
timer.run();
}

Libraria utilizata :
#ifndef BlynkSimpleEsp32_h
#define BlynkSimpleEsp32_h

#ifndef ESP32
#endif
#define BLYNK_SEND_ATOMIC
#include <BlynkApiArduino.h>
#include <Blynk/BlynkProtocol.h>
#include <Adapters/BlynkArduinoClient.h>
#include <WiFi.h>

class BlynkWifi
: public BlynkProtocol<BlynkArduinoClient>
{
typedef BlynkProtocol<BlynkArduinoClient> Base;
public:
BlynkWifi(BlynkArduinoClient& transp)
: Base(transp)
{}

void connectWiFi(const char* ssid, const char* pass)


{
BLYNK_LOG2(BLYNK_F("Connecting to "), ssid);
WiFi.mode(WIFI_STA);
if (pass && strlen(pass)) {
WiFi.begin(ssid, pass);
} else {
WiFi.begin(ssid);
}
while (WiFi.status() != WL_CONNECTED) {
BlynkDelay(500);
}
BLYNK_LOG1(BLYNK_F("Connected to WiFi"));

IPAddress myip = WiFi.localIP();


BLYNK_LOG_IP("IP: ", myip);
}

void config(const char* auth,


const char* domain = BLYNK_DEFAULT_DOMAIN,
uint16_t port = BLYNK_DEFAULT_PORT)
{
Base::begin(auth);
this->conn.begin(domain, port);
}

void config(const char* auth,


IPAddress ip,
uint16_t port = BLYNK_DEFAULT_PORT)
{
Base::begin(auth);
this->conn.begin(ip, port);
}

void begin(const char* auth,


const char* ssid,
const char* pass,
const char* domain = BLYNK_DEFAULT_DOMAIN,
uint16_t port = BLYNK_DEFAULT_PORT)
{
connectWiFi(ssid, pass);
config(auth, domain, port);
while(this->connect() != true) {}
}

void begin(const char* auth,


const char* ssid,
const char* pass,
IPAddress ip,
uint16_t port = BLYNK_DEFAULT_PORT)
{
connectWiFi(ssid, pass);
config(auth, ip, port);
while(this->connect() != true) {}
}

};

static WiFiClient _blynkWifiClient;


static BlynkArduinoClient _blynkTransport(_blynkWifiClient);
BlynkWifi Blynk(_blynkTransport);
#include <BlynkWidgets.h>
#endif

8.3 Testarea și Rezultatele


Pentru testarea rezultatelor este nevoie de platforma arduino IDE unde
trebuie sa recunoasca dispozitivul WiFI ESP8266. Acest lucru se poate face
accesind meniul Tools->Board->Adafruit Feather HUZZAH ESP8266 cu
frecventa de 80 MHz. Tot din meniul programului trebuie sa selectam corect
portul USB la care este conectat dispozitivul nostru. Dupa recunoasterea
dispozitivului urmeaza incarcarea codului sursa implimentat pentru testare.

Pentru aceasta este nevoie de conectat la reteaua locala WiFi cu SSID-ul


specificat, ulterior se genereaza o adresa IP publica pe serverul blynk-
cloud.com:80. Cu ajutorul acestor senzori se poate face conversia liniara
temperatura-tensiune, folosind senzor digital de temperatura si umiditate, care
are incorporat un senzor de umiditate capacitiv si un termistor, pentru masurarea
folosim conectiunea cu pinul digital D4 al modulului ESP8266. Unde se da un
semnal pe pinul de date cu un interval de o secunda (1 sec.) .

Prin utilizarea aplicatiei Android Blynk au fost setate 3 componente grafice


pentru reprezentarea datelor obtinute de la senzori, oferind date despre
temperatura / umiditatea mediului in care se afla dispozitivul. De asemenea
avem posibilitatea de a monitoriza datele obtinute la anumite ore , zile,
saptamini, luni. De unde se poate de observat cu exactitate care au fost datele
obtinute mai anterior.

9. Recomandari pentru dezvoltarea ulterioara a proiectului


Pentru dezvoltarea ulterioara a proiectului se propune utilizare unui display
de afisaj pentru temperatura si umiditatea aerului la senzorul extern si el prezent
si bine izolat de calamitatile naturale externe. Astfel este un produs care poate fi
folosit atit in mediu interior, cit si exterior.

Ar fi bine venit de precizat raza de actiune minimala cu folosirea mai multor


senzori maxim 3 senzori si montarea lor pe perete in interior si exterior.

Adaugarea unui senzor care masoara viteza vintului, iar cu datele de


temperatura si umiditate obtinute de elaborat un algoritm de prezicere a
prognozei meteo pentru zilele urmatoare in regiunea in care se afla dispozitivul.
10.Concluzii:
Acest proiect realizat permite transmiterea informatiei despre starea vremii in
timp real, prin intermediul internettului, utilizand platforma Blynk. De
asemenea s-a implementat o placuta de achizitie pentru a putea controla statia
meteo de la distanta. In final s-au realizat toate scopurile si obiectivele bine puse
la punct si speram ca acest proiect ne v-a ajuta mai mult sa gasim drumul in
lumea interesanta a electronicii si IoT.
11. Bibliografie
● http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
● https://cdn-
shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sens
or+AM2302.pdf
● https://cdn-shop.adafruit.com/datasheets/TSL2561.pdf
● http://cs.curs.pub.ro/wiki/pm/_media/lab/lab1/hd44780_datasheet.pdf
● https://blynk.io/
● https://docs.wemos.cc/en/latest/d1/d1_mini.html
● https://cityos-air.readme.io/docs/4-dht22-digital-temperature-
humidity-sensor