Оглавление:

IoT Pet Monitor !: 6 шагов (с изображениями)
IoT Pet Monitor !: 6 шагов (с изображениями)

Видео: IoT Pet Monitor !: 6 шагов (с изображениями)

Видео: IoT Pet Monitor !: 6 шагов (с изображениями)
Видео: 6 СУПЕР-ГАДЖЕТОВ ДЛЯ КОТОВ 2024, Ноябрь
Anonim
Image
Image
Рекомендуемое чтение
Рекомендуемое чтение

Следите за своими любимыми красотками и включайте музыку или говорите им, чтобы они молчали, пока вас нет! Из этого туториала Вы узнаете, как использовать компьютер 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

  1. Руководство по подключению к стартовому набору Raspberry Pi 3
  2. Малина Pi GPIO
  3. Связь SPI с Raspberry Pi

Протокол связи MQTT

MQTT (передача телеметрии запросов сообщений) - популярный протокол связи IoT. Мы будем использовать клиентскую библиотеку Python для Paho и службу MQTT под названием CloudMQTT. Подробнее о MQTT и о том, как его использовать:

  1. Изучение коммуникационных протоколов для Интернета вещей
  2. Начало работы с CloudMQTT
  3. Обзор клиентской библиотеки Eclipse Paho MQTT Python

Коммутационная плата для микрофона MEMS

Микрофон MEMS - это аналоговый микрофон, поэтому нам понадобится аналого-цифровой преобразователь («АЦП») для считывания аналогового сигнала с цифровых контактов GPIO Raspberry Pi.

  1. Начало работы с коммутационной платой для микрофона SparkFun MEMS
  2. Спецификация микрофона MEMS
  3. Лист данных АЦП 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

Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте Raspberry Pi
Настройте 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, сделайте следующее:

  1. Создайте учетную запись CloudMQTT (тариф «Милый кот» бесплатный).
  2. Создайте новый экземпляр MyCloud.
  3. В консоли создайте новое правило ACL.
  4. Вы можете отслеживать опубликованные сообщения в пользовательском интерфейсе «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
Конкурс микроконтроллеров 2017
Конкурс микроконтроллеров 2017

Финалист конкурса микроконтроллеров 2017

Конкурс датчиков 2017
Конкурс датчиков 2017
Конкурс датчиков 2017
Конкурс датчиков 2017

Первое место в конкурсе датчиков 2017

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