Schritt 5: XBee Bibliothek Diskussion
Allerdings brauchen wir keine SD-Karte, denn wir werden diese Daten an einen Computer zu streamen. Meine Waffe der Wahl für diese Aufgabe ist die XBee. Dies sind große Module, die eine ganze Menge mehr als nur senden und empfangen von blind. Sie müssen zwei XBees im API-Modus konfigurieren. Wenn Sie unsicher sind, wie Sie dies tun, entnehmen Sie bitte meiner instructable auf API-Modus XBees. Ich habe zwei Serie 1 XBees, denn ich habe mehrere herumliegen und ich brauche nicht zu bewältigen-Koordinator/Router/Ende Geräteeinstellungen (zuviel denken).
Wir verwenden Sie API-Modus leichter sicherstellen, dass jedes Paket senden wir empfangen wird. Wenn der Sender im API-Modus des Empfängers Prüfsumme wird das Paket an Stellen Sie sicher, dass es nicht beschädigt ist und so mit einer Lieferung Status (ACK) Paket Antworten weiß, es wurde erfolgreich gesendet. Schreiben Sie Ihre eigene XBee-Bibliothek, aber ich würde empfehlen, mit dem XBee-Java-API geschrieben von Andrew Rapp.
Gibt es eine Python-Entsprechung dieser Bibliothek, die ich verwenden wollte, aber konnte nicht zum laufen zu bringen. Die XBee-Python-API hängt PySerial. Jedes Mal, wenn die XBee 0x13 sendet, kodiert PySerial das Byte als 0x7D 0x33. Herausstellt, dass es 3 anderen Problem Bytes gibt: 0x11, 0x91 und 0x93. Stellt sich heraus, dass "Einige Modems mit Software-Flusssteuerung abfangen können ausgehende DC1 und DC3 ignorieren das 8. Bit (Parität). Diese Daten würden auf den Link wie folgt übermittelt werden":
- 0x11 wird kodiert als 0x7d, 0x31. (XON)
- 0x13 wird kodiert als 0x7d, 0x33. (XOFF)
- 0x91 wird kodiert als 0x7d, 0xb1. (XON mit Parität)
- 0x93 wird kodiert als 0x7d, 0xb3. (XOFF mit Parität)
Ich versuchte alle mögliche Einstellungen mit PySerial und war nicht in der Lage, diese Codierung Problem zu lösen. So... Früher habe ich die XBee-Java-API, die perfekt funktioniert!