Liebe Jeti-Sensor-Gurus,
nachdem ich mir nicht sicher bin, ob meine PN an Bernd gestern rausging und vielleicht auch andere an dem Thema interessiert sind, schreib ich mein Anliegen hier nochmals auf.
Ich möchte, wie schon auf Seite 2 dieses Threads beschrieben, einen Sensor bauen, der meinen Akku-Packs auf die Finger schaut.
d.h. Aufzeichnet welcher Akku verwendet wird (mittels NFC Tag) und auch die Temperatur misst (per IR Sensor).
Besonderheit: ich fliege mit 2 Akkupacks (F3A).
Die Zutaten sind:
PN 532 NFC Reader
http://www.play-zone.ch/de/dk-pn532-nfc-rfid-mini-breakout-board.html
TMP007 Infrarot Temp Sensor von Texas Instruments
http://www.play-zone.ch/de/adafruit-kontaktloses-temperatur-sensor-breakout-tmp007.html
Kleine, aufklebbare NFC Tags (MiFare Ultralight):
http://www.play-zone.ch/de/tinkerforge-nfc-aufkleber-5-stk-transparent.html
Die meisten Libraries für NFC Chips können mit den kreditkartengrossen MiFare Classic Tags umgehen.
Die kleinen MiFare Ultralight Tags werden leider vernachlässigt.
Nach längerer Suche habe ich dann diese Library gefunden, die Ultralight Tags lesen und schreiben kann:
https://github.com/nurun/arduino_NFC
Da die TMP007 über den I2C Bus kommunizieren, wollte ich auch die NFC Boards an diesen Bus anschliessen.
Mit zwei TMP007 und einem PN532 funktioniert das Ganze schon mal ansatzweise.
ABER: der PN532 nur eine fixe I2C Adresse, die man nicht ändern kann
.
OK, der Teensy hat ja zwei getrennte I2C Bus-Systeme, also sollte das kein Problem sein, da es eine Library für den Teensy gibt, mit dem man den zweiten I2C Bus nutzen kann:
https://github.com/nox771/i2c_t3
Leider bin ich offenbar der Erste, der 2 NFC Boards anschliessen möchte....
Die i2c_t3 Library habe ich in die arduino_NFC und in die TMP007 Libraries einbauen können, aber jetzt hänge ich an dem Problem, dass ich nicht weiss, wie man der arduino_NFC Lib zwei Boards beibringen kann, weil hier meine Arduino-Programmierkünste eindeutig am Ende sind.
Meine Programmierkenntnisse sind hier leider am Anschlag und ich hoffe daher stark, dass jemand von Euch in objektorientierter Ardunino-Programmierung fitter ist als ich (na ja, besonders fit bin ich eh nicht
)
Aus dem Bespiel:
https://github.com/nurun/arduino_NFC/blob/master/examples/read_mifare/read_mifare.ino
...
23 #define IRQ 2
24 #define RESET 3
25
26 PN532 * board = new PN532_I2C(IRQ, RESET);
im Code der Library:
https://github.com/nurun/arduino_NFC/blob/master/Mifare.h
36 extern PN532 * board; <=== etwas unschlau, oder ?
und danach:
https://github.com/nurun/arduino_NFC/blob/master/Mifare.cpp
30 if (! board->sendCommandCheckAck(packetbuffer, 4))
31 return false;
Hätte jemand einen Umbautipp ?
Ideal wäre es, zwei PN532 Boards, die an den zwei Teensy I2C Bussystemen angeschlossen sind, ansprechen zu können (an einem Bus hängen zwei TMP007 Sensoren und ein PN532, am anderen I2C Bus der andere PN532).
Eine weitere Möglichkeit wäre ein I2C Multiplexer, der auch den Arduino-Fans Freude machen würde. Dann müsste man eine I2C Adresse übergeben können.
Herzliche Grüsse und vielen Dank für Eure Hilfe,
Wolfgang