This shows you the differences between two versions of the page.
pm:prj2021:agrigore:smartplug [2021/05/23 22:28] alexandru.maican |
pm:prj2021:agrigore:smartplug [2021/06/01 17:10] (current) alexandru.maican [Componente] |
||
---|---|---|---|
Line 6: | Line 6: | ||
* Închiderea/Deschiderea circuitului folosind comenzi vocale date către Amazon Alexa, | * Închiderea/Deschiderea circuitului folosind comenzi vocale date către Amazon Alexa, | ||
* Închiderea/Deschiderea circuitului în funcție de curentul care trece prin circuit, | * Închiderea/Deschiderea circuitului în funcție de curentul care trece prin circuit, | ||
- | * Iluminarea prizei cu o bandă de led-uri adresabile, în funcție de puterea curentului, | + | * Iluminarea unui LED RGB, în funcție de puterea curentului, |
* Protecție pentru supratensiune. | * Protecție pentru supratensiune. | ||
===== Descriere generala ===== | ===== Descriere generala ===== | ||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- | {{:pm:prj2021:agrigore:schema_bloc_smart_plug.png?nolink&500 |}} | + | {{:pm:prj2021:agrigore:schema_bloc_smart_plug.jpg?nolink&500 |}} |
==== Componente ==== | ==== Componente ==== | ||
- Arduino MKR WiFi 1010 - folosit ca modul de control | - Arduino MKR WiFi 1010 - folosit ca modul de control | ||
Line 16: | Line 16: | ||
- Amazon Echo Dot - folosit pentru receptarea comenzilor vocale și transmiterea unei instrucțiuni către Arduino | - Amazon Echo Dot - folosit pentru receptarea comenzilor vocale și transmiterea unei instrucțiuni către Arduino | ||
- Breadboard - pentru realizarea circuitelor | - Breadboard - pentru realizarea circuitelor | ||
- | - RGB Strip - pentru iluminarea variabilă | + | - RGB LED- pentru iluminarea variabilă |
- | - MOSFET - pentru a limita voltajul trimis către banda RGB | + | |
- Priză obișnuită - punctul de start al proiectului | - Priză obișnuită - punctul de start al proiectului | ||
- | - Modul releu de protecție supratensiune | + | - Senzor ACS712 pentru determinarea puterii folosite |
- Releu - pentru cuplarea și decuplarea circuitului | - Releu - pentru cuplarea și decuplarea circuitului | ||
- Fire - pentru realizarea cricuitelor | - Fire - pentru realizarea cricuitelor | ||
Line 47: | Line 46: | ||
A fost folosit un singur releu dintr-un modul de 2. La cei 2 pini ai jonctiunii normally closed (NC) de pe releu sunt conectate linia pozitivă ce vine de la rețeaua electrică și cea pozitivă conectată la priză. Releul este alimentat cu 5V de la linia pozitivă de breadboard, iar ground-ul este conectat la linia negativă de pe breadboard. Pin-ul de input este conectat la pin-ul 5 de pe Arduino. | A fost folosit un singur releu dintr-un modul de 2. La cei 2 pini ai jonctiunii normally closed (NC) de pe releu sunt conectate linia pozitivă ce vine de la rețeaua electrică și cea pozitivă conectată la priză. Releul este alimentat cu 5V de la linia pozitivă de breadboard, iar ground-ul este conectat la linia negativă de pe breadboard. Pin-ul de input este conectat la pin-ul 5 de pe Arduino. | ||
+ | |||
+ | == LED RGB == | ||
+ | |||
+ | LED-ul este conectat prin rezistențe de 220 de ohmi la pinii 2 (RED), 3 (BLUE) și 4 (GREEN). Pin-ul liber al LED-ului este conectat la linia negativă de pe breadboard. | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | == Integrarea cu Amazon Alexa == | ||
+ | |||
+ | Pentru a controla circuitul folosind Amazon Alexa, a fost folosită platforma Arduino IoT Cloud, unde | ||
+ | au fost adăugate variabile pentru controlul luminii și o variabilă pentru controlul releu-ului. Aceste varibile pot fi interpretate de Alexa și furnizând comenzi în limbaj natural, se pot modifica. | ||
+ | |||
+ | == Protecția pentru supratensiune == | ||
+ | |||
+ | Valoarea măsurată de senzorul ACS712 este citită de pe pin-ul A0 folosind Analog Read. Intrucât senzorul oferă o măsura sub forma de undă, se citesc valorile de la acest pin într-un interval de 1 secundă și se rețin valorile minime și valorile maxime. Pentru a obține tensiunea între peak to peak, se înmulțește diferența dintre valoarea maximă și valoarea minimă cu valoare tensiunii de alimentare (5V) și se împarte la 1024 (valoarea maximă ce poate fi citită pe pin. Se calculează tensiunea RMS prin împărțirea la 2 și înmulțirea cu 0.707. Intensitatea se calculează din valoarea tensiunii înmulțită cu un factor dat de sensitivitatea senzorului. Puterea folosită de consumator este dată de produsul dintre tensiunea RMS și intensitatea RMS calculată anterior. S-a ales valoarea de 400W ca fiind limita superioară la care se decuplează circuitul. | ||
+ | |||
+ | == Controlul LED-ului RGB == | ||
+ | |||
+ | Culoarea LED-ului poate fi schimbată folosind comenzi vocale doar când releul este deschis, deci în momentele în care priza nu furnizează curent electric către consumatori. Când releu este închis, iar circuitul furnizează curent către consumatori, culoarea led-ului este determinată în funcție de puterea măsurată de senzorul ACS712. Pentru aceasta am setat 5 trepte pentru care diferă distribuția de culori pe componentele de culoare. | ||
+ | |||
+ | == Controlul Releului == | ||
+ | |||
+ | Pentru a controla modulul cu releu se folosește o varibilă ce poate fi modificată folosind Alexa. Când este setată pe true, circuitul se deschide, decuplând alimentarea prizei. Când este setată pe false, circuitul este închis, iar priza poate alimenta un consumator. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Priza inteligentă poate fi controlată cu ajutorul Amazon Alexa, are un modul de protecție pentru supratensiune și în plus LED-ul RGB poate fi controlat independent de priză. | ||
+ | |||
+ | Imagini: | ||
+ | |||
+ | {{:pm:prj2021:agrigore:smart_plug_1.jpeg?nolink&500 |}} | ||
+ | {{:pm:prj2021:agrigore:smart_plug_2.jpeg?nolink&500 |}} | ||
+ | {{:pm:prj2021:agrigore:smart_plug_3.jpeg?nolink&500 |}} | ||
+ | |||
+ | |||
+ | Video: | ||
+ | |||
+ | [[https://youtu.be/qoISqee3NcY|https://youtu.be/qoISqee3NcY]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Este foarte utilă dezvoltarea proiectelor de tipul celor cerute la cursul de Proiectarea cu Microprocesare întrucât se poate observa cu ușurință utilitatea lor. De asemenea, astfel de proiecte au rezultate ușor de observat și pot fi folosite și în viața de zi cu zi. | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | Am adăugat o arhivă ce conține codul sursă, imaginile cu rezultatele finale și schema proiectului. | ||
+ | |||
+ | {{:pm:prj2021:agrigore:smartplug_alexandrumaican.zip|Arhivă Alexandru Maican}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | |||
+ | * **23 aprilie 2021** alegere temă | ||
+ | * **24 aprilie 2021** comandare componente | ||
+ | * **26 aprilie 2021** livrare componentelor, mai puțin senzorul ACS712 și modulul cu releu | ||
+ | * **30 aprilie 2021** încercând să testez funcționalitățile cloud utilizând Arduino IDE am observat că nu există încă suport pentru librările de WiFi necesare pentru integrarea cu Arduino IoT Cloud, așă că am avut de așteptat până când s-a rezolvat problema compatibilității | ||
+ | * **3 mai 2021** livrarea modului cu releu și a senzorului de curent ACS712 | ||
+ | * **8 mai 2021** testarea funcționalităților cloud realizând conectarea led-ului RGB și controlând culoarea acestuia folosind Amazon Alexa | ||
+ | * **15 mai 2021** testarea senzorului ACS712 pentru a măsura puterea pe care o furnizam prin intermediul unui multimetru | ||
+ | * **22 mai 2021** scrierea codului complet pentru implementarea proiectului | ||
+ | * **23 mai 2021** asamblarea întregului circuit, scrierea documentației | ||
===== Bibliografie ===== | ===== Bibliografie ===== | ||
- | {{:pm:prj2021:agrigore:smart_plug.pdf|}} | ||
- | [[pm:prj2021:agrigore:smartplug|]] | + | [[pm:prj2021:agrigore:smartplug|Smart Plug]] |
+ | |||
+ | [[https://www.arduino.cc/en/IoT/HomePage|Arduino IoT]] | ||
+ | |||
+ | [[https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/smartplug?do=export_pdf|Export Page as PDF]] | ||