Étape 1: Configurer votre Edison Intel
écran /dev/tty.usbserial-AJ035OK6 115200 - L
La valeur par défaut de connexion Edison est racine. Une fois que vous êtes, configurer le réseau wifi :
configure_edison--wifi
Ajoutons à la liste des sources pour être en mesure de télécharger les paquets de l’Edison. Ouvrez ce fichier :
racine vi /etc/opkg/base-feeds.conf
Et ajouter ces lignes (type « i » pour pouvoir insérer du texte dans l’éditeur vi) :
SRC/gz http://repo.opkg.net/edison/repo/all tous
SRC/gz edison http://repo.opkg.net/edison/repo/edison
SRC/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
Puis mettre à jour les sources et installez les bibliothèques requises pour notre projet :
mise à jour de racine opkg
racine opkg installer libmraa0 nano
racine opkg installer python-pip
https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py curl racine | python
racine pip install ubidots
Fait ! Nous sommes maintenant prêts à code.
Détecter le moment où j’arrive à mon bureau
Nous allons utiliser le renifleur de paquets Scapy afin de pouvoir détecter le trafic ARP dans le réseau local wifi. Scapy est un excellent outil qui vous permet de gérer les paquets du réseau de la facilité d’un script Python. Sans elle, nous aurions à analyser beaucoup de code binaire lorsque renifler le trafic réseau.
Notre premier script va regarder dehors pour MAC adresses stockées dans un fichier csv, appelé « dictionary.csv » et puis envoie la valeur « 1 » à une variable de Ubidots, ce qui signifie que la personne est arrivé. Si l’adresse MAC est vu pour la première fois, puis le script créera automatiquement une variable Ubidots pour stocker les données.
Notez la ligne :
renifler (prn = arp_count, filtre = « arp », stocker = 0)
qui déclenche la fonction « arp_count(pkt) » chaque fois qu’un paquet ARP est reniflé. Cette fonction est où nous déclenche des processus multiples pour mettre à jour la variable Ubidots.
J’ai utilisé le multitraitement est parce que j’avais besoin d’une fonction parallèle afin que, si deux utilisateurs arrivent en même temps, puis les deux paquets peuvent être reniflés et mis à jour en Ubidots.
L’option "stocker = 0" est très important parce que sinon les paquets commencerait l’Edison de remplissage de la RAM et de mémoire Swap et il gèlerait après quelques heures.
https://halckemy.S3.amazonaws.com/uploads/document/file/46958/dictionary.csv
https://halckemy.S3.amazonaws.com/uploads/document/file/46543/wifi_sniff.py