Mundarija:

Edison menga qahva beradi (kod): 3 qadam
Edison menga qahva beradi (kod): 3 qadam

Video: Edison menga qahva beradi (kod): 3 qadam

Video: Edison menga qahva beradi (kod): 3 qadam
Video: 🤔 Erim har kuni 2-3 marta qo'shilaylik, birga bo'laylik, yaqinlik qilaylik deydi. | Fayoz Aminov 2024, Iyul
Anonim
Edison menga qahva beradi (kod)
Edison menga qahva beradi (kod)

Ushbu loyiha sizga WiFi tarmog'ida WiFi mijozi aniqlanganda (masalan, siz yoki sizning xodimlaringiz ofisingizga etib kelganida) harakatni (qahva berish kabi) boshlashga imkon beradi.

1 -qadam: Intel Edison -ni o'rnating

Intel Edison -ni o'rnating
Intel Edison -ni o'rnating

Kompyuteringizdagi ikkita usb kabelini Edison kartasiga ulang (bittasi quvvat uchun, bittasi ketma -ket ma'lumotlar uchun). OSX -da, terminaldan kartaga ketma -ket ulanishni oching: ekran /dev/tty.usbserial-AJ035OK6 115200 -L Edisonga standart kirish -bu root. Siz kirganingizdan so'ng, wifi tarmog'ini sozlang: configure_edison --wifi Edisondan paketlarni yuklab olish uchun manba ro'yxatini qo'shamiz. Bu faylni oching: root@edison: ~# vi /etc/opkg/base-feeds.confVa bu qatorlarni unga qo'shing (vi muharririga matn kiritish uchun "i" yozing): 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 -32Keyin manbalarni yangilang va loyihamiz uchun kerakli kutubxonalarni o'rnating: root@edison: ~# opkg updateroot@edison: ~# opkg install libmraa0 nanoroot@edison: ~# opkg python-piproot@edison ni o'rnating: ~# curl https:/ /bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | pythonroot@edison: ~# pip install ubidotsDone! Endi biz kodlashga tayyormiz. Ishxonamga kelganimda aniqlang Mahalliy Wi -Fi tarmog'ida ARP -trafikni aniqlash uchun Scapy paketli snifferdan foydalanamiz. Scapy - bu tarmoq paketlarini Python skriptidan oson boshqarish imkonini beradigan ajoyib vosita. Bu holda, biz tarmoq trafigini aniqlashda ko'p ikkilik kodni tahlil qilishimiz kerak bo'ladi, bizning birinchi skriptimiz "dictionary.csv" nomli csv faylida saqlangan MAC manzillarini qidiradi va keyin "1" qiymatini Ubidots o'zgaruvchisiga yuboradi. bu odamning kelganligini bildiradi. Agar MAC manzili birinchi marta ko'rinadigan bo'lsa, u holda skript avtomatik ravishda ma'lumotlarni saqlash uchun Ubidots o'zgaruvchisini yaratadi. Qatorga e'tibor bering: sniff (prn = arp_count, filter = "arp", store = 0). arp_count (pkt) "har safar ARP paketini hidlashda. Bu funktsiya Ubidots o'zgaruvchisini yangilash uchun biz ko'p jarayonlarni ishga tushiramiz. "Multiprocessing" ni ishlatganimning sababi shundaki, men parallel funktsiyaga muhtoj edim, agar ikkita foydalanuvchi bir vaqtning o'zida kelsa, Ubidots -da ikkala paketni ham hidlash va yangilash mumkin. "Store = 0" varianti juda muhim, chunki aks holda paketlar Edison operativ xotira va almashtirish xotirasini to'ldirishni boshlang va u bir necha soatdan keyin muzlab qoladi. /uploads/document/file/46543/wifi_sniff.py

2 -qadam: ARP paketini hidlashda xizmat ko'rsatishni ishga tushiring

ARP paketi hidlanganida, Servo ishga tushadi
ARP paketi hidlanganida, Servo ishga tushadi

Ikkinchi skript Ubidots o'zgaruvchisining so'rovini o'tkazadi (biz "0" yoki "1" ni yuboramiz) va o'zgaruvchi "1" ga teng bo'lganda servoni faollashtiradi. Men Edison -ning barcha GPIO pinlarini Linux qobig'idan yoki python skriptidan boshqarishga imkon beradigan MRAA kutubxonasidan (Intel tomonidan taklif qilingan) foydalanayapman (Arduino -da kod yozishning hojati yo'q!). Bu menga Python -dan Servo dvigatelini tezda boshqarishga imkon berdi. Servo Grove to'plamidagi D3 piniga biriktirilgan. Siz ushbu Servo -ni qahva mashinasi kabi har qanday jismoniy valfni ishga tushirish uchun sozlashingiz mumkin. Men demo uchun oddiy chashka ushlagichini yasadim. Bundan tashqari, asboblar panelida "Kommutator" ni yaratish va qahva quyish moslamasini qo'lda boshqarish mumkin:

3 -qadam: Iltimos, ovoz bering

Iltimos ovoz bering !!! Video uchun:

Tavsiya: