Оглавление:
- Шаг 1. Рекомендуемое чтение
- Шаг 2: материалы
- Шаг 3: Настройте Raspberry Pi
- Шаг 4: Создайте это! Аппаратное обеспечение
- Шаг 5: Создайте это! Программное обеспечение
- Шаг 6: Протестируйте и установите
Видео: IoT Pet Monitor !: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Следите за своими любимыми красотками и включайте музыку или говорите им, чтобы они молчали, пока вас нет! Из этого туториала Вы узнаете, как использовать компьютер Raspberry Pi для контроля громкости звука в вашем доме (через облако), чтобы узнать, расстроен ли и когда ваш питомец.
Барабанная дробь… самая интересная часть: если он станет слишком громким (например, лай Фидо или какой-то другой хриплый), мы можем сказать им, чтобы они замолчали или включили музыку!
Наряду с Pi (и динамиками) мы будем использовать коммутационную плату микрофона SparkFun MEMS для измерения уровней громкости и запуска аудиоплеера. Данные загружаются в сервис CloudMQTT с использованием протокола связи MQTT.
Общее время чтения: ~ 8 мин.
Общее время сборки: 60 мин (без опыта)
Огромное СПАСИБО SparkFun за поддержку этого проекта! Ознакомьтесь с руководством здесь.
Шаг 1. Рекомендуемое чтение
Для создания этого проекта вам понадобится полностью настроенный компьютер Raspberry Pi 3 с подключением к Wi-Fi и ОС Raspbian. Также полезно знать некоторые аспекты программирования на Python, а также следующие вещи: (1) как использовать и управлять контактами Raspberry Pi GPIO; (2) связь MQTT; и (3) аналоговые датчики. Если что-то из этого вам незнакомо или вам просто любопытно (будь любопытным!), Ознакомьтесь с инструкциями ниже!
Малина Pi 3
- Руководство по подключению к стартовому набору Raspberry Pi 3
- Малина Pi GPIO
- Связь SPI с Raspberry Pi
Протокол связи MQTT
MQTT (передача телеметрии запросов сообщений) - популярный протокол связи IoT. Мы будем использовать клиентскую библиотеку Python для Paho и службу MQTT под названием CloudMQTT. Подробнее о MQTT и о том, как его использовать:
- Изучение коммуникационных протоколов для Интернета вещей
- Начало работы с CloudMQTT
- Обзор клиентской библиотеки Eclipse Paho MQTT Python
Коммутационная плата для микрофона MEMS
Микрофон MEMS - это аналоговый микрофон, поэтому нам понадобится аналого-цифровой преобразователь («АЦП») для считывания аналогового сигнала с цифровых контактов GPIO Raspberry Pi.
- Начало работы с коммутационной платой для микрофона SparkFun MEMS
- Спецификация микрофона MEMS
- Лист данных АЦП MCP3002
Шаг 2: материалы
- Raspberry Pi 3 Модель B
Также нам понадобится следующая периферия: корпус Raspberry Pi 3; SD-карта (минимум 8 ГБ); Кабель Raspberry Pi 3 GPIO; Кабель питания MicroUSB; HDMI-кабель и HDMI-совместимый монитор; USB-клавиатура; USB-мышь; динамики с портом для наушников 1/8 дюйма.
- Микрофонная коммутационная плата SparkFun MEMS
- MCP3002 (аналого-цифровой преобразователь)
- Макетная плата и перемычки M-to-M
Шаг 3: Настройте Raspberry Pi
Шаг 1. Проверка и установка обновлений Проверка и установка обновлений - это всегда хороший способ начать. Выполните следующие команды в окне терминала:
sudo apt-get update
sudo apt-get upgrade
перезагрузка sudo
Шаг 2: Настройте интерфейс SPI для микрофона MEMS + MCP3002
Чтобы использовать SPI (интерфейс последовательного порта) для чтения с микрофона MEMS через MCP3002, нам понадобится пакет Python Dev:
sudo apt-get install python-dev
Нам также понадобится интерфейс SPI (возможно, вы захотите создать подпапку для сохранения):
git clone git: //github.com/doceme/py-spidev
sudo python setup.py установить
Вот документация SPI-Dev, если у вас возникнут какие-либо проблемы.
Шаг 3. Воспроизведение звуков с помощью OMXPlayer
OMXPlayer - это аудио- и видеоплеер, предварительно загруженный в ОС Raspbian. Он работает с большинством типов звуковых файлов, включая:.wav,.mp3 и.m4a. Это то, что мы будем использовать для воспроизведения звуков, когда Фидо становится слишком громким. Библиотека Python для управления OMXPlayer включена в Raspbian (у-у!).
Чтобы протестировать OMXPlayer с терминала, введите следующее:
omxplayer /home/…/SongFilePath/SongFileName.mp3
Если это не сработает, попробуйте принудительно переключить его на локальное устройство аудиовыхода:
omxplayer -o локальный /home/…/SongFilePath/SongFileName.mp3
Шаг 4. Настройте сервер CloudMQTT
Теперь мы настроили сервер MQTT! Чтобы сделать это с помощью CloudMQTT, сделайте следующее:
- Создайте учетную запись CloudMQTT (тариф «Милый кот» бесплатный).
- Создайте новый экземпляр MyCloud.
- В консоли создайте новое правило ACL.
- Вы можете отслеживать опубликованные сообщения в пользовательском интерфейсе «Websocket».
Наконец, установите клиентскую библиотеку Python MQTT Paho:
pip install paho-mqtt
Шаг 4: Создайте это! Аппаратное обеспечение
Схемы распиновки Raspberry Pi и MCP3002 представлены на фотографиях выше.
1. Вставьте контакты MCP3002 в макетную плату (см. Схему расположения выводов выше).
MCP3002 использует 4 контакта SPI для связи: последовательные часы («SCL»), главный вход - выход подчиненного устройства («MISO»), главный выход - подчиненный вход («MOSI») и выбор микросхемы («CS»). Эти контакты соответствуют контакту 11 GPIO Raspberry Pi (SCLK), контакту 9 GPIO (MISO), контакту 10 GPIO (MOSI) и контакту 8 GPIO (CE0).
Выполните следующие подключения с помощью контактов MCP3002:
- Подключите контакт 1 к контакту 8 GPIO Raspberry Pi (CE0)
- Подключите контакт 2 к аналоговому выходу коммутационной платы микрофона MEMS.
- Подключите контакт 4 к GND
- Подключите контакт 5 к контакту 10 Raspberry Pi GPIO (MOSI)
- Подключите контакт 6 к контакту 9 GPIO Raspberry Pi (MISO)
- Подключите контакт 7 к контакту 11 Raspberry Pi GPIO (SCLK)
- Подключите контакт 8 к выходу Raspberry Pi 3.3V
2. Припаяйте провода к коммутационной плате микрофона MEMS. Подключитесь к MCP3002 и Raspberry Pi
- Подключите Vcc к Raspberry Pi 3.3V.
- Подключите GND к Raspberry Pi GND
- Подключите AUD к контакту 2 MCP3002
3. Подключите все кабели к Raspberry Pi и включите все
Шаг 5: Создайте это! Программное обеспечение
Наша цель с Bark Back двоякая: запускать звук воспроизведения, когда собака лает, и отправлять данные на сервер, где мы можем их проверить.
Вот программа Python с открытым исходным кодом для этого проекта. Не стесняйтесь (и, пожалуйста, сделайте) корректировку и изменение кода.
Чтобы программа заработала, вам нужно заполнить две вещи:
- songList: укажите путь к файлу и имя файла для каждой песни, которую вы хотите воспроизвести.
- creds: введите информацию о CloudMQTT в этот словарь.
Шаг 1. Прочтите информацию о коммутационной плате микрофона SparkFun MEMS
Считайте значение АЦП (от 0 до 1023) с коммутационной платы микрофона MEMS (через MCP3002) с помощью библиотеки SPI и вычислите размах амплитуды сигнала.
Сопоставьте размах амплитуды сигнала с единицей объема. Текущий код отображает диапазон АЦП от 0 до 700 (на основе быстрых экспериментов) в Единицу громкости от 0 до 10. Чтобы настроить чувствительность микрофона, настройте входной диапазон АЦП.
Чтобы получить подробный обзор микрофона MEMS, ознакомьтесь с этим руководством.
Шаг 2: Запустите аудиоплеер
Для начала нам понадобятся песни! Вы можете быстро записывать звуки в GarageBand (или на своем смартфоне) и отправлять их на Raspberry Pi. В Python используйте библиотеку подпроцесса для вызова omxplayer.
В коде введите путь к файлу песен, которые вы хотите воспроизвести, в переменной * songList * (строка 26). Текущий порог громкости установлен на 7 в основной функции.
Шаг 3. Отправьте данные на сервер CloudMQTT
Используйте клиентскую библиотеку Python для Paho для связи с серверами CloudMQTT. Подводя итог: настройте клиентский сервер; определять протоколы связи; подключиться с нашими учетными данными (также известными как creds); и подписывайтесь и публикуйте наши данные. Большая часть этого выполняется в основной функции (строки 129–149 и строки 169–174).
Чтобы проверить полученные данные, перейдите на вкладку «Websocket UI» в консоли CloudMQTT.
Шаг 6: Протестируйте и установите
Запустите программу BarkBack.py в Терминале или в IDE Python (вы также можете использовать SSH для запуска программы после того, как вы уже вышли).
Убедитесь, что вы получаете уровни громкости на вкладке пользовательского интерфейса Websocket.
Проверьте систему, включив микрофон (хлопок, крик, лай и т. Д.), Чтобы убедиться, что динамики воспроизводят все звуки.
После того, как все будет запущено и заработает, рекомендуется припаять компоненты к печатной плате, если вы собираетесь установить систему более чем на несколько дней.
Финалист конкурса микроконтроллеров 2017
Первое место в конкурсе датчиков 2017
Рекомендуемые:
SmartPET - Smart Pet Feeder: 7 шагов (с изображениями)
SmartPET - Smart Pet Feeder: Привет! Я Максим Вермерен, 18-летний студент MCT (Мультимедиа и коммуникационные технологии) в Howest. Я решил создать умную кормушку для домашних животных в качестве своего проекта. Почему я сделал это? У моей кошки есть некоторые проблемы с весом, вот и решил сделать машинку т
Pet Bot: 6 шагов (с изображениями)
Pet Bot: Предоставлено: этот проект вдохновлен Beetlebot от robomaniac. Обновление: с тех пор я переименовал его в Pet Bot. (Видео все еще показывает его как Catfish Bot) Я обучаю робототехнике молодых производителей на платформах ESP8266, Arduino и Raspberry PI, и это одна из задач
Модуль питания IoT: добавление функции измерения мощности IoT в мой контроллер заряда от солнечной батареи: 19 шагов (с изображениями)
Модуль питания IoT: добавление функции измерения мощности IoT в мой контроллер заряда от солнечной батареи: Всем привет, надеюсь, вы все молодцы! В этом руководстве я собираюсь показать вам, как я создал модуль измерения мощности Интернета вещей, который вычисляет количество энергии, вырабатываемой моими солнечными панелями, которая используется моим контроллером заряда солнечной батареи t
Creeper-BOT (Creeper Pet): 9 шагов (с изображениями)
Creeper-BOT (Creeper Pet): Я всегда хотел сделать своего собственного четвероногого робота, и конкурс Minecraft был хорошим оправданием. Кроме того, я действительно хотел питомца Creeper. В этом руководстве я расскажу, как я его сделал, и дам вам руководство, если вы хотите сделать своего собственного. Я полагаю, у вас есть
IoT Outdoor Pet Door: 6 шагов (с изображениями)
IoT Outdoor Pet Door: эта инструкция вдохновила меня на создание автоматической двери курятника. Я не только хотел, чтобы дверь курятника была с таймером, но я также хотел подключить дверь к Интернету, чтобы я мог управлять им с помощью телефона или компьютера. Это д