Spisu treści:

Edison robi mi kawę (kod): 3 kroki
Edison robi mi kawę (kod): 3 kroki

Wideo: Edison robi mi kawę (kod): 3 kroki

Wideo: Edison robi mi kawę (kod): 3 kroki
Wideo: Kati,Maja,Palion szczypson tańczą! 2024, Lipiec
Anonim
Edison robi mi kawę (kod)
Edison robi mi kawę (kod)

Ten projekt pozwoli Ci wyzwolić akcję (np. podanie kawy) po wykryciu klienta WiFi w sieci WiFi (np. gdy Ty lub Twoi pracownicy dostaniecie się do biura).

Krok 1: Skonfiguruj Intel Edison

Skonfiguruj swojego Intel Edison
Skonfiguruj swojego Intel Edison

Podłącz dwa kable USB z komputera do płyty Edisona (jeden do zasilania, jeden do danych szeregowych). W OSX otwórz połączenie szeregowe z płytą główną z terminala:screen /dev/tty.usbserial-AJ035OK6 115200 -LDomyślny login Edisona to root. Po wejściu skonfiguruj sieć Wi-Fi:configure_edison --wifiDodaj listę źródeł, aby móc pobierać pakiety z Edisona. Otwórz ten plik:root@edison:~# vi /etc/opkg/base-feeds.confI dodaj do niego te linie (wpisz "i", aby móc wstawić tekst do edytora vi):src/gz all https:// /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 -32Następnie zaktualizuj źródła i zainstaluj wymagane biblioteki dla naszego projektu: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 install ubidotsGotowe! teraz jesteśmy gotowi do kodowania. Wykryj, kiedy dotrę do biura. Użyjemy sniffera pakietów Scapy, aby móc wykryć ruch ARP w lokalnej sieci Wi-Fi. Scapy to świetne narzędzie, które pozwala obsługiwać pakiety sieciowe z łatwością skryptu Python. Bez tego musielibyśmy parsować dużo kodu binarnego podczas sniffowania ruchu sieciowego. Nasz pierwszy skrypt będzie szukał adresów MAC przechowywanych w pliku csv o nazwie „dictionary.csv”, a następnie wyśle wartość „1” do zmiennej Ubidots, co oznacza, że osoba przybyła. Jeśli adres MAC zostanie wyświetlony po raz pierwszy, skrypt automatycznie utworzy zmienną Ubidots do przechowywania danych. Zwróć uwagę na wiersz: sniff(prn = arp_count, filter="arp", store = 0), który uruchamia funkcję " arp_count(pkt)" za każdym razem, gdy sniffowany jest pakiet ARP. W tej funkcji uruchamiamy wiele procesów, aby zaktualizować zmienną Ubidots. Powodem, dla którego użyłem Multiprocessing, jest to, że potrzebowałem funkcji równoległej, aby w przypadku przybycia dwóch użytkowników w tym samym czasie oba pakiety mogły być sniffowane i aktualizowane w Ubidots. Opcja „store = 0” jest bardzo ważna, ponieważ w przeciwnym razie pakiety zacznij wypełniać pamięć RAM i Swap Edisona, a po kilku godzinach zawiesza się.https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csvhttps://halckemy.s3.amazonaws.com /uploads/document/file/46543/wifi_sniff.py

Krok 2: Uruchom serwo, gdy pakiet ARP zostanie sniffowany

Uruchom serwo po wykryciu pakietu ARP
Uruchom serwo po wykryciu pakietu ARP

Drugi skrypt będzie cały czas odpytywał tę zmienną Ubidots (ta, do której wysyłamy „0” lub „1”) i aktywuje serwo, gdy zmienna ma wartość „1”. Używam biblioteki MRAA (sugerowanej przez ludzi Intela), która pozwala na obsługę wszystkich pinów GPIO twojego Edisona z powłoki Linux lub skryptu Pythona (naprawdę, nie ma potrzeby kodowania w Arduino!). To pozwoliło mi szybko obsłużyć silnik Servo z Pythona.https://halckemy.s3.amazonaws.com/uploads/document/file/46556/pour_coffee.pyServo jest podłączone do pinu D3 w zestawie Grove. Możesz skonfigurować to Servo, aby uruchomić dowolny fizyczny zawór, taki jak ekspres do kawy. Zrobiłem prosty uchwyt na kubek na potrzeby demo. Przy okazji możesz też stworzyć "Switch" w desce rozdzielczej i ręcznie sterować nalewakiem kawy:

Krok 3: Proszę zagłosuj

Proszę Głosuj!!! Film:

Zalecana: