===== Bienenwaage erste Version ===== Da der gekaufte Laderegler nicht zufriedenstellend funktionierte wurde die Schaltung verändert und die Laderegelung und Datenerfassung auf einem Arduino zusammengefasst. Der Arduino Yun bzw. dessen Atheros AR9331 dient nur noch der Übertragung der Daten in das Internet. ==== Platine Solarregler (laderegler_3V.sch) ==== {{:laderegler_v1.jpg?direct&200|}} * Anschlüsse Solarzellen * Anschluss Batterie * Anschluss Load (Batteriespannung) * Spannungsregler [[:schaltregler_ltc3388-3|LTC33881-3]] für 3V Grundversorgung * Anschluss für Steuerplatine mit den Kontakten - 3V - Spannung Solarzelle 1 - Spannung Solarzelle 2 - Load an/aus - Laderegelung - Masse - unbelegt - B unbelegt, war für Batteriespannung gedacht - T unbelegt, war für Temperatursensor gedacht **Mittlerweile gibt es eine neue Version des [[:platine_solarregler|Solarreglers]], die Funktionsweise und der grundlegende Schaltungsaufbau sind gleich, jedoch auf einem Board zusammengefasst.** ==== Platine Steuerung (arduino_speicher_ad.sch) ==== * Anschluss für Sensoren und Yun über Netzwerkkabel - Pin 12 DP6 1-Wire - Pin 14 DP8 Waage ein - Pin 15 DP9 CLK Waage 2 - Pin 16 DP10 Data Waage 2 - Pin 17 DP11 CLK Waage 1 - Pin 18 DP12 Data Waage 1 - Pin 27 A4 SCL I²C - Pin 28 A5 SDA I²C * 3V Grundversorgung für Sensoren * [[:atmega328p-pu|ATmega328P-PU]] * [[:i_c_eeprom_24lc512|I²C EEPROM 24LC512]] * [[:i_c_bus_buffer_tca4311a|I²C Bus Buffer TCA4311A]] * Anschluss für Programmierung ATmega * Anschlüsse für Erweiterungsplatine - Pin ATmega 2, 3, 4, 5, 6, 9, 10, 12, 13, 18 * Jumper für Stromversorgung 3V ein/aus * Anschluss 1-Wire [[:batteriemonitor_ds2438|Batteriemonitor DS2438]] ==== Erweiterungsplatine ==== * Anschluss für Taster mit zwei Kontroll-LEDs * Anschluss für weitere Sensoren über Netzwerkkabel * Anschluss für Motortreiber * Anschluss direkt an Batterie für Stellmotor der Solarzelle, wird beim Einschalten der Sensoren über Q1 eingeschalten * Anschluss für 2 Helligkeitssensoren (derzeit [[:datenblaetter|TSL250R]]) ==== Verbinderplatine für Netzwerkkabel/Gewichtssensoren/Temperatursensoren ==== Anschlüsse für * Netzwerkkabel zur Steuerplatine * durch die Steuerplatine geschaltete Batteriespannung * 3V DC * [[:datenblaetter|1-Wire Temperatursensoren DS18B20]] * [[:datenblaetter|2wire AD-Wandler ADS1231]] der Waage * fest verbunden ist das 5V-Netzteil für den Arduino Yun feste Kabel: ^farbe^funktion^wohin^ |rot|3V| | |grau|Masse| | |grün|SDA|Yun Pin2| |blau|SCL|Yun Pin3| Steckleiste, gezählt von 3V Steckanschluss aus ^pos^funktion^farbe^ |1|PWR|rot+grün| |2|data1|gelb| |3|CLK1|orange| |4|DATA2|violett| |5|CLK2|blau| Am Yun: das gelbe kabel an 5V ==== Netzteil 5V für Arduino Yun ==== * [[:datenblaetter|Schaltregler LT8610]] ==== Modifizierter Arduino Yun ==== * ATmega32U4 kann den Atheros AR9331 einzeln schalten * ATmega32U4 kann an den AR9331 über USB angeschlossene Geräte schaltet ===== Kommunikation mit ATmega328P-PU der Steuerplatine ===== [[:i_c|I²C]] * ATmega32U4 des Yun, trennbar durch I²C Bus Buffer TCA4311A * EEPROM 24LC512 1-Wire * Temperatursensoren DS18B20 * Batteriemonitor DS2438 Two-Wire Serial Digital Interface * AD-Wandler ADS1231 der Waage ===== Kommunikation mit ATmega32U4 des Yun ===== Der Arduino Yun wird über I²C vom Laderegler gesteuert. Der Yun liest auf entsprechenden Befehl die auf dem Eeprom gespeicherten Messwerte direkt von diesem aus. * EEPROM 24LC512 Da diese Variante, die zwar sehr gut und schnell funktionierte, programmiertechnisch etwas kompliziert ist und Modifizierungen in verschiedenen Bibliotheken erforderte habe ich den Arduino Yun durch einen [[openwrt:gl-mt300n-v2|Router GL-MT300N-V2 mit OpenWrt]] ersetzt und die Kommunikation auf RS232 geändert. Dies lässt sich einfacher konfigurieren, ist billiger und man kann auch mit jedem Laptop die Daten auslesen. ===== Fehler ===== Was brennt durch, wenn man die Batterie verpolt anschließt? Arduino Yun, 5-Volt Schaltregler und Waage waren zum Glück nicht angeschlossen. Die Liste wird sicherlich noch fortgesetzt. . . * Shunt des Batteriemonitors * [[:schaltregler_ltc3388-3|LTC3388-3]] * Kondensator am Motortreiber * Motortreiber ===== LED Kontrollanzeigen ===== Yun * led_1 -> Befehl erhalten, wird abgearbeitet * led_2 -> sendTo * led_3 -> check other * led_4 -> upload File * led_5 -> is_connect * led_6 -> fehler einsbyte=0xFF; pingbyte=1; readybyte=2; schwarmalarmbyte=3; uploadbyte=4; waitbyte=5; wlanonbyte=6; sleepbyte=7; deleteeeprombyte=8; moretimebyte=9; fotobyte=10; timebyte=11; eeprom_freigeben=12; bewegungsbyte=13; Steuerung * led1 loop * led2 messen und EEPROM schreiben * led3 receiveEvent() ===== Speicherreihenfolge ===== - timestamp batterie - V Batterie - Temperatur Batterie - DCA Batterie - ICA Batterie - CCA Batterie jetzt genutzt für mAh kapazität - V solar1 - Platzhalter für V solar2 - Gewicht - weightSensorRaw1 - weightSensorRaw2 - gewicht1 Gramm - gewicht2 Gramm - temperatur_bienen - temperatur_waage - temperatur_kasten - temperatur_erde1 - temperatur_erde2 - hell_links, jetzt duty - hell_rechts - wind - windrichtung - RealTimestamp timestamp utc - loadcurrent durchschnittlicher Verbrauch mA*100 - 999 ===== Testprogramm Hardware ===== ==== Laderegler ==== - Motortest 3 Sekunden Richtung +1 - Motortest 3 Sekunden Richtung -1 - EEPROM lesen - Systemdaten lesen - Messwerte lesen - Wartezeit für Test I²C ==== Yun ==== - EEPROM lesen - Timestamp abholen - I²C sendet nullbyte an Laderegler und wartet auf Antwort