Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
INTRODUCERE
Canal Youtube::::
Acest proiect se bazează pe microcontrolerul Atmega16 al Atmel ca principal creier pentru calcul.
NRF24L01 + Modulul de comunicație fără fir este utilizat pentru transmisia de date fără fir.
Astăzi avem sute și mii de contoare de energie instalate într-un complex de apartamente, centru comercial, școală, universitate, pensiuni și multe altele. Problema apare atunci când contorul este citit de un angajat pentru a calcula factura pe contor de energie. Este nevoie de multă forță de muncă și costuri.
Aici am venit cu un proiect simplu care va economisi forță de muncă și costuri prin transmiterea automată a numărului de energie al mai multor contoare de energie către furnizorul gazdă sau de servicii.
Am preluat datele de la contorul Three Energy și am transmis datele către receptor, care a calculat sarcina și consumul total pe metru.
Dacă încărcarea depășește nivelul permis, atunci pornește un buzzer.
Datele sunt salvate în partea expeditorului, astfel încât nu se produc pierderi de date dacă receptorul este oprit sau conectivitatea se pierde.
Iată Video-ul de lucru.
Diferitele componente sunt:
- Contor de energie X 3
- NRF24L01 X 2
- Atmega16 X 2
- Optocuplor X 3
Pasul 1: Configurarea contorului de energie
1. Deschideți mai întâi contorul de energie
2. Tăiați doar terminalul catodic al LED-ului Cal
3. Lipiți 2 fire pe cele 2 capete ale LED-ului.
4. Conectați catodul LED-ului la Pin-ul Opto-cuplajului (MCT2E) și celălalt capăt al LED-ului la Pin-ul Opto-cuplatorului
5. Conectați pinul 4 al opto-cuplajului la un fir negru și Pin5 la firul maro. Conectați firul negru la pământul plăcii de circuit pentru proiectele de citire a contorului de energie preplătit sau a contorului automat. Sârmă Brown transportă impulsul de ieșire.
6. Conectați sursa de alimentare și încărcați conform imaginii.
Pasul 2: Algo de bază pentru calcul
Aici contorul este interfațat cu microcontrolerul prin impulsul care este mereu intermitent pe contor. În plus, impulsul este calculat în funcție de perioada intermitentă, folosind acest principiu, l-am calculat pentru o unitate și, în consecință, ce sarcină va fi pentru o unitate.
După 0,3125 wați, energia folosește indicatorul LED (calibrare) clipește. Înseamnă că dacă folosim un bec de 100 wați pentru un minut, pulsul va clipi de 5,3 ori într-un minut. Și acest lucru poate fi calculat folosind formula dată.
Puls = (Rata de impuls a contorului * watt * 60) / (1000 * 3600)
Dacă pulsul contorului este de 3200 imp și wattul utilizat este 100, atunci avem
Puls = (3200 * 100 * 60) / (1000 * 3600)
Puls = 5,333333333 pe minut
Dacă 5.3333333333 pulsuri au apărut într-un minut, atunci într-o oră vor apărea impulsuri..
Puls = 5,3333333333 * 60 Puls = ~ 320 ~ 320 Pulsurile vor apărea într-o oră
Deci, într-o oră becul de 100 de wați a consumat 100 de wați de energie electrică și aproape 320 de impulsuri clipesc.
Acum putem calcula un impuls electric consumat în wați
Un impuls (watt) = 100 / 320
Un impuls (watt) = 0,3125
Înseamnă că 0.3125 wați electricitate au consumat un singur impuls.
Acum Unități Unități = (un impuls de energie (electricitate)) * impulsuri / 1000
Dacă Un impuls = 0,3125 wați Impulsuri în 10 ore = 3200
Apoi, unitatea va fi unitate = (0,3125 * 3200) / 1000 unitate = 1 înseamnă, o unitate în 10 ore pentru un bec de 100 wați.
Acum, să presupunem că o rată unitară este de 7 rupii, atunci pentru un singur impuls costul va fi
Costul unui singur impuls = (7 * energia unui impuls consumat) / 1000
Costul unui singur impuls = (7 * 0,3125) / 1000
Costul unui singur impuls = 0,0021875 Rupie
Pasul 3: Nrf24L01 (credit către
Studiază această legătură
Modulul nRF24L01 este un modul RF minunat, care funcționează pe banda de 2, 4 GHz și este perfect pentru comunicații wireless într-o casă, deoarece va pătrunde chiar și pe pereții groși de beton. NRF24L01 face toate programările dificile și chiar are o funcție pentru a verifica automat dacă datele transmise sunt primite la celălalt capăt. Există câteva versiuni diferite ale cipurilor familiei nRF și toate par să funcționeze într-un mod similar. De exemplu, am folosit modulul nRF905 (433MHz) cu aproape același cod pe care îl folosesc pe nRF24L01 și nRF24L01 + fără probleme. Aceste module mici au o gamă impresionantă, cu unele versiuni care gestionează comunicarea de până la 1000 m (vedere liberă) și până la 2000 m cu o antenă biquad.
nRF24L01 versus nRF24L01 +
Versiunea (+) este noua versiune actualizată a cipului și acceptă o rată de date de 1 Mbps, 2 Mbps și un „mod pe distanță lungă” de 250 kbps, care este foarte util atunci când doriți să extindeți durata de difuzare. pe care le-am folosit în postările mele anterioare) acceptă doar o rată de date de 1 Mbps sau 2 Mbps. Ambele modele sunt compatibile între ele, atâta timp cât sunt setate la aceeași rată de date. Deoarece ambele costă cam la fel (aproape nimic), vă recomand să cumpărați versiunea +!
Prima parte - Configurare Diferențe de conexiune Modulul nRF24L01 are 10 conectori și versiunea + are 8. Diferența este că versiunea + în loc să aibă două 3, 3 V și două GND, are masă (cea cu un pătrat alb în jurul său) și Alimentare de 3, 3 V, una lângă alta. Dacă schimbați modulul de la o versiune nouă + la una veche, asigurați-vă că nu uitați să mutați cablul GND în locul potrivit, altfel va scurta circuitul dvs. Iată o imagine a versiunii + (vedere de sus), unde puteți vedea toate conexiunile etichetate. Vechea versiune are două conexiuni GND în partea de sus, în loc de în colțul din dreapta jos.
Sursă de alimentare (GND și VCC) Modulul trebuie alimentat cu 3, 3 V și nu poate fi alimentat cu o sursă de alimentare de 5 V! Deoarece este nevoie de foarte puțin curent, folosesc un regulator liniar pentru a scădea tensiunea la 3, 3 V. Pentru a face lucrurile puțin mai ușoare pentru noi, cipul poate gestiona 5 V pe porturile I / O, ceea ce este frumos, deoarece ar fi Fiți dificil să reglați toate cablurile de I / O de pe cipul AVR. Chip Enable (CE) este utilizat atunci când trimiteți datele (transmițător) sau începeți să primiți date (receptor). Pinul CE este conectat la orice neutilizat Portul I / O de pe AVR și este setat ca ieșire (setați bitul la unul în registrul DDx unde x este litera portului.) Atmega88: PB1, ATtiny26: PA0, ATtiny85: PB3SPI Chip Select (CSN) De asemenea, cunoscut sub numele de selectați nu . Pinul CSN este, de asemenea, conectat la orice port I / O neutilizat de pe AVR și setat la ieșire. Pinul CSN este ținut în permanență ridicat, cu excepția momentului în care se trimite o comandă SPI de la AVR la nRF. Atmega88: PB2, ATtiny26: PA1, ATtiny85: PB4SPI Clock (SCK) Acesta este ceasul serial. SCK se conectează la pin-ul SCK de pe AVR. La fel ca Atmega88, acesta se conectează și la MOSI pe AVR și este setat ca ieșire. Pe AVR-uri care nu au SPI, precum ATtiny26 și ATtiny85 vin în schimb cu USI, iar foaia tehnică spune: „Modul cu trei fire USI este compatibil cu modul 0 și 1 al interfeței periferice seriale (SPI), dar nu are funcționalitatea pinului de selectare slave (SS). Cu toate acestea, această caracteristică poate fi implementată în software dacă este necesar „„ SS”la care se face referire este același cu„ CSN” Și după câteva cercetări, am găsit acest blog care m-a ajutat să aloc. Pentru a face USI să funcționeze SPI, am aflat că trebuie să conectez pinul MOSI de la nRF la pinul MISO de pe AVR și să-l setez ca ieșire.: PB3, ATtiny26: PB1, ATtiny85: PB1SPI Intrare master Ieșire sclavă (MISO sau MI) Aceasta este linia de date din sistemul SPI. cipul acceptă transferul SPI ca Atmega88, acesta se conectează la MISO pe AVR și acesta rămâne ca intrare. Acest lucru a funcționat numai atunci când am conectat pinul MISO de pe nRF la pinul MOSI de pe AVR și l-am setat ca intrare și activez pullup intern. Atmega88: PB4, ATtiny26: PB0, ATtiny85: PB0 Cerere de întrerupere (IRQ), dar un mod minunat de a ști când s-a întâmplat ceva cu nRF. de exemplu, puteți spune nRF-ului să seteze IRQ la un nivel ridicat atunci când este primit un pachet sau când o transmisie reușită este finalizată. Foarte util! Dacă AVR-ul dvs. are mai mult de 8 pini și un pin de întrerupere disponibil, v-aș sugera să conectați IRQ-ul la acesta și să configurați o cerere de întrerupere. Atmega88: PD2, ATtiny26: PB6, ATtiny85: -
Pasul 4: Diagrama de bază a conexiunii
Această diagramă de conexiune este o schemă
Pasul 5: Cod
Pentru COD, vizitați GitHub