Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
EINLEITUNG
Youtube-Kanal::::
Dieses Projekt basiert auf dem Atmega16-Mikrocontroller von Atmel als Hauptgehirn für die Berechnung.
Für die drahtlose Datenübertragung wird das drahtlose Kommunikationsmodul NRF24L01+ verwendet.
Heute haben wir Hunderte und Tausende von Energiezählern in einem Apartmentkomplex, einem Einkaufszentrum, einer Schule, einer Universität, einem Hostel und vielem mehr installiert. Das Problem tritt auf, wenn der Zähler von einem Mitarbeiter abgelesen wird, um die Rechnung pro Energiezähler zu berechnen. Es erfordert viel Personal und Kosten.
Hier habe ich ein einfaches Projekt entwickelt, das Personal und Kosten spart, indem die Energiezählung mehrerer Energiezähler automatisch an den Host- oder Serviceanbieter übertragen wird.
Ich habe die Daten von Three Energy Meter genommen und die Daten an den Empfänger übertragen, der die Last und den Gesamtverbrauch pro Meter berechnet hat.
Übersteigt die Belastung das zulässige Niveau, ertönt ein Summer.
Die Daten werden auf der Senderseite gespeichert, sodass kein Datenverlust entsteht, wenn der Empfänger ausgeschaltet wird oder die Verbindung verloren geht.
Hier ist das Arbeitsvideo.
Verschiedene Komponenten sind:
- Energiezähler X 3
- NRF24L01 X 2
- Atmega16 X 2
- Optokoppler X 3
Schritt 1: Einrichtung des Energiezählers
1. Öffnen Sie zuerst den Energiezähler
2. Schneiden Sie einfach den Kathodenanschluss der Cal LED
3. Löten Sie 2 Drähte an den 2 Enden der LED.
4. Verbinden Sie die Kathode der LED mit Pin1 des Optokopplers (MCT2E) und das andere Ende der LED mit Pin2 des Optokopplers
5. Verbinden Sie Pin 4 des Optokopplers mit einem schwarzen Kabel und Pin 5 mit dem braunen Kabel. Verbinden Sie das schwarze Kabel mit der Masse der Platine für die Projekte Prepaid-Energiezähler oder automatische Zählerablesung. Der braune Draht trägt den Impulsausgang.
6. Schließen Sie das Netzteil und die Last gemäß diesem Bild an.
Schritt 2: Grundalgo für die Berechnung
Hier ist das Messgerät über den Impuls, der immer auf dem Messgerät blinkt, mit dem Mikrocontroller verbunden. Außerdem wird dieser Impuls anhand seiner Blinkperiode berechnet. Nach diesem Prinzip haben wir ihn für eine Einheit berechnet und dementsprechend die Gebühr für eine Einheit.
Nachdem 0,3125 Watt Energie verbraucht wurden, blinkt die LED des Messgeräts (kalibrieren). Das heißt, wenn wir eine Minute lang eine 100-Watt-Glühbirne verwenden, blinkt der Puls 5,3 Mal pro Minute. Und dies kann mit der angegebenen Formel berechnet werden.
Puls = (Pulsrate des Messgeräts * Watt * 60) / (1000 * 3600)
Wenn die Pulsfrequenz des Messgeräts 3200 imp beträgt und das verwendete Watt 100 beträgt, haben wir
Puls = (3200 * 100 * 60) / (1000 * 3600)
Puls = 5.333333333 pro Minute
Wenn 5.333333333 Impulse in einer Minute aufgetreten sind, werden in einer Stunde Impulse auftreten.
Puls = 5.3333333333* 60 Puls = ~320 ~320 Pulse erfolgen in einer Stunde
In einer Stunde verbrauchte eine 100-Watt-Glühbirne also 100 Watt Strom und fast 320 Blinkimpulse.
Jetzt können wir den Stromverbrauch eines Pulses in Watt berechnen
Ein Impuls (Watt) = 100\320
Ein Puls (Watt) = 0,3125
Bedeutet 0,3125 Watt Strom verbraucht ein einzelner Impuls.
Jetzt Einheiten Einheit = (ein Puls Energie (Elektrizität))* Pulse / 1000
Wenn ein Impuls = 0,3125 Watt Impulse in 10 Stunden = 3200
Dann ist die Einheit Einheit = (0.3125 * 3200)/1000 Einheit = 1 bedeutet, eine Einheit in 10 Stunden für eine 100-Watt-Glühbirne.
Angenommen, eine Einheitsrate beträgt 7 Rupien, dann betragen die Kosten für einen einzelnen Impuls
Einzelimpulskosten = (7 * verbrauchte Impulsenergie) / 1000
Einzelimpulskosten = (7 * 0,3125) / 1000
Einzelimpulskosten = 0,0021875 Rupie
Schritt 3: Nrf24L01 (Gutschrift an
Studieren Sie diesen Link
Das nRF24L01-Modul ist ein fantastisches HF-Modul, das im 2,4-GHz-Band arbeitet und sich perfekt für die drahtlose Kommunikation in einem Haus eignet, da es selbst dicke Betonwände durchdringt. Der nRF24L01 erledigt die gesamte harte Programmierung für Sie und verfügt sogar über eine Funktion zur automatischen Überprüfung, ob die übertragenen Daten am anderen Ende empfangen werden. Es gibt verschiedene Versionen der Chips der nRF-Familie und sie scheinen alle in einem ähnliche Weise. Ich habe zum Beispiel das nRF905 (433MHz) Modul mit fast dem gleichen Code verwendet, den ich auf dem nRF24L01 und dem nRF24L01+ ohne Probleme verwende. Diese kleinen Module haben eine beeindruckende Reichweite, wobei einige Versionen bis zu 1000 m (freie Sicht) Kommunikation und bis zu 2000 m mit einer Biquad-Antenne verwalten.
nRF24L01 versus nRF24L01+
Die (+)-Version ist die neue aktualisierte Version des Chips und unterstützt Datenraten von 1 Mbps, 2 Mbps und einen "Langstreckenmodus" von 250 kbps, was sehr nützlich ist, wenn Sie die Sendelänge verlängern möchten. Der ältere nRF24L01 (die ich in meinen vorherigen Beiträgen verwendet habe) unterstützen nur 1 Mbps oder 2 Mbps Datenrate. Beide Modelle sind miteinander kompatibel, solange sie auf die gleiche Datenrate eingestellt sind. Da beide ungefähr gleich viel kosten (fast nichts) würde ich dir empfehlen die + Version zu kaufen!
Teil eins - SetupVerbindungsunterschiedeDas nRF24L01-Modul hat 10 Anschlüsse und die +-Version hat 8. Der Unterschied besteht darin, dass die +-Version anstelle von zwei 3, 3 V und zwei GND seine Masse hat (die mit einem weißen Quadrat um ihn herum) und 3, 3 V Versorgung, nebeneinander. Wenn Sie das Modul von einer neuen +-Version auf eine alte ändern, vergessen Sie nicht, das GND-Kabel an die richtige Stelle zu verschieben, da es sonst Ihren Stromkreis verkürzt. Hier ist ein Bild der +-Version (Draufsicht), wo Sie können alle Verbindungen beschriftet sehen. Die alte Version hat zwei GND-Anschlüsse ganz oben statt unten rechts.
Stromversorgung (GND & VCC) Das Modul muss mit 3, 3 V versorgt werden und kann nicht mit 5 V versorgt werden! Da es sehr wenig Strom braucht, verwende ich einen Linearregler, um die Spannung auf 3, 3 V zu senken. Um es uns etwas einfacher zu machen, kann der Chip 5 V an den I / O-Ports verarbeiten, was schön ist, da es so wäre Es ist mühsam, alle I / O-Kabel vom AVR-Chip herunterzuregulieren. Chip Enable (CE) Wird verwendet, wenn entweder die Daten gesendet (Sender) oder empfangen werden soll (Empfänger). Der CE-Pin ist mit einem unbenutzten verbunden I/O-Port am AVR und wird als Ausgang gesetzt (Bit im DDx-Register auf Eins setzen, wobei x der Port-Buchstabe ist.)Atmega88: PB1, ATtiny26: PA0, ATtiny85: PB3SPI Chip Select (CSN)Auch bekannt als "Ship." nicht auswählen". Der CSN-Pin wird auch mit einem beliebigen ungenutzten I/O-Port am AVR verbunden und auf Ausgang gesetzt. Der CSN-Pin wird die ganze Zeit hoch gehalten, außer wenn ein SPI-Befehl vom AVR an den nRF gesendet wird. Atmega88: PB2, ATtiny26: PA1, ATtiny85: PB4SPI Clock (SCK) Dies ist die serielle Uhr. Der SCK wird mit dem SCK-Pin des AVR verbunden. Atmega88: PB5, ATtiny26: PB2, ATtiny85: PB2SPI Master-Ausgang Slave-Eingang (MOSI oder MO)Dies ist die Datenleitung im SPI-System. Wenn Ihr AVR-Chip SPI-Transfer unterstützt wie beim Atmega88 wird dies auch mit MOSI auf dem AVR verbunden und als Ausgang eingestellt kompatibel mit dem Serial Peripheral Interface (SPI) Modus 0 und 1, aber hat nicht die Slave Select (SS) Pin-Funktionalität. Diese Funktion kann jedoch bei Bedarf in Software implementiert werden" Das "SS" ist das gleiche wie "CSN" Und nach einigen Recherchen fand ich diesen Blog, der mir bei der Zuordnung half. Um die USI zu SPI zum Laufen zu bringen, fand ich heraus, dass ich den MOSI-Pin vom nRF mit dem MISO-Pin am AVR verbinden und als Ausgang einstellen musste. Atmega88: PB3, ATtiny26: PB1, ATtiny85: PB1SPI Master-Eingang Slave-Ausgang (MISO oder MI)Dies ist die Datenleitung im SPI-System. Wenn Ihr AVR Chip unterstützt SPI-Transfere wie der Atmega88, dieser verbindet sich mit MISO auf dem AVR und dieser bleibt als Eingang. Damit er auf dem ATtiny26 und ATtiny85 funktioniert, musste ich wie oben erwähnt USI verwenden. Dies funktionierte nur, wenn ich den MISO-Pin am nRF mit dem MOSI-Pin am AVR verbunden und als Eingang eingestellt und internen Pullup aktiviert habe. Atmega88: PB4, ATtiny26: PB0, ATtiny85: PB0Interrupt Request (IRQ)Der IRQ-Pin ist nicht erforderlich, aber eine großartige Möglichkeit zu wissen, wenn dem nRF etwas passiert ist. Sie können beispielsweise dem nRF sagen, dass es den IRQ hoch setzen soll, wenn ein Paket empfangen wird oder wenn eine erfolgreiche Übertragung abgeschlossen ist. Sehr nützlich!Wenn Ihr AVR mehr als 8 Pins und einen verfügbaren Interrupt-Pin hat, würde ich Ihnen dringend empfehlen, den IRQ an diesen anzuschließen und eine Interrupt-Anfrage einzurichten. Atmega88: PD2, ATtiny26: PB6, ATtiny85: -
Schritt 4: Grundlegendes Anschlussdiagramm
Dieses Anschlussdiagramm ist ein Schema
Schritt 5: Code
Für CODE besuchen Sie GitHub