Stap 5: XBee Radio 's
Neem een kijkje op het gegevensblad hier:
http://www.Sparkfun.com/datasheets/Wireless/ZigBee/XBee-Datasheet.PDF
De XBee heeft een heleboel functies, maar voor nu wij geïnteresseerd in slechts één land, die de mogelijkheid zijn is om transparant seriële gegevens verzenden.
Dus wat betekent dat?
Wanneer juist is geconfigureerd, kan de XBee vervangen de draden tussen uw micros die we in de vorige stap hebt ingesteld.
Stel je de mogelijkheden.
U kon uw eigen Draadloze deurbel of een afstandsbediening auto.
Je kon kabellengte tot sensoren in het dak en lees de waarden zonder de draden doorheen de muren of moetend houden klimmen naar het dak!
Dus, hoe we een XBee te fungeren als een transparant seriële verbinding configureren?
XBees worden geconfigureerd via de seriële poort.
Hebt u een windows-machine X-CTU kunt u de waarden instellen, maar als uw als me op een Mac of linux, u zult moeten praten seriële rechtstreeks naar de radio.
Ik heb geen ervaring met X-CTU, maar ladyada opgemaakt een goede tutorial hier:
http://www.ladyada.net/make/XBee/configure.html
Als u wilt direct gebruik van de seriële interface moet u enkele manier om een seriële verbinding vanaf uw computer met de XBee. Het kan niet een directe verbinding, zoals de spanningen verkeerd zijn (XBee heeft een maximum van 3.3V, seriële uit een computer kan zo hoog zijn als - 25v -> 25v!
U kunt de XBee adapter en FTDI chip van adafruit.com, of als u als me bent, kunt u improviseren!
Aanvankelijk ik gebruikte een Arduino met een schets van de seriële passthrough (bijgevoegd), u hoeft alleen maar om ervoor te zorgen u 3.3V macht.
Als alternatief (mijn arduino stierf onlangs :() zou u iets als een bus pirate.
De bus piraat is nu een van mijn favoriete tools na mijn multimeter, als je serieus krijgt in dit spul, kunt u overwegen het kopen van een, het zal je leven gemakkelijker maken!
Dus, ervan uitgaande dat u een seriële verbinding hebben met uw XBee, wat doe je?
To get out of transparante modus, moet u voor het verzenden van "+++" (zonder aanhalingstekens, geen regelinvoer / vervoer terug).
Als u de seriële console die wordt geleverd met de arduino IDE gebruikt, zorg ervoor dat u "Geen lijn ending" voordat de +++
Als je deed het goed, zal de XBee reageren met "OK"
Regelinvoer nu weer inschakelen en u kunt controleren en instellen van waarden.
Deze modus zal timeout, dus als het niet meer reageert, verzenden de +++ (met geen regelinvoer!)
Inspecteren van een instelling, typ de naam als volgt:
NI
Een waarde instellen:
NI = "Dak Sensor"
Als u wilt dat uw instellingen (u anders verliezen ze wanneer de stroom is uitgeschakeld) op te slaan:
WR
Kijk door het gegevensblad voor alle opties, ik ga naar de lijst van de instellingen die ik voor mijn project gebruikte.
Ik wilde alle de radio's om te werken in een broadcast-modus, maar u kan gemakkelijk het adres instellen of voor de hand (zoals ik heb gedaan met het broadcast-adres) of kunt u het van binnen uw microcontroller code instellen.
Dus, hier zijn mijn instellingen:
ID = 0X0508
DL = 0XFFFF
DH = 0X0
SM = 1
MIJN 0X1 =
RN = 0
NI = "Alarm 1"
RO = 0
Ik ben gewoon gaan om uit te leggen van een paar van de belangrijkste, u kunt kijken via het gegevensblad voor de rest.
ID: Dit is een groeps-ID
DL & DH: Dit zijn doeladres. In dit geval het ligt te zenden, zodat alle radio's in dezelfde groep de gegevens ontvangt
SM: Dit is de slaapstand, in dit geval was ik met behulp van Pin 9 om te zetten van de radio om te slapen (door te trekken de lijn hoog). Als je wakker uit zijn slaap, geven de radio over 14 MS wakker worden alvorens het te gebruiken (_delay_ms(14) zou werken).
MIJN: Dit is het adres / ID van deze bijzondere radio, ze moeten uniek zijn binnen een groep
NI: Knooppunt identificatie, een menselijk leesbare naam kun je de radio
Wanneer setup, vervangen de radio voor de draden van de seriële stap en pull pin 9 op grond (of een slaapstand niet ingesteld).
Het zou moeten werken net als vóór, maar nu de twee chips kunnen 30 meter (~ 100 voet) binnenshuis of 90 meter (~ 300 voet) weg buiten!