Съдържание:

IoT Pet Monitor!: 6 стъпки (със снимки)
IoT Pet Monitor!: 6 стъпки (със снимки)

Видео: IoT Pet Monitor!: 6 стъпки (със снимки)

Видео: IoT Pet Monitor!: 6 стъпки (със снимки)
Видео: How to Make IoT Based Pet Feeder 2024, Ноември
Anonim
Image
Image
Предложено четиво
Предложено четиво

Наблюдавайте любимите си бебета и пускайте музика или им кажете да мълчат, докато сте далеч! Този урок ще покаже как да използвате компютър Raspberry Pi за наблюдение на силата на звука във вашия дом (чрез облака), за да видите дали и кога вашият домашен любимец е разстроен.

Drum roll … най -забавната част: Ако стане прекалено силно (като Фидо лае или прави някакво друго грозно), ще можем да им кажем да мълчат или да пускат музика!

Заедно с Pi (и високоговорителите), ще използваме дъската за пробиване на микрофона SparkFun MEMS за измерване на нивата на силата на звука и задействане на аудио плейъра. Данните се качват в услугата CloudMQTT, използвайки комуникационния протокол MQTT.

Общо време за четене: ~ 8 мин

Общо време за изграждане: 60 минути (по -малко без опит)

Огромно БЛАГОДАРЯ на SparkFun за подкрепата на този проект! Вижте урока тук.

Стъпка 1: Предложено четиво

За да изградите този проект, ще ви е необходим напълно конфигуриран, свързан с WiFi компютър Raspberry Pi 3 с Raspbian OS. Също така е полезно да знаете някои програми на Python, както и следните неща: (1) как да използвате и контролирате Raspberry Pi GPIO щифтове; (2) MQTT комуникация; и (3) аналогови сензори. Ако нещо от това е непознато или просто сте любопитни (бъдете любопитни!), Разгледайте уроците по -долу!

Малина Пи 3

  1. Ръководство за свързване на Raspberry Pi 3 Starter Kit
  2. Raspberry Pi GPIO
  3. SPI комуникация с Raspberry Pi

Комуникационен протокол MQTT

MQTT (Message Query Telemetry Transport) е популярен протокол за комуникация на IoT. Ще използваме библиотеката Paho Client Python и услуга MQTT, наречена CloudMQTT. Ето повече за MQTT и как да го използвате:

  1. Проучване на комуникационните протоколи за IoT
  2. Първи стъпки с CloudMQTT
  3. Преглед на клиентската библиотека на Eclipse Paho MQTT Python

MEMS микрофонна платка

Микрофонът MEMS е аналогов микрофон, така че ще се нуждаем от аналогово-цифров преобразувател ("ADC"), за да четем аналоговия сигнал с цифровите GPIO щифтове на Raspberry Pi.

  1. Първи стъпки с дъската за микрофон SparkFun MEMS
  2. Информационен лист за микрофон на MEMS
  3. Информационен лист за ADC на MCP3002

Стъпка 2: Материали

Материали
Материали
Материали
Материали
Материали
Материали

- Raspberry Pi 3 Модел B

Ще ни трябват и следните периферни устройства: Raspberry Pi 3 Case; SD карта (минимум 8 GB); Raspberry Pi 3 GPIO кабел; Захранващ кабел MicroUSB; HDMI кабел и HDMI-съвместим монитор; USB клавиатура; USB мишка; високоговорители с 1/8 порт за слушалки.

- SparkFun MEMS Mic Breakout Board

-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 надстройка

sudo рестартиране

Стъпка 2: Настройте SPI интерфейс за MEMS микрофон + MCP3002

За да използваме SPI (интерфейс за сериен порт) за четене в микрофона MEMS чрез MCP3002, ще ни е необходим пакета за разработчици на Python:

sudo apt-get install python-dev

Ще ни трябва и SPI интерфейс (може да искате да създадете подпапка, за да запишете това в):

git клониране git: //github.com/doceme/py-spidev

sudo python setup.py install

Ето документацията за SPI-Dev, ако срещнете някакви проблеми.

Стъпка 3: Възпроизвеждане на звуци с OMXPlayer

OMXPlayer е аудио и видео плейър, предварително зареден на Raspbian OS. Работи с повечето типове звукови файлове, включително:.wav,.mp3 и.m4a. Това ще използваме за възпроизвеждане на звуци, когато Фидо стане твърде силен. Библиотеката Python за управление на OMXPlayer е включена в Raspbian (woo!).

За да тествате OMXPlayer от терминала, въведете следното:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Ако това не работи, опитайте да го принудите към локалното устройство за аудио изход:

omxplayer -o local /home/…/SongFilePath/SongFileName.mp3

Стъпка 4: Конфигурирайте CloudMQTT сървър

Сега създадохме MQTT сървър! За да направите това с помощта на CloudMQTT, направете следното:

  1. Настройте акаунт в CloudMQTT (планът „Cute Cat“е безплатен).
  2. Създайте нов екземпляр на MyCloud.
  3. В конзолата създайте ново правило за ACL.
  4. Можете да наблюдавате публикуваните съобщения в потребителския интерфейс на „Websocket“.

И накрая, инсталирайте библиотеката на MQTT Paho Client Python:

pip install paho-mqtt

Стъпка 4: Изградете го! Хардуер

Изградете го! Хардуер
Изградете го! Хардуер
Изградете го! Хардуер
Изградете го! Хардуер
Изградете го! Хардуер
Изградете го! Хардуер

Диаграмите на разводки за Raspberry Pi и MCP3002 са на снимките по -горе.

1. Вмъкнете щифтовете MCP3002 в макет (вижте схемата на изваждане по -горе)

MCP3002 използва 4 SPI пина за комуникация: сериен часовник ("SCL"), главен входен подчинен изход ("MISO"), главен изходен подчинен вход ("MOSI") и избор на чип ("CS"). Тези щифтове съответстват на Raspberry Pi GPIO пин 11 (SCLK), GPIO пин 9 (MISO), GPIO Pin 10 (MOSI) и GPIO Pin 8 (CE0).

Направете следните връзки с пинове MCP3002:

  • Свържете Pin 1 към Raspberry Pi GPIO Pin 8 (CE0)
  • Свържете Pin 2 към аналоговия изход на MEMS микрофонната платка
  • Свържете Pin 4 към GND
  • Свържете Pin 5 към Raspberry Pi GPIO Pin 10 (MOSI)
  • Свържете Pin 6 към Raspberry Pi GPIO pin 9 (MISO)
  • Свържете Pin 7 към Raspberry Pi GPIO Pin 11 (SCLK)
  • Свържете Pin 8 към Raspberry Pi 3.3V изход

2. Запоявайте проводници към MEMS микрофонната платка. Свържете се с MCP3002 и Raspberry Pi

  • Свържете Vcc към Raspberry Pi 3.3V.
  • Свържете GND към Raspberry Pi GND
  • Свържете AUD към MCP3002 Pin 2

3. Включете всички кабели за Raspberry Pi и включете всичко

Стъпка 5: Изградете го! Софтуер

Изградете го! Софтуер
Изградете го! Софтуер

Нашата цел с Bark Back е двойна: да задейства звук при възпроизвеждане, когато кучето лае, и да изпращаме данните до сървър, където можем да го проверим.

Ето програмата Python с отворен код за този проект. Не се колебайте (и моля, направете) да коригирате и модифицирате кода.

За да стартирате програмата, трябва да попълните две неща:

- songList: Напишете пътя на файла и името на файла за всяка от песните, които искате да възпроизведете.

- creds: Въведете вашата CloudMQTT информация в този речник.

Стъпка 1: Прочетете в дъската за пробиване на микрофона SparkFun MEMS

Прочетете стойността на ADC (между 0 и 1023) от MEMS микрофонната платка (чрез MCP3002), използвайки SPI библиотеката и изчислете амплитудата на пика на пика.

Съпоставете амплитудата пик на пик на сигнала с единица за обем. Текущият код картографира диапазона на ADC между 0 и 700 (въз основа на бързи експерименти) на единица за сила на звука между 0 и 10. За да регулирате чувствителността на микрофона, регулирайте ADC входния диапазон.

За подробен преглед на микрофона MEMS вижте този урок.

Стъпка 2: Задействайте аудио плейъра

Първо ще ни трябват песни за свирене! Можете бързо да записвате звуци в GarageBand (или на вашия смартфон) и да ги изпращате на Raspberry Pi. В Python използвайте библиотеката на подпроцесите, за да извикате omxplayer.

В кода въведете пътя на файла на песните, които искате да възпроизведете, в променливата * songList * (ред 26). Текущият праг на силата на звука е зададен на 7 в основната функция.

Стъпка 3: Изпратете данни до CloudMQTT сървър

Използвайте библиотеката Paho Client Python за комуникация със сървърите на CloudMQTT. За да обобщим най -общо: Настройте клиентски сървър; определят комуникационни протоколи; свържете се с нашите идентификационни данни (известни още като creds); и се абонирайте и публикувайте нашите данни. Повечето от това се прави в основната функция (редове 129 - 149 и редове 169 - 174).

За да проверите получените данни, отидете в раздела „Websocket UI“в конзолата CloudMQTT.

Стъпка 6: Тествайте и инсталирайте

Тествайте и инсталирайте!
Тествайте и инсталирайте!

Стартирайте програмата BarkBack.py в Terminal или в Python IDE (можете също да използвате SSH, за да стартирате програмата, след като вече сте напуснали).

Проверете дали получавате нива на силата на звука в раздела на потребителския интерфейс на Websocket.

Тествайте системата, като задействате микрофона (пляскане, викане, лай и т.н.), за да сте сигурни, че високоговорителите възпроизвеждат всички звуци.

След като всичко започне и работи, се препоръчва да запоите компонентите към печатна платка (печатна платка), ако възнамерявате да инсталирате системата за повече от само няколко дни.

Конкурс за микроконтролер 2017
Конкурс за микроконтролер 2017
Конкурс за микроконтролер 2017
Конкурс за микроконтролер 2017

Вицешампион в конкурса за микроконтролер 2017

Състезание за сензори 2017
Състезание за сензори 2017
Състезание за сензори 2017
Състезание за сензори 2017

Първа награда в конкурса за сензори 2017

Препоръчано: