Benutzer-Werkzeuge

Webseiten-Werkzeuge


bienen:solarregler_v3

Solarladeregler V3

  • Anschluss für ein Solarpanel
  • Batteriemonitor
  • zwei schaltbare Lastausgänge
  • Eeprom zum Speichern von Messwerten
  • Serielle Schnittstelle
  • Anschluss Motor (12V) für Sonnennachführung der Solarzelle
  • alle freien oder mehrfach nutzbaren GPIO über Buchsenleisten erreichbar
  • über Aufsteckplatine Anschluss von zwei Stockwaagen

Fest verwendete Pins für Laderegelung, Motortreiber und Eeprom:

Bez.Verwendung
A0 Messung der Spannung des Solarpanels
A4SDA Eeprom
A5SCL Eeprom
4 Load1
5PWM Batterieladung
6I²C Batteriemonitor usw.
7Load2
B6Motortreiber Richtung
B7Motortreiber einschalten

Alle restlichen GPIO sind über Steckleisten zugänglich und können frei genutzt werden.

Bei dieser Version ist Batteriemonitor, Arduino, EEPROM, 3V Spannungsregler und der Motortreiber für den Ausrichtmotor des Solarmoduls auf einem Board. Sind passende Anschlüsse aufgelötet, so kann das Board direkt auf die Batterie aufgesteckt werden.

Für die Verwendung in der Bienenwaage wurde der Arduino Yun durch einen Mini-Router ersetzt. Über diesen kann auch drahtlos die Steuersoftware auf dem ATmega geschrieben werden.

Schaltung

SV5 ist für den Anschluss des Routers vorgesehen. Neben den Pins für GND, 3V, TX und RX enthält der Anschluss noch den RESET-Pin des ATmega und einen Pin, über den sich Load_1 unabhängig vom Atmega einschalten lässt. Dies ist notwendig, da bei beim Reset des ATmega sonst die Spannungsversorgung des Routers abgeschalten und somit der Flashvorgang durch AVRdude abgebrochen werden würde.

Die Beschaltung der Anschlüsse für Reset und Stromversorgung ist vom verwendeten Gerät abhängig. Mit dem Mini-Router GL-MN300N-V2 habe ich es nur mit der Benutzung von GPIO46 für den Reset des Atmega und dem Mißbrauch des Ausganges einer LED für die Spannungsversorgung stabil zum Laufen bekommen.

Der Schaltplan zum Anschluss und Hinweise zur Konfiguration des Routers sind auf der Seite GL-MT300N-V2.

Bestückung Solarregler V3

C2, C3 0,1µF C-EUC1210K 2mtgeändert 0805, 25V
C4 1µF C-EUC0805K 1sr25V
C5 2.2µF C-EUC0805K 1sr25V
C6 4.7µF C-EUC1210K 1srgeändert 0805, 25V
C7 47µF C-EUC1210K 1sr 6V
C8 22pF C-EUC1210K 1stgeändert 2µF, 6V
C9, C11 0,1µF C-EUC0805K 2sr, bm25V
C10 100µF C-EUC1808 1mt16V, probehalber ersetzt durch zwei 47µF
D1Schottky-Barriere-Gleichrichterdiode SK54 DO-214AA 40 V 5 A SMC 1 161027 - 62
D2TVS-Diode Bidirektional 1 P6KE36CA
D3, D5ES2D ES2D 2
F1-LOAD_EN, F2, F3 SHK20L SHK20L 3
L2-100 Bourns SRR1206-101YL Induktivität abgeschirmt SMD SRR1206 100 µH 220 mΩ DR127 1sr1056571
Q2, Q3, Q4 Mosfet IRF7416 (Conrad 162476) SO-08 3
R1 4,7kΩ R-EU_M3216 1
R3 10kΩR-EU_M0805 1
R4, R6, R8, R12, R13 10kΩ R-EU_M3216 4
R5, R7, R9 1kΩ R-EU_M3216 3
R10 0,2Ω C-EUC0805 1mt
R14 100kΩ R-EU_M0805 1 sr
R15 200kΩ R-EU_M0805 1solar
R16 30kΩ R-EU_M0805 1solar
R17 0Ω R-EU_M0805 1solar
R18 100kΩ R-EU_M0805 1bm
R19 0Ω R-EU_M0805 1bm
R20 0,24Ω R-US_0617/22 1bm
R21 20kΩ R-EU_M0805 1bm
R22 20kΩ R-EU_M0805 1bm
T2, T3, T4 NPN MMBT3904 (Conrad 1112841) SOT23-BEC3
EEPROM24LC512P 24LC512P 1
IC1MEGA48/88/168-PU MEGA48/88/168-PU 1
IC2DS2438Z DS2438Z 1bm
LTC3388-3LTC3388-X MSOP10-SINK 1
MOTORTREIBERDRV8800 DRV8800 1mt1013556
SV2MA12-1 MA12-1 1
SV3, SV4MA04-1 MA04-1 2
SV5MA06-1 MA06-1 1
X3MKDSN1,5/3-5,08 MKDSN1,5/3-5,08 1 743678
12V_SENSOR, IN1MKDSN1,5/2-5,08MKDSN1,5/2-5,082 743664

R21 und R22 bilden einen Spannungsteiler. Da der DS2438 nur bis 10 Volt verarbeiten kann, die Spannung der Batterie aber bereits über 12 Volt ist und das Solarpanel bis um die 20 Volt liefern könnte muss die zu messende Spannung geteilt werden und diese Teilung beim Auslesen der Werte mit einberechnet werden.

Stromverbrauch des Solarreglers

  • Last ausgeschalten knapp unter 5mA
  • mit als Last laufendem Router (GL-MT300N-V2 und Wlan ca. 100mA
  • mit am Router zusätzlich angeschlossenem UMTS-Stick ca. 135mA

Stromverbrauch angeschlossener 3V Sensoren

Der LTC3388-3 kann 50mA abgeben.

AnzahlBezeichnungStrom je Stk.
2×2ADS1231 ADC für zwei Waagen, 10mA Dauer, bis 100mA kurz
6-7 DS18b20 Temperatursensor 1mA
1x 24LC512 EEPROM max. 5mA beim schreiben
1x DRV8800 Motortreiber 1µA sleep, 6mA Betrieb
1x Batteriemonitor, max 100µA (schreiben), 25µA

Da der Strom des LTC3388 für die benötigten Sensoren nicht mehr ausreicht wird für deren Spannungsversorgung ein extra Spannungswandler (LMS78_03-0.5R) verwendet. Dieser muss nur an den Ausgang Load1 angeschlossen werden. Dieser liefert zwar 3.3V als Ausgangsspannung, aber dies sollte nicht zu Problemen führen. Die anliegende Spannung des Solarpanels darf aber nur gemessen werden, wenn der 3,3V Spannungsregler ausgeschalten ist, da in der Berechnung von den im Normalfall anliegenden 3V ausgegangen wird.

85°C Problem mit Dallas DS18B20

An dem Regler sind jetzt zwei Stockwaagen mit je zwei DS18B20 angeschlossen. Seltsamerweise gab es ein Problem mit den Temperatursensoren, sobald mehr als drei Stück angeschlossen sind. Der vierte zeigt zeitweise 85°C an und dies kann sogar bei Folgemessungen die anderen Sensoren „anstecken“. Die 85°C sind ein Standartwert des Sensors und werden von diesem ausgegeben wenn keine Messung durchgeführt wurde. Austausch Kabel und Sensor oder ein anderer Pullup brachte keine Änderung. Nach Erhöhung der Werte in DallasTemperature.cpp

int16_t DallasTemperature::millisToWaitForConversion(uint8_t bitResolution) {

	switch (bitResolution) {
	case 9:
		return 110;
	case 10:
		return 210;
	case 11:
		return 420;
	default:
		return 900;
	}

}

und des Einstellens der der Auflösung der DS18B20 auf 11 Bit scheint es jetzt zu funktionieren.

sensors.setResolution(address, 11);

Ich könnte mir vorstellen, dass die Ursache des Übels die grenzwertige Spannungsversorgung mit (gemessenen) 2.98V ist.

Anwendung des Ladereglers in Stockwaage

Der Solarregler wird ab 2019 für die Datenerfassung der Bienenwaagen verwendet.

Das System besteht aus folgenden Komponenten:

  • Stromversorgung
    • Batterie
    • Solarmodul
    • Laderegler/Datenlogger
  • Router mit OpenWRT
    • Kamera
    • UMTS/LTE-Stick
  • 2 Stockwaagen mit Temperatursensoren
  • 12V 6mm Antriebwelle DC Motor Gleichstrom Schneckengetriebemotor mit Encoder 20 RPM

Da das bisherige Gehäuse für Batterie und Solarpanel nicht hoch genug ist wurde ein neuer Deckel dafür gegossen. Es bleibt nun genügend Platz um den Laderegler samt Erweiterungsplatine auf die Batterie aufzustecken. Der Antrieb zur Ausrichtung des Solarmodules zur optimalen Stromgewinnung wurde dabei auch überarbeitet. Die Aufnahmen für die Kugellager sind nun direkt im Deckel integriert und beim Abstellen des Deckels steht der Antrieb des Panels nicht mehr im Dreck. Die Bienenwaage ist dadurch entschieden wartungsfreundlicher geworden. Deckel von unten mit eingespritzter Dichtung und Antrieb zur Ausrichtung des Solarmoduls. Das Kabel zum Solarmodul wird durch die Achse geführt.

Zusammenarbeit Solarregler und Router

Der Router wird eingeschalten wenn die Spannung über dem Mindestwert liegt und entweder am Taster eingeschalten wird oder ein Auftrag (Upload der Messwerte, Foto machen, Benachrichtigung bei schwärmenden Bienen) in der Warteschlange anliegt.

Ausgeschalten wird er, wenn

  • kein Auftrag mehr vorliegt und der Router frei für einen neuen Befehl wäre („OK/OK2“)
  • ein Timer überschritten ist
  • die Batteriespannung unter Mindestwert fällt

Ob OK oder OK2 gesendet wird hängt davon ab, ob der Router abgeschalten werden kann. OK2 wird z.B. gesendet, wenn ein anderer Computer gerade im Netzwerk angemeldet ist.

Kommunikation über serielle Schnittstelle

Datensätze, welche der Router empfängt und die keinem Befehl entsprechen, werden in eine Datei geschrieben und nicht quittiert. Mit einem = beginnende Daten werden in die Datei Kommentare.txt geschrieben, ansonsten in die Datei /tmp/orig.tmp.

Befehle Richtung Ladereger:

BefehlBedeutungReaktion
WaitRouter ist beschäftigt, nicht abschaltenTimer hochsetzen
OKRouter ist frei für Befehl oder könnte ausgeschalten werdennächsten Befehl senden oder Router abschalten
OK2Router ist frei für Befehl, sollte aber eingeschalten bleibenTimer hochsetzen und nächsten Befehl senden
STATUSfordert Systemdaten des Solarreglers an Systemdaten senden =
ONEWIREScannt nach den Adressen angeschlossener GeräteAdressen senden =
TURNRichtet das Solarpanel ausPanel richten, Timer hochsetzen
EEPROM_DLösche den SpeicherEeprom löschen
10stellige Zahlwird als Timestamp interpretiertsendet „timeset“ zurück

Befehle Richtung Router:

BefehlBedeutungReaktion
uploaddie temporäre Datei wird hochladen und anschließend gelöschtWAIT, wenn erfolgreich EEPROM_D, OK/OK2
schwarmRouter meldet dem Server SchwarmalarmWAIT, OK/OK2
picMacht ein Bild und lädt es hoch WAIT, OK/OK2
zeitder Solarregler möchte den aktuellen Timestamp wissenTimestamp senden
bewegungder Bewegungsmelder wurde ausgelöstWAIT, OK/OK2
timeset die Systemzeit des Solarreglers wurde gesetztOK/OK2
shutdownder Router führt poweroff auskeine

Kosten

Router~22,- EUR
UMTS/LTE Stick70,- EUR
Stockwaage/njeweils ~90 EUR
Batterie~35 EUR
Solarmodul~25 EUR

Zusätzliche Sensoren

Bodenfeuchtesensor:

I²C Sensor mit mehreren Funktionen:

  • Kapazitive Messung der Feuchtigkeit
  • Helligkeit
  • Temperatur (°C mit einer Kommastelle)

Wenn, wie im verfügbaren Testprogramm, alle drei Werte fortlaufend ausgelesen werden scheint der Sensor von der Elektronik etwas aufgeheizt zu werden. Nach Inbetriebnahme steigt die Temperatur z.B. von 18°C innerhalb einer Minute auf 20,3°C. Wird nur Feuchte und Temperatur gemessen und zwischen den Messungen eine Pause eingelegt (2 Sekunden reichen) so scheint die Temperaturangabe korrekt zu sein. Verglichen mit einem Dallas ds18b20 gibt es bei ca. 20°C Lufttemperatur 0,1 Grad Abweichung. Einfach auf dem Tisch liegend schwankt der Messwert der Feuchtesensoren zwischen 192 und 193.

Im Eiswasser gibt der Bodenfeuchtesensor zwischen 458 und 460 als Messwert aus. (bei 5V Betriebsspannung, diese scheint Einfluss auf den Wert zu haben, je niedriger die Spannung desto höher der Wert) Die Temperatur gibt er mit -0,3°C an, ein ebenfalls im Eiswasser befindlicher Dallas +0,25°C.

Anschlussbelegung:

FarbeFuntion
orangeVCC
braunGND
orange/weißSDA (A4)gelb
braun/weißSCL (A5)orange

Adressen:

  • 21 (Standard) oben, gün
  • 20 unten, braun
  • 0x28, 0x7E, 0x04, 0x97, 0x06, 0x00, 0x00, 0x3C Dallas in der Mitte

Bodenfeuchtigkeitssensor mit I²C

Beim Anschluss an einen handelsüblichen Arduino UNO funktioniert die Abfrage ohne externe Pullups nur, so lange nur ein Sensor angeschlossen ist. Mit einem zweiten Sensor wurden zusätzliche Pullup-Widerstände (10k) notwendig. An der Platine des Solarreglers funktioniert es ohne diese zusätzlichen Widerstände.

bienen/solarregler_v3.txt · Zuletzt geändert: 2020/07/27 01:15 von andmin