Table des matières:

Edison me fait un café (code): 3 étapes
Edison me fait un café (code): 3 étapes

Vidéo: Edison me fait un café (code): 3 étapes

Vidéo: Edison me fait un café (code): 3 étapes
Vidéo: Créer un site en HTML (1/5) - 3 minutes pour coder avec Micode 2024, Juillet
Anonim
Edison me fait un café (code)
Edison me fait un café (code)

Ce projet vous permettra de déclencher une action (comme servir un café) une fois qu'un client WiFi est détecté dans un réseau WiFi (comme lorsque vous ou vos employés vous rendez à votre bureau).

Étape 1: Configurez votre Intel Edison

Configurez votre Intel Edison
Configurez votre Intel Edison

Connectez les deux câbles USB de votre ordinateur à la carte Edison (un pour l'alimentation, un pour les données série). Sous OSX, ouvrez une connexion série à la carte depuis votre terminal:screen /dev/tty.usbserial-AJ035OK6 115200 -LLe login Edison par défaut est root. Une fois que vous y êtes, configurez le réseau wifi: configure_edison --wifi Ajoutons la liste des sources pour pouvoir télécharger des packages depuis Edison. Ouvrez ce fichier:root@edison:~# vi /etc/opkg/base-feeds.confEt ajoutez-y ces lignes (tapez "i" pour pouvoir insérer du texte dans l'éditeur 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 -32Ensuite, mettez à jour les sources et installez les bibliothèques requises pour notre projet: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 ubidotsDone ! maintenant nous sommes prêts à coder. Détecter quand j'arrive à mon bureauNous utiliserons le renifleur de paquets Scapy pour pouvoir détecter le trafic ARP dans le réseau wifi local. Scapy est un excellent outil qui vous permet de gérer les paquets réseau à partir d'un script Python. Sans cela, nous aurions à analyser beaucoup de code binaire lors du reniflage du trafic réseau. Notre premier script recherchera les adresses MAC stockées dans un fichier csv appelé "dictionary.csv", puis enverra la valeur "1" à une variable Ubidots, ce qui signifie que la personne est arrivée. Si l'adresse MAC est vue pour la première fois, alors le script créera automatiquement une variable Ubidots pour stocker les données. Notez la ligne: sniff(prn = arp_count, filter="arp", store = 0) qui déclenche la fonction " arp_count(pkt)" à chaque fois qu'un paquet ARP est reniflé. Cette fonction est l'endroit où nous lançons des multi-processus pour mettre à jour la variable Ubidots. La raison pour laquelle j'ai utilisé le multitraitement est que j'avais besoin d'une fonction parallèle pour que, si deux utilisateurs arrivent en même temps, les deux paquets puissent être reniflés et mis à jour dans Ubidots. L'option "store = 0" est très importante car sinon les paquets seraient commencer à remplir la mémoire RAM et Swap d'Edison et elle se figerait après quelques heures.https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csvhttps://halckemy.s3.amazonaws.com /uploads/document/file/46543/wifi_sniff.py

Étape 2: déclencher un servo lorsque le paquet ARP est reniflé

Déclencher un servo lorsque le paquet ARP est reniflé
Déclencher un servo lorsque le paquet ARP est reniflé

Le deuxième script interrogera cette variable Ubidots tout le temps (celle à laquelle nous envoyons "0" ou "1") et activera le servo lorsque la variable est égale à "1". J'utilise la bibliothèque MRAA (suggérée par les gens d'Intel) qui vous permet de gérer toutes les broches GPIO de votre Edison à partir du shell Linux ou d'un script python (vraiment, pas besoin de coder en Arduino !). Cela m'a permis de gérer rapidement un servomoteur de Python.https://halckemy.s3.amazonaws.com/uploads/document/file/46556/pour_coffee.pyLe servo est attaché à la broche D3 du kit Grove. Vous pouvez configurer ce servomoteur pour déclencher n'importe quelle valve physique, comme une machine à café. J'ai fait un simple porte-gobelet pour le plaisir de la démo. Btw vous pouvez également créer un "Switch" dans votre tableau de bord et contrôler le bec verseur de café manuellement:

Étape 3: Veuillez voter

S'il vous plait, votez!!! Pour la vidéo:

Conseillé: