Wetterstation auf Arduino von A bis Z. Teil 4

Fortsetzung folgt. Der vorherige Teil .
Inhaltsverzeichnis:



Außenborder Sensor. Eisen


Wir müssen sofort zugeben, dass die erste Version des Fenstersensors (Fernbedienungssensors) hinsichtlich Stromversorgung und Energieverbrauch nicht ganz erfolgreich war. Wie ich bereits schrieb, hatte ich nur das Arduino Pro Mini-Modul mit 5 V zur Hand. Und ich verwendete Ni-MH-Batterien.


Trotz der Tatsache, dass ich auch die Solarbatterie angeschlossen habe, arbeitete die gesamte Struktur etwa 25 Tage lang autonom. Sehr negativ wurde die Batteriekapazität durch niedrige, oft negative Temperaturen auf der Straße am Ende des Winters beeinträchtigt.


Nehmen Sie die folgenden Ersetzungen vor, damit alles viel länger für Sie funktioniert:


  • Kaufen Sie Arduino Pro Mini bei 3,3V
  • Verwenden Sie einen 3,7-V-Li-Ionen-Akku NCR18650A von Panasonic, 2-tlg. für etwa 14 $ bei 3100mAh. Sie können CR123, CR123A Batterien ausprobieren. Und denken Sie daran, dass eine 9-V-Batterie (wie eine Krona) eine schlechte Stromquelle ist.

Das Wichtigste ist, dass Ihre Batterien auf der Straße funktionieren, d. H. bei negativen Temperaturen, die die in ihnen ablaufenden chemischen Prozesse verlangsamen und dadurch ihre Kapazität stark reduzieren.


Der DHT22-Sensor kann auch mit 3,3 V betrieben werden.


Die obigen Permutationen beinhalten keine Änderungen oder Ersetzungen anderer Komponenten.


Ernährung


Ich habe ursprünglich 4 Stück verwendet. Der Ni-MH-Akku ist mit einem Abgriff vom 3. in Reihe geschaltet, sodass wir zwei Versorgungsspannungen erhalten: 4,8 V für den DHT22-Sensor und 3,6 V für alles andere. Ich habe keine Step-Down- (genauer gesagt, Energie zerstörenden) oder Step-Up-Elektronikschaltungen verwendet, sondern nur umweltfreundliche Spannungen und Ströme.


Wahrnehmung


Das Solarpanel wird wie gezeigt angeschlossen. Solarpanel 1,6 W 5,5 V 266 mA wurde für 6,64 USD gekauft.


In der Schaltung werden eine Schottky-Diode vom Typ 1N914 und ein Elektrolytkondensator von 50-100 μF verwendet.



Pinbelegung und Anschluss


Fahren wir mit der Montage fort.


Temperatur- und Feuchtigkeitssensor DHT22


DHT22


Pinbelegung zum Anschluss eines Temperatur- und Feuchtigkeitssensors DHT22:


DHT22 Vorderseite von links nach rechtsArduino Pro MiniHinweis
Vcc3,3 - 5V5V empfohlen, bessere externe Stromversorgung
SDAD2In der Skizze ist es DHTPIN
NCNicht verbunden
GNDGND

Optional können Sie den SDA über einen 10K-Widerstand an VCC anschließen (festziehen).


Initialisierung:


 #define DHTPIN 2 //   D2 DHT dht(DHTPIN, DHTTYPE); 

Um den Sensor vor direkter Sonneneinstrahlung zu schützen, habe ich aus einer Dose ein Gehäuse dafür gemacht und es mit reflektierendem metallisiertem Klebeband überklebt.


nRF24L01 +


nRF24L01 +


Die Pinbelegung des Funkmoduls nRF24L01 + (sehen Sie oben auf der Platine nach, wo sich der Chip befindet, während sich die Pin-Pins unten befinden):


(2) 3,3 V.(4) CSN(6) MOSI(8) IRQ
(1) GND(3) CE(5) SCK(7) MISO

NRF24L01 + Verbindung


Arduino Pro MininRF24L01 +Hinweis
3,3VVCC (2)Bessere externe Stromversorgung
Pin D8CE (3)Chip aktivieren in
SS Pin D10CSN (4)Chipauswahl in
SCK-Pin D13SCK (5)SPI Uhr ein
MOSI Pin D11SDI (6)SPI-Daten in
MISO Pin D12SDO (7)SPI-Daten aus
IRQ 8Interrupt-Ausgang nicht angeschlossen
GNDGND (1)

Initialisierung:


 NRF24 nrf24(8, 10); 

Wie in den Foren empfohlen, wurde sofort ein Elektrolytkondensator mit geringer Kapazität (10 μF) an die Leistungsklemmen nRF24L01 + gelötet.


Ich habe ein Funkmodul mit einer externen Zusatzantenne, die zwei Wände zuverlässig „durchbricht“.


Voltmeter


Der externe Sensor verfügt über ein Voltmeter zur Messung der Versorgungsspannung der Batterie. Die Messtechnik wird von Scott Daniels "Secret Arduino Voltmeter - Measure Battery Voltage", 2012, beschrieben.


Die Daten werden vom analogen Pin A1 gelesen.



Ich habe Spannungsteilerwiderstände von 100 kOhm und 10 kOhm (Sie können leicht unterschiedliche Nennwerte haben, Sie müssen sie mit einem Ohmmeter genau messen).


 const float r1 = 100400; // 100KOm const float r2 = 9960; // 10KOm 

Die folgende Konstante muss wie von Scott Daniels beschrieben einzeln kalibriert werden. Verwenden Sie eine separate Shemka und Skizze .


Wir messen zwei Werte von Vcc: echte Vcc mit einem Voltmeter (am AREF- oder 5V-Pin) und Vcc mit unserer Funktion. Dann ersetzen wir die Konstante ( 1.1 * 1023.0 * 1000 ) durch eine neue:


 scale_constant = internal1.1Ref * 1023 * 1000 

wobei internal1.1Ref = 1.1 * Vcc1 ( ) / Vcc2 ( )


wo


  • Vcc1 - Vcc-Wert, der manuell mit einem Voltmeter gemessen wird
  • Vcc2 - Vcc-Wert, der mit unserer Funktion ermittelt wurde

Dieser Referenzwert ist für einen bestimmten AVR-Chip individuell und hängt von Temperaturschwankungen ab.


Als Ergebnis habe ich folgenden Wert erhalten:


 const float typVbg = 1.082; //    1.0 — 1.2  

Da unser Akku im Dunkeln entladen und von der Solarbatterie geladen wird, sieht der Versorgungsspannungsgraph an bewölkten Tagen sägezahnartig "nach" aus:


Grafik


Das Diagramm ist real und stammt aus der Web-Seite des Projekts.


Montage


Um den Block als Ganzes zusammenzubauen, habe ich wieder das Steckbrett zum Löten verwendet.
Ich habe gelötet, intuitiv ohne Vorverdrahtung verbunden, also habe ich keinen Stromkreis.


Folgendes ist passiert.


Montage

Source: https://habr.com/ru/post/de425963/


All Articles