Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
JOHDANTO
Youtube -kanava::::
Tämä projekti perustuu Atmelin Atmega16 -mikrokontrolleriin laskennan pääaivoina.
NRF24L01+ langatonta tiedonsiirtomoduulia käytetään langattomaan tiedonsiirtoon.
Nykyään meillä on satoja ja tuhansia energiamittaria asuntoihin, ostoskeskukseen, kouluun, yliopistoon, hostelleihin ja paljon muuta. Ongelma syntyy, kun työntekijä lukee mittarin laskeakseen laskun energiamittaria kohti. Se vaatii paljon työvoimaa ja kustannuksia.
Tässä olen keksinyt yksinkertaisen projektin, joka säästää työvoimaa ja kustannuksia lähettämällä automaattisesti useiden energiamittarien energian määrän isännälle tai palveluntarjoajalle.
Olen ottanut tiedot kolmesta energiamittarista ja lähettänyt tiedot vastaanottimelle, joka laski kuorman ja kokonaiskulutuksen metriä kohti.
Jos kuorma ylittää sallitun tason, summeri käynnistyy.
Tiedot tallennetaan lähettäjän puolelle, joten tietoja ei menetetä, jos vastaanotin sammutetaan tai yhteys katkeaa.
Tässä on työvideo.
Eri komponentit ovat:
- Energiamittari X 3
- NRF24L01 X 2
- Atmega16 X 2
- Optoerotin X 3
Vaihe 1: Energiamittarin asetus
1. Avaa ensin energiamittari
2. Leikkaa vain Cal -LEDin katodiliitin
3. Juotos 2 johtoa LED -valon kahteen päähän.
4. Liitä LED-katodi opto-liittimen (MCT2E) nastaan 1 ja LED-valon toinen pää opto-liittimen nastaan 2
5. Liitä optokytkimen nasta 4 mustaan johtoon ja nasta 5 ruskeaan johtoon. Liitä musta johto piirilevyn maahan projektien ennakkomaksuenergiamittarin tai automaattisen mittarinlukuprojekteja varten. Ruskea lanka siirtää pulssilähdön.
6. Kytke virtalähde ja kuorma kuvan mukaisesti.
Vaihe 2: Perusalgo laskemista varten
Tässä mittari on liitetty mikro -ohjaimeen pulssin kautta, joka vilkkuu aina mittarissa. Lisäksi pulssi lasketaan sen vilkkumisajan mukaan, tätä periaatetta käyttäen laskimme sen yhdelle yksikölle ja vastaavasti, mikä varaus yksiköstä tulee.
0,3125 watin energiankulutuksen jälkeen Mittarin LED (kalibroi) vilkkuu. Tarkoittaa, että jos käytämme 100 watin lamppua minuutin ajan, pulssi vilkkuu 5,3 kertaa minuutissa. Ja tämä voidaan laskea käyttämällä annettua kaavaa.
Pulssi = (Mittarin syke * wattia * 60) / (1000 * 3600)
Jos mittarin syke on 3200 imp ja wattia käytetään 100, meillä on
Pulssi = (3200 * 100 * 60) / (1000 * 3600)
Pulssi = 5,3333333333 minuutissa
Jos 5.3333333333 pulssia tapahtui minuutissa, yhden tunnin kuluttua pulsseja esiintyy.
Pulssi = 5.3333333333* 60 Pulssi = ~ 320 ~ 320 Pulsseja esiintyy tunnissa
Niinpä tunnissa 100 watin lamppu kulutti 100 wattia sähköä ja lähes 320 pulssia vilkkuu.
Nyt voimme laskea yhden watin kulutetun pulssisähkön
Yksi pulssi (wattia) = 100 / 320
Yksi pulssi (wattia) = 0,3125
Tarkoittaa 0,3125 wattia sähköä, joka kuluttaa yhden pulssin.
Nyt Yksiköt Yksikkö = (yksi pulssienergia (sähkö))* pulssia / 1000
Jos Yksi pulssi = 0,3125 wattia Pulssia 10 tunnissa = 3200
Sitten yksikkö on yksikkö = (0,3125 * 3200)/1000 yksikkö = 1 keino, yksi yksikkö 10 tunnissa 100 watin lampulle.
Oletetaan nyt, että yksi yksikköhinta on 7 rupiaa, jolloin yhden pulssin hinta on
Yhden pulssin hinta = (7 * yksi kulutettu pulssienergia) / 1000
Yhden pulssin hinta = (7 * 0,3125) / 1000
Yhden pulssin hinta = 0,0021875 rupiaa
Vaihe 3: Nrf24L01 (luotto
Tutki tätä linkkiä
NRF24L01 -moduuli on mahtava RF -moduuli, joka toimii 2,4 GHz: n kaistalla ja sopii erinomaisesti kodin langattomaan viestintään, koska se tunkeutuu jopa paksuihin betoniseiniin. NRF24L01 tekee kaiken kovan ohjelmoinnin etukäteen, ja sillä on jopa toiminto, joka tarkistaa automaattisesti, onko lähetetty data vastaanotettu toisesta päästä. vastaavalla tavalla. Olen esimerkiksi käyttänyt nRF905 (433MHz) -moduulia lähes samalla koodilla kuin nRF24L01 ja nRF24L01+ ilman ongelmia. Näillä pienillä moduuleilla on vaikuttava valikoima, joissakin versioissa jopa 1000 metrin (vapaa näkö) tiedonsiirto ja jopa 2000 metrin biquad -antennilla.
nRF24L01 verrattuna nRF24L01+
(+) -Versio on sirun uusi päivitetty versio ja tukee tiedonsiirtonopeutta 1 Mbps, 2 Mbps ja "pitkän matkan tilaa" 250 kbps, mikä on erittäin hyödyllistä, kun haluat pidentää lähetyksen pituutta. Vanhempi nRF24L01 (joita olen käyttänyt aiemmissa viesteissäni) tukevat vain 1 Mbps tai 2 Mbps tiedonsiirtonopeutta Molemmat mallit ovat yhteensopivia keskenään, kunhan ne on asetettu samaan tiedonsiirtonopeuteen. Koska molemmat maksavat suunnilleen saman verran (lähes mitään), suosittelen ostamaan + -version!
Osa 1 - AsennusKytkennän erot nRF24L01 -moduulissa on 10 liitintä ja + -versiossa on 8. Ero on siinä, että + -versiossa on kaksi (3, 3 V ja kaksi GND: tä) sijasta (sen ympärillä on valkoinen neliö) ja 3, 3 V syöttö, vierekkäin. Jos vaihdat moduulia uudesta + versiosta vanhaan, muista unohtaa siirtää GND -kaapeli oikeaan paikkaan, muuten se lyhentää piiriäsi. Tässä on kuva + -versiosta (ylhäältä), jossa näet kaikki liitännät merkittyinä. Vanhassa versiossa on kaksi GND -liitäntää yläreunassa oikean alakulman sijasta.
Virtalähde (GND & VCC) Moduulissa on oltava 3, 3 V jännite, eikä sitä saa käyttää 5 V: n virtalähteellä! Koska se vie hyvin vähän virtaa, käytän lineaarista säädintä pudottaaksesi jännitteen 3, 3 V: iin. Jotta asiat olisivat hieman helpompia meille, siru voi käsitellä 5 V: n i/O -portteja, mikä on mukavaa, koska se on vaikeaa säätää kaikkia i/O-kaapeleita AVR-sirulta. AVR: n i/O -portti ja se on asetettu lähtöön (aseta bitti yhdeksi DDx -rekisterissä, jossa x on porttikirjain.) Atmega88: PB1, ATtiny26: PA0, ATtiny85: PB3SPI Chip Select (CSN) Tunnetaan myös nimellä "Ship" älä valitse ". CSN-nasta on myös kytketty mihin tahansa käyttämättömään AVR-porttiin ja asetettu lähtöön. CSN-nasta pidetään korkealla koko ajan paitsi silloin, kun SPI-komento lähetetään AVR: stä nRF: ään. Atmega88: PB2, ATtiny26: PA1, ATtiny85: PB4SPI Clock (SCK) SCK muodostaa yhteyden AVR: n SCK-napaan. kuten Atmega88, tämä muodostaa yhteyden myös AVR: n MOSI-laitteeseen ja asetetaan lähtöön. AVR-laitteissa, joissa ei ole SPI: tä, kuten ATtiny26 ja ATtiny85, niissä on USI, ja tietolomakkeessa lukee: "USI-kolmijohtoinen tila on yhteensopiva Serial Peripheral Interface (SPI) -tilojen 0 ja 1 kanssa, mutta sillä ei ole slave select (SS) -pistetoimintoa. Tämä ominaisuus voidaan kuitenkin toteuttaa ohjelmistossa tarvittaessa "SS" on sama kuin "CSN" Ja joidenkin tutkimusten jälkeen löysin tämän blogin, joka auttoi minua jakamaan. Saadakseni USI: n SPI: hen ja toimimaan, huomasin, että minun oli liitettävä MOSI -nasta nRF: stä AVR: n MISO -nastaan ja asetettava se lähtöksi.: PB3, ATtiny26: PB1, ATtiny85: PB1SPI Master -tulo Slave -lähtö (MISO tai MI) Tämä on SPI -järjestelmän datalinja. siru tukee SPI-siirtoa, kuten Atmega88, tämä muodostaa yhteyden AVR: n MISO-järjestelmään ja tämä pysyy tulona. Tämä toimi vain, kun liitin nRF: n MISO -nastan AVR: n MOSI -nastaan ja asetin sen tuloksi ja otan sisäisen vetämisen käyttöön. Atmega88: PB4, ATtiny26: PB0, ATtiny85: PB0, mutta loistava tapa tietää, milloin nRF: lle on tapahtunut jotain. Voit esimerkiksi pyytää nRF: ää asettamaan IRQ -arvon korkealle, kun paketti vastaanotetaan tai kun lähetys onnistuu. Erittäin hyödyllinen! Jos AVR -laitteessasi on yli 8 nastaa ja käytettävissä oleva keskeytysnasta, suosittelen lämpimästi yhdistämään IRQ siihen ja määrittämään keskeytyspyynnön. Atmega88: PD2, ATtiny26: PB6, ATtiny85: -
Vaihe 4: Liitäntäkaavio
Tämä kytkentäkaavio on kaavio
Vaihe 5: Koodi
Katso CODE osoitteesta GitHub