Arduino Library für Jeti EX Eigenbau-Telemetrie

  • wiff
  • wiff's Avatar Offline
  • Premium Mitglied
  • Premium Mitglied
  • Wolfgang
  • Beiträge: 83
  • Dank erhalten: 25

wiff antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 05 März 2016 23:43 #67
Liebe Jeti-Eigenbau-Sensor-Kollegen,
ich habe Onki beim Wort genommen und wieder ein wenig mit Bernd's wirklich genialer Library gearbeitet.
Mein Plan ist es ja, ein Sensorsystem zu bauen, das erfasst, welche Akkus geflogen werden und misst, wie stark sie sich während des Fluges erwärmen (fliege mit 2 Packs).

Die Temperaturmessung funktioniert jetzt - ( 1x DS18B20 für den Motor und 2x TI TMP007 Infrarot für die Akkupacks).

Mit dem Auslesen der NFC Sensoren kämpfe ich noch intensiv :evil:
Zuerst gab es Softwareprobleme mit der PN532 Library, die nur mit einem angeschlossenen Reader umgehen konnte. Dank Bernd's Unterstützung (VIELEN DANK!!!) konnte ich das in den Griff kriegen.
Dann bemerkte ich, dass sich die zwei NFC-Reader gegenseitig HF-mässig stören. Danach fand ich heraus - RTFM - read that FINE manual, dass ein PN532 Chip auch zwei NFC Tags gleichzeitig lesen kann. Als das funktionierte, musst ich feststellen, dass die NFC-Tags, die ich verwende, nicht auf metallischem Untergrund (=Akkupack) funktionieren :ohmy: :blink: :angry:
Jetzt hab' ich Tags für Metalloberflächen bestellt - mal sehen, was das bringt.

Hier die Screenshots der Sensordaten. Man sieht hier auch meine "Zwei-Werte-Ausgabe für arme Leute" - Kapazität als Wert vor dem Komma, Identifikationsnummer des Packs nach dem Komma.






Viele Grüsse,
Wolfgang
Wolfgang
Last Edit:05 März 2016 23:51 von wiff

Anhänge:

Letzte Änderung: 05 März 2016 23:51 von wiff.
Folgende Benutzer bedankten sich: Sepp62

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • wiff
  • wiff's Avatar Offline
  • Premium Mitglied
  • Premium Mitglied
  • Wolfgang
  • Beiträge: 83
  • Dank erhalten: 25

wiff antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 05 März 2016 23:46 #68

Hier noch ein Screenshot
Wolfgang
Last Edit:05 März 2016 23:46 von wiff

Anhänge:

Letzte Änderung: 05 März 2016 23:46 von wiff.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • onki
  • onki's Avatar Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 2286
  • Dank erhalten: 791

onki antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 07 März 2016 07:19 #69
Hallo Wolfgang,

sehr interessant die Umsetzung mit dem RFID-Tag am Akku. Bin damit auch im Job z.T. zu gange und finde den Ansatz längst überfällig.
ELV hat das ja bei Ladegeräten schon vor Jahren probiert, da waren die Kunden aber noch nicht so weit wie auch die Tags, die noch keinen Speicher hatten bzw. noch nicht bezahlbar waren.
Ich finde das die perfekte Lösung, sofern die Ladegeräte auch mal mit den Daten umgehen können und es so eine umfassende Art wireless BID gibt.
Hältst du dich beim Speicheraufbau in etwa an die Struktur der BID-Chips?
Hab hier auch noch so einen 1-Wire Temperatursensor herumliegen vom RasPi. Den könnte ich dann auch noch einsetzen.

Bin am WE mit meinem Projekt nicht viel weiter gekommen wegen eines kleinen Wasserschadens sowie Werkstatt-Aufräumarbeiten.

Gruß
Onki
Gruß aus dem Nordschwarzwald
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.
von onki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • wiff
  • wiff's Avatar Offline
  • Premium Mitglied
  • Premium Mitglied
  • Wolfgang
  • Beiträge: 83
  • Dank erhalten: 25

wiff antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 07 März 2016 11:35 #70
Hallo Onki,
der wirkliche Gag der NFC-Tag ist, dass man dort Daten lesen und schreiben kann und das ohne Kabel und Batterie!

Ich verwende NDEF, ein genormtes Format, um die Daten auf einem NFC-Tag abzulegen. Dadurch kann man die Informationen theoretisch auch mit anderen NFC-fähigen Geräten auslesen - z.B. mit einem Handy (mit Android geht das - hab's aber noch nicht getestet, weil alle in der Family iPhones haben, bei dem Apple den NFC-Chip kastriert hat).
gototags.com/technology/nfc/ndef/

Das sind übrigens die Tags, die ich bestellt habe:
rapidnfc.com/item/405/on_metal_nfc_tags_...ro_blue_logo_ntag213

Welche Daten man im NDEF Format ablegt, ist frei wählbar. Dem alten chinesischen Sprichwort "gut geklaut ist halb gewonnen" folgend, übernehme ich natürlich gerne die BID-Datenstruktur...
Hast Du das irgendwelche Hinweise auf eine gute Doku ?

Gruss, Wolfgang
Wolfgang
von wiff

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • onki
  • onki's Avatar Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 2286
  • Dank erhalten: 791

onki antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 07 März 2016 13:41 #71
Hallo Wolfgang,

ich bin auch NFC Fan und hab auch was bei uns in der Firma diesbezüglich "erfunden".
Mein Traum wäre, wenn die Tags im Stecker selber währen, dann könnte man sich einen Handgriff beim Laden und Nutzen sparen.

Wegen BID hab ich keine Doku, ich hab aber eine kleine Auslesesoftware aus dem RC-Network bei mir am Laufen.
Code:
#include <Wire.h> #define BID_ADDRESS (0xA << 3 | 0x0) int bid_year, bid_month, bid_day; int bid_cells, bid_acctyp, bid_cap_h, bid_cap_l, bid_chcurr_h, bid_chcurr_l, bid_dchcurr_h, bid_dchcurr_l; int bid_actc_h, bid_actc_l, bid_actdc_h, bid_actdc_l, bid_maxc_h, bid_maxc_l; int bid_chcnt_h, bid_chcnt_l; // EEPROM Routine from http://www.arduino.cc/playground/Code/I2CEEPROM // adopted to read EEPROMS with 1 Byte address byte i2c_eeprom_read_byte( int deviceaddress, byte eeaddress ) { byte rdata = 0xFF; Wire.beginTransmission(deviceaddress); // Wire.send((int)(eeaddress >> 8)); // MSB // Wire.send((int)(eeaddress & 0xFF)); // LSB Wire.write ((int)(eeaddress)); Wire.endTransmission(); Wire.requestFrom(deviceaddress,1); if (Wire.available()) rdata = Wire.read(); return rdata; } void setup() { // ... Wire.begin(); // start Wire library as I2C-Bus Master Serial.begin(9600); // int i; byte bid_data; Serial.print("BID-Adresse: "); Serial.println(BID_ADDRESS, HEX); Serial.println("Start EEPROM_READ"); for (i = 0; i <= 255; i++){ Serial.print(i, DEC); Serial.print(": "); bid_data = i2c_eeprom_read_byte( BID_ADDRESS, i ); Serial.println(bid_data, HEX); switch (i) { case 2: //Actual Chaged Capacity (mAh) High Byte bid_actc_h = bid_data; break; case 3: //Actual Chaged Capacity (mAh) Low Byte bid_actc_l = bid_data; break; case 4: //Maximum Chaged Capacity (mAh) High Byte bid_maxc_h = bid_data; break; case 5: //Maxiimum Chaged Capacity (mAh) Low Byte bid_maxc_l = bid_data; break; case 6: //Charging Cycles High Byte bid_chcnt_h = bid_data; break; case 7: //Charging Cycles Low Byte bid_chcnt_l = bid_data; break; case 64: //Year bid_year = bid_data; break; case 65: //Month bid_month = bid_data; break; case 66: //Day bid_day = bid_data; break; case 67: //Accu Type bid_acctyp = bid_data; break; case 68: //Cells bid_cells = bid_data; break; case 69: //Capacaity(mAh) High Byte bid_cap_h = bid_data; break; case 70: //Capacaity(mAh) Low Byte bid_cap_l = bid_data; break; case 71: //Charg. Current(mA) High Byte bid_chcurr_h = bid_data; break; case 72: //Charg. Current(mA) Low Byte bid_chcurr_l = bid_data; break; case 73: //Discharg. Current(mA) High Byte bid_dchcurr_h = bid_data; break; case 74: //Discharg. Current(mA) Low Byte bid_dchcurr_l = bid_data; break; } delay(5); } Serial.println("End EEPROM_READ"); Serial.println("BID Daten:"); Serial.print("Datum: "); Serial.print(bid_day); Serial.print("."); Serial.print(bid_month); Serial.print("."); Serial.print(2000 + bid_year); Serial.println(""); Serial.print("Akku-Typ: "); switch (bid_acctyp) { case 0: Serial.print("NiCd"); break; case 1: Serial.print("NiMH"); break; case 2: Serial.print("LiPo"); break; default: Serial.print(bid_acctyp); Serial.print("?"); break; } Serial.println(""); Serial.print("Zellenzahl: "); Serial.print(bid_cells); Serial.print(" -> "); switch (bid_acctyp) { case 0: Serial.print(1.2 * bid_cells); break; case 1: Serial.print(1.2 * bid_cells); break; case 2: Serial.print(3.7 * bid_cells); break; } Serial.print(" V"); Serial.println(""); Serial.print("Kapazitaet: "); Serial.print(bid_cap_h * 256 + bid_cap_l); Serial.print(" mAh"); Serial.println(""); Serial.print("Ladestrom: "); Serial.print(bid_chcurr_h * 256 + bid_chcurr_l); Serial.print(" mA"); Serial.println(""); Serial.print("Entladestrom: "); Serial.print(bid_dchcurr_h * 256 + bid_dchcurr_l); Serial.print(" mA"); Serial.println(""); Serial.print("akt. Lad.: "); Serial.print(bid_actc_h * 256 + bid_actc_l); Serial.print(" mAh"); Serial.println(""); Serial.print("max. Lad.: "); Serial.print(bid_maxc_h * 256 + bid_maxc_l); Serial.print(" mAh"); Serial.println(""); Serial.print("Ladezyklen: "); Serial.print(bid_chcnt_h * 256 + bid_chcnt_l); Serial.println(""); // ... } void loop() { // ... // ... }

Vielleicht hilft dir das weiter.

Gruß
Onki
Gruß aus dem Nordschwarzwald
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.
von onki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • wiff
  • wiff's Avatar Offline
  • Premium Mitglied
  • Premium Mitglied
  • Wolfgang
  • Beiträge: 83
  • Dank erhalten: 25

wiff antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie

Posted 07 März 2016 20:12 #72
Hallo Onki,
danke für den Code - das hilft wirklich.
Deine Ideen werden mir allerdings (fast) schlaflose Nächte bereiten :pinch: - hab' soeben das entdeckt:
apollo.open-resource.org/mission:log:201...icharger-data-logger (genau diesen Lader verwende ich)

Damit könnte man z.B. einen Raspi nehmen und ein NCF Board und den Lader anschliessen. Du hättest damit ein in sich geschlossenes System, mit alle relevanten Daten Deiner Akkupacks verwaltet werden können.

Durch den NFC-Reader im Flieger weiss man, welcher Akku geflogen wurde, der Jeti-Sender zeichnet Leistungsentnahme und Temperatur auf, der Raspi, der mit dem Lader verbunden ist, weiss, welcher Akku mit wieviel Wh bzw. Ah geladen wurde!
All diese Info kannst Du auf den NFC Tag des jeweiligen Akkus zurückschreiben.

Gruss, Wolfgang
Wolfgang
Last Edit:07 März 2016 20:13 von wiff
Letzte Änderung: 07 März 2016 20:13 von wiff.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 1.055 Sekunden