Moje skúsenosti s WiDo WIFI node
- November 01 2017
- Návody a rady / Tutorials
- 2054x Přečteno
![](images/articles/WIDO_Arduino_Leonardo_CC3000/WiDo_pic.jpeg)
Článek mi zaslal Richard Štefún, za zaslání článku mu tímto děkuji.
Dostala sa mi do rúk vývojová doska pre IOT aplikácie s názvom WiDo od DFRobot. Jej konštrukcia sa podobá doske Arduino Leonardo, avšak okrem mikrokontroléru ATMEGA32U4 sa na nej nachádza i slot pre SD kartu a WIFI modul CC3000. Tento modul využíva aj menej známy "Adafruit HUZZAH WiFi Breakout Board", ktorého knižnice výrobca odporúča používať. Doska na prvý pohľad pôsobí naozaj zaujímavo, no počas reálneho používania som narazil na viacero limitácií, ktoré ju žiaľ aspoň pre mňa robia celkom nezaujímavou.
Potrebné knižnice pre integrovaný WiFi modul dokážeme nájsť aj v Arduino Library Manageri. Stačí zadať heslo "Adafruit CC3000 Library" a stiahneme najnovšiu verziu. Ak používame staršiu verziu Arduina, knižnica je taktiež dostupná na GitHub repozitári Adafruitu.
Najskôr som sa rozhodol otvoriť example z danej knižnice s názvom "InternetTime", keďže tým môžem otestovať pripojenie k bezdrôtovej sieti a zároveň zistím, či doska dokáže komunikovať s hocijakým vzdialeným serverom. V example je potrebné zmeniť define "ADAFRUIT_CC3000_IRQ" z čísla 3 na číslo 7. O niečo nižšie napíšeme názov AP a heslo, pomocou ktorého sa bude doska pripájať ku sieti. Zvolíme serial port dosky, otvoríme Serial Monitor, nastavíme baud rate na 115200 a uploadujeme program. Tu som narazil na prvý problém. Doska sa nedokázala pripojiť na moju sieť a stále som nedokázal zistiť, prečo.
Po preštudovaní dokumentácie modulu som prišiel na to, že podporuje len WIFI štandardy B/G a nie N, ktorý som ako jediný na svojej domácej sieti mal zapnutý. Po prekonfigurovaní domáceho routera sa doska pripojila na sieť a do Serial Monitoru začala ukazovať presný čas získaný zo serverov.
Po vyskúšaní daného exampleu som sa rozhodol využiť server ThingSpeak, aby som dokázal zosnímané dáta mikrokontrolérom prenášať na ich server, avšak tento pokus dopadol neúspešne. Prešiel som viacero dostupných exampleov, skúšal rôzne iné služby ako napríklad Ubidots či Blynk, ale každý pokus dopadol tak, že po pár odoslaných packetoch sa software jednoducho zasekol a nedokázal pracovať ďalej. Skúšal som i rozličné verzie knižníc pre CC3000, iné verzie Arduino IDE, no bohužiaľ tu pretrvával rovnaký problém.
Rozhodol som sa preto aktualizovať firmware WIFI modulu pomocou sketchu "driverpatch_1_13", avšak na moje nemilé prekvapenie po nahratí tohto sketchu do WiDo sa program jednoducho zasa zasekol, čiže som sa musel uspokojiť so staršou verziou firmware, kde sa mi nakoniec podarilo sfunkčniť jedine framework aRest, pomocou ktorého je možné ovládať výstupné periférie príkazmi po sieti.
Na rozbehanie frameworku aRest je potrebná knižnica "CC3000_MDNS.h" ktorá je taktiež dostupná na GitHube. Po nainštalovaní knižnice aRest stačí ak otvoríme example "WiFi_CC3000", prepíšeme IRQ pin na číslo 7 a do príslušných premenných prepíšeme meno a heslo našej WIFI. Potom už len musíme počkať, dokedy sa WiDo pripojí na sieť a na hociktorom zariadení pripojenom do lokálnej siete je potrebné následne zadať adresu http://(ip-adresa-WiDa)/digital/13/1. Na doske sa potom rozsvieti biela led pripojená na pin 13. Viacej informácií o frameworku môžete nájsť na jeho oficiálnej stránke https://arest.io/get-started.
https://github.com/adafruit/CC3000_MDNS
https://github.com/Arduinolibrary/DFRobot_WiDo_Arduino_IOT_Board_DFR0321/raw/master/Adafruit_CC3000_Library.rar
![](images/articles/WIDO_Arduino_Leonardo_CC3000/WiDo_pic.jpeg)
![](images/articles/WIDO_Arduino_Leonardo_CC3000/WiDo_gif.gif)