Оглавление:

Эдисон делает мне кофе (код): 3 шага
Эдисон делает мне кофе (код): 3 шага

Видео: Эдисон делает мне кофе (код): 3 шага

Видео: Эдисон делает мне кофе (код): 3 шага
Видео: 😍Эдисон УЖЕ В ТИКТОКЕ!😝 #TIKTOK#тиктокиграет 2024, Июль
Anonim
Эдисон делает мне кофе (код)
Эдисон делает мне кофе (код)

Этот проект позволит вам инициировать действие (например, подачу кофе) после обнаружения клиента Wi-Fi в сети Wi-Fi (например, когда вы или ваши сотрудники добираетесь до вашего офиса).

Шаг 1. Настройте свой Intel Edison

Настройте свой Intel Edison
Настройте свой Intel Edison

Подключите два USB-кабеля от вашего компьютера к плате Edison (один для питания, другой для последовательных данных). В OSX откройте последовательное соединение с платой с вашего терминала: screen /dev/tty.usbserial-AJ035OK6 115200 -L По умолчанию для входа в Edison используется root. Как только вы войдете, настройте сеть Wi-Fi: configure_edison --wifi Давайте добавим список источников, чтобы иметь возможность загружать пакеты из Edison. Откройте этот файл: root @ edison: ~ # vi /etc/opkg/base-feeds.conf и добавьте в него эти строки (введите «i», чтобы иметь возможность вставлять текст в редакторе 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 -32 Затем обновите исходные коды и установите необходимые библиотеки для нашего проекта: 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! Теперь мы готовы к написанию кода. Обнаружение, когда я приеду в свой офис. Мы будем использовать сниффер пакетов Scapy, чтобы иметь возможность обнаруживать трафик ARP в локальной сети Wi-Fi. Scapy - отличный инструмент, который позволяет обрабатывать сетевые пакеты с помощью скрипта Python. Без него нам пришлось бы анализировать большой объем двоичного кода при сниффинге сетевого трафика. Наш первый скрипт будет искать MAC-адреса, хранящиеся в CSV-файле с именем «dictionary.csv», а затем отправлять значение «1» в переменную Ubidots., что означает, что человек прибыл. Если MAC-адрес виден впервые, сценарий автоматически создаст переменную Ubidots для хранения данных. Обратите внимание на строку: sniff (prn = arp_count, filter = "arp", store = 0), которая запускает функцию " arp_count (pkt) "каждый раз, когда анализируется пакет ARP. В этой функции мы запускаем несколько процессов для обновления переменной Ubidots. Причина, по которой я использовал многопроцессорность, заключается в том, что мне нужна была параллельная функция, чтобы, если два пользователя приходят одновременно, оба пакета могут быть перехвачены и обновлены в Ubidots. Параметр store = 0 очень важен, потому что в противном случае пакеты будут начните заполнять ОЗУ Эдисона и память подкачки, и через несколько часов он замерзнет. https://halckemy.s3.amazonaws.com/uploads/document/file/46958/dictionary.csv /uploads/document/file/46543/wifi_sniff.py

Шаг 2: запуск сервопривода при обнаружении пакета ARP

Запуск сервопривода при обнаружении пакета ARP
Запуск сервопривода при обнаружении пакета ARP

Второй скрипт будет опрашивать эту переменную Ubidots все время (той, которой мы отправляем «0» или «1») и активировать сервопривод, когда переменная равна «1». Я использую библиотеку MRAA (предложенную разработчиками Intel), которая позволяет вам обрабатывать все контакты GPIO вашего Edison из оболочки Linux или скрипта python (на самом деле, нет необходимости кодировать в Arduino!). Это позволило мне быстро управлять серводвигателем из Python. Вы можете настроить этот сервопривод на запуск любого физического клапана, например, кофемашины. Я сделал простой подстаканник для демонстрации. Кроме того, вы также можете создать «Переключатель» на панели инструментов и управлять устройством для розлива кофе вручную:

Шаг 3. Проголосуйте, пожалуйста

Пожалуйста проголосуйте !!! Для видео:

Рекомендуемые: