Cuprins:

Edison îmi face o cafea (cod): 3 pași
Edison îmi face o cafea (cod): 3 pași

Video: Edison îmi face o cafea (cod): 3 pași

Video: Edison îmi face o cafea (cod): 3 pași
Video: Un film bazat pe fapte reale _ 2024, Iulie
Anonim
Edison Makes Me a Coffee (cod)
Edison Makes Me a Coffee (cod)

Acest proiect vă va permite să declanșați o acțiune (cum ar fi servirea cafelei) odată ce un client WiFi este detectat într-o rețea WiFi (cum ar fi când dvs. sau angajații dvs. ajungeți la birou).

Pasul 1: configurați Intel Edison

Configurați-vă Intel Edison
Configurați-vă Intel Edison

Conectați cele două cabluri USB de la computer la placa Edison (unul pentru alimentare, unul pentru datele seriale). În OSX, deschideți o conexiune serială la placă de la terminalul dvs.: ecran /dev/tty.usbserial-AJ035OK6 115200 -L Conectarea implicită Edison este root. Odată ce vă aflați, configurați rețeaua wifi: configure_edison --wifi Să adăugăm lista de surse pentru a putea descărca pachete din Edison. Deschideți acest fișier: root @ edison: ~ # vi /etc/opkg/base-feeds.conf Și adăugați aceste rânduri la acesta (tastați „i” pentru a putea insera text în editorul vi): src / gz all http: / /repo.opkg.net/edison/repo/allsrc/gz edison https://repo.opkg.net/edison/repo/edisonsrc/gz core2-32 https://repo.opkg.net/edison/repo/core2 -32 Apoi actualizați sursele și instalați bibliotecile necesare pentru proiectul nostru: root @ edison: ~ # opkg updateroot @ edison: ~ # opkg install libmraa0 nanoroot @ edison: ~ # opkg install python-piproot @ edison: ~ # curl https: / /bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | pythonroot @ edison: ~ # pip instalează ubidotsDone! acum suntem pregătiți să codificăm. Detectați când ajung la biroul nostru Vom folosi snifferul de pachete Scapy pentru a putea detecta traficul ARP în rețeaua WiFi locală. Scapy este un instrument excelent care vă permite să gestionați pachetele de rețea din ușurința unui script Python. Fără el, ar trebui să analizăm o mulțime de cod binar atunci când adulmecăm traficul de rețea. Primul nostru script va căuta adresele MAC stocate într-un fișier CSV numit „dictionary.csv” și apoi va trimite valoarea „1” către o variabilă Ubidots, adică persoana a sosit. Dacă adresa MAC este văzută pentru prima dată, atunci scriptul va crea automat o variabilă Ubidots pentru a stoca datele. Notați linia: sniff (prn = arp_count, filter = "arp", store = 0) care declanșează funcția " arp_count (pkt) "de fiecare dată când se adulmecă un pachet ARP. Această funcție este cea în care declanșăm procese multiple pentru a actualiza variabila Ubidots. Motivul pentru care am folosit multiprocesarea este pentru că aveam nevoie de o funcție paralelă, astfel încât, dacă doi utilizatori ajung în același timp, ambele pachete pot fi adulmecate și actualizate în Ubidots. Opțiunea „store = 0” este foarte importantă pentru că altfel pachetele ar începeți să umpleți memoria Edison a memoriei și a swap-ului și ar îngheța după câteva ore. /uploads/document/file/46543/wifi_sniff.py

Pasul 2: Declanșați un servo când pachetul ARP este adulmecat

Declanșați un servo când pachetul ARP este adulmecat
Declanșați un servo când pachetul ARP este adulmecat

Cel de-al doilea script va interoga această variabilă Ubidots tot timpul (cea către care trimitem „0” sau „1”) și va activa servo-ul atunci când variabila este egală cu „1”. Folosesc biblioteca MRAA (sugerată de oamenii Intel) care vă permite să gestionați toți pinii GPIO ai Edison din shell-ul Linux sau un script python (într-adevăr, nu este nevoie să codificați în Arduino!). Acest lucru mi-a permis să gestionez rapid un motor Servo de la Python.https://halckemy.s3.amazonaws.com/uploads/document/file/46556/pour_coffee.py Servo-ul este atașat pinului D3 din kitul Grove. Puteți configura acest Servo pentru a declanșa orice supapă fizică, cum ar fi o mașină de cafea. Am făcut un simplu suport pentru ceașcă de dragul demo-ului. De asemenea, puteți crea un „Switch” în tabloul de bord și puteți controla manual turnatorul de cafea:

Pasul 3: Vă rugăm să votați

Va rog sa votati !!! Pentru videoclip:

Recomandat: