Inhaltsverzeichnis:

Edison macht mir einen Kaffee (Code) - Gunook
Edison macht mir einen Kaffee (Code) - Gunook

Video: Edison macht mir einen Kaffee (Code) - Gunook

Video: Edison macht mir einen Kaffee (Code) - Gunook
Video: Ich bin mir gar nichts mehr, Thorsten.. 2024, Juli
Anonim
Edison macht mir einen Kaffee (Code)
Edison macht mir einen Kaffee (Code)

Mit diesem Projekt können Sie eine Aktion auslösen (z. B. Kaffee servieren), sobald ein WLAN-Client in einem WLAN-Netzwerk erkannt wird (z. B. wenn Sie oder Ihre Mitarbeiter in Ihrem Büro ankommen).

Schritt 1: Einrichten Ihres Intel Edison

Einrichten Ihres Intel Edison
Einrichten Ihres Intel Edison

Verbinden Sie die beiden USB-Kabel von Ihrem Computer mit der Edison-Platine (eines für die Stromversorgung, eines für die seriellen Daten). Öffnen Sie in OSX von Ihrem Terminal aus eine serielle Verbindung zum Board:screen /dev/tty.usbserial-AJ035OK6 115200 -LDer Standard-Edison-Login ist root. Sobald Sie drin sind, konfigurieren Sie das WLAN-Netzwerk:configure_edison --wifiLass uns die Quellenliste hinzufügen, um Pakete von Edison herunterladen zu können. Öffnen Sie diese Datei:root@edison:~# vi /etc/opkg/base-feeds.confUnd fügen Sie diese Zeilen hinzu (geben Sie "i" ein, um Text in den vi-Editor einfügen zu können):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 Dann aktualisieren Sie die Quellen und installieren Sie die erforderlichen Bibliotheken für unser Projekt: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 ubidotsFertig! Jetzt können wir codieren. Erkennen, wenn ich in meinem Büro ankomme Wir verwenden den Scapy-Paket-Sniffer, um ARP-Verkehr im lokalen WLAN-Netzwerk erkennen zu können. Scapy ist ein großartiges Tool, mit dem Sie Netzwerkpakete mit der Leichtigkeit eines Python-Skripts verarbeiten können. Ohne sie müssten wir beim Sniffen des Netzwerkverkehrs viel Binärcode parsen. Unser erstes Skript sucht nach MAC-Adressen, die in einer csv-Datei namens "dictionary.csv" gespeichert sind, und sendet dann den Wert "1" an eine Ubidots-Variable, was bedeutet, dass die Person angekommen ist. Wenn die MAC-Adresse zum ersten Mal angezeigt wird, erstellt das Skript automatisch eine Ubidots-Variable zum Speichern der Daten. Beachten Sie die Zeile: sniff(prn = arp_count, filter="arp", store = 0)welche die Funktion auslöst " arp_count(pkt)" jedes Mal, wenn ein ARP-Paket gesnifft wird. In dieser Funktion feuern wir mehrere Prozesse ab, um die Ubidots-Variable zu aktualisieren. Der Grund, warum ich Multiprocessing verwendet habe, ist, dass ich eine parallele Funktion benötige, damit, wenn zwei Benutzer gleichzeitig ankommen, beide Pakete in Ubidots gesnifft und aktualisiert werden können. Die Option "store = 0" ist sehr wichtig, da sonst die Pakete würden Beginnen Sie damit, den Arbeitsspeicher und den Swap-Speicher des Edison zu füllen, und es würde nach ein paar Stunden einfrieren.https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csvhttps://halckemy.s3.amazonaws.com /uploads/document/file/46543/wifi_sniff.py

Schritt 2: Triggern Sie einen Servo, wenn das ARP-Paket gesnifft wird

Triggern Sie einen Servo, wenn das ARP-Paket gesnifft wird
Triggern Sie einen Servo, wenn das ARP-Paket gesnifft wird

Das zweite Skript fragt ständig diese Ubidots-Variable ab (diejenige, an die wir "0" oder "1" senden) und aktiviert den Servo, wenn die Variable gleich "1" ist. Ich verwende die MRAA-Bibliothek (vorgeschlagen von den Intel-Leuten), mit der Sie alle GPIO-Pins Ihres Edison von der Linux-Shell oder einem Python-Skript aus verarbeiten können (wirklich, kein Code in Arduino erforderlich!). Dadurch konnte ich schnell einen Servomotor von Python handhaben. Sie können diesen Servo so einrichten, dass er ein beliebiges physisches Ventil wie eine Kaffeemaschine auslöst. Ich habe für die Demo einen einfachen Getränkehalter gemacht. Übrigens können Sie auch einen "Schalter" in Ihrem Dashboard erstellen und den Kaffeeausgießer manuell steuern:

Schritt 3: Bitte abstimmen

Bitte abstimmen!!! Für das Video:

Empfohlen: