Оглавление:
Видео: Эдисон делает мне кофе (код): 3 шага
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Этот проект позволит вам инициировать действие (например, подачу кофе) после обнаружения клиента Wi-Fi в сети Wi-Fi (например, когда вы или ваши сотрудники добираетесь до вашего офиса).
Шаг 1. Настройте свой 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
Второй скрипт будет опрашивать эту переменную Ubidots все время (той, которой мы отправляем «0» или «1») и активировать сервопривод, когда переменная равна «1». Я использую библиотеку MRAA (предложенную разработчиками Intel), которая позволяет вам обрабатывать все контакты GPIO вашего Edison из оболочки Linux или скрипта python (на самом деле, нет необходимости кодировать в Arduino!). Это позволило мне быстро управлять серводвигателем из Python. Вы можете настроить этот сервопривод на запуск любого физического клапана, например, кофемашины. Я сделал простой подстаканник для демонстрации. Кроме того, вы также можете создать «Переключатель» на панели инструментов и управлять устройством для розлива кофе вручную:
Шаг 3. Проголосуйте, пожалуйста
Пожалуйста проголосуйте !!! Для видео: