Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Войдите в дом, как лорд ситхов

Компоненты и расходные материалы

Фотон с частицами
× 2
Arduino UNO
× 1
Adafruit Music Maker MP3 Shield
× 1
PIR датчик движения Adafruit
× 1
LED (общий)
× 2
Резистор 220 Ом
× 2
перемычки
× 1
Динамик:3 Вт, 4 Ом
× 1
Макет (общий)
× 2
Настенное зарядное устройство USB Micro B
× 1
Кабель USB-A - B
× 1
Male-Header 36 Position 1 Row- Long (0.1 ")
× 1

Необходимые инструменты и машины

Паяльник (общий)

Приложения и онлайн-сервисы

Облако частиц

Об этом проекте

Моя дочь - большая фанатка «Звездных войн» (хотя она еще не смотрела ни одного фильма). Неудивительно, что она была в восторге, когда я спросил, не хочет ли она создать проект на тему «Звездных войн». Я не знаю, сколько раз она заставляла меня играть «Имперский марш» (музыкальная тема Дарта Вейдера), когда на ней был костюм Дарта Вейдера, чтобы она могла войти в комнату. Итак, мы быстро определились с этой идеей проекта - автоматически обнаруживать кого-то, идущего домой, а затем запускать воспроизведение Императорского марша непосредственно перед тем, как человек войдет в дом.

Это довольно простой проект, поэтому он хорошо подходит для начинающих. Мне это показалось интересным, потому что я впервые использовал шаблон публикации / подписки в / из облака. Кроме того, я впервые объединил микроконтроллеры разных типов в один проект. Мне нравится простота и удобство использования Photon, когда дело доходит до создания решения с подключением к облаку. И вы не можете превзойти разнообразие и количество дополнительного оборудования, доступного для Arduino. Возможность так легко собрать их вместе позволила этому проекту быстро объединиться.


Шаг 1. Соберите датчик

Время:10 минут

Детали:фотон, резистор 220 Ом, светодиод, ИК-датчик движения, макет, перемычки типа папа / вилка, кабель USB micro B

Инструменты:нет

Сначала подключите светодиод к Фотону. Установите свой Photon на макетную плату. Затем подключите резистор между контактом заземления фотона и открытым рядом на макетной плате. Наконец, подключите длинную ножку светодиода к цифровому контакту на Photon (я использовал вывод D0), а короткую ножку светодиода - к открытому ряду, к которому подключен резистор. Честно говоря, светодиодный индикатор не является обязательным, но я использую его для индикации состояния датчика, поскольку сам датчик PIR не обеспечивает индикации того, когда обнаружено движение, а Photon не предоставляет никаких индикаторов, когда он публикует событие в облаке.

Затем подключите датчик PIR к Photon. Установите датчик PIR на макетную плату - я использую расположенные под прямым углом штыри разъема для подключения датчика PIR к макету, поскольку это позволяет мне «закрепить» датчик PIR на макете вертикально. (Если у вас нет штифтов под прямым углом, используйте двустороннюю ленту или липкую липкую ленту, чтобы прикрепить датчик PIR к столу или чему-то еще, на что вы его устанавливаете, и используйте перемычки типа мама / папа прямо от штыря датчика PIR. С помощью перемычек подключите GND PIR к контакту GND Photon, контакт 5V PIR к контакту Vin Photon и сигнальный контакт PIR к цифровому контакту Photon (я использовал контакт D7).

Дважды проверьте техническое описание вашего датчика, чтобы убедиться, что вы правильно определили 5V, GND и сигнальный контакт датчика, поскольку их порядок зависит от производителя. Несмотря на то, что мой датчик PIR работает от 5 вольт, его сигнальный контакт работает только от 3,3 В, поэтому его можно напрямую подключить к цифровому контакту на Photon. Еще раз проверьте данные вашего датчика, чтобы убедиться, что напряжение сигнала составляет 3,3 В.

Подайте питание на сборку через разъем USB Micro B на Photon'е либо к ПК, либо к розетке. Откройте Particle IDE и вставьте код датчика, указанный ниже. Затем прошейте код на Фотон.

Теперь, если вы помахаете рукой перед датчиком, светодиод должен загореться. Кроме того, вы можете проверить свои журналы на панели инструментов Particle Dashboard, чтобы убедиться, что событие было опубликовано.

Шаг 2. Соберите спусковой крючок

Время:10 минут

Детали:фотон, резистор 220 Ом, светодиод, макет, перемычки «папа / мама»

Инструменты:нет данных

Подключите светодиод и резистор к фотону, как вы это делали на предыдущем шаге. Опять же, светодиод не является обязательным, но я считаю полезным указывать, когда событие получено из облака частиц. Затем подключите штыревой конец перемычек к Vin, GND и цифровому контакту Photon'а (я использовал контакт D7). Цифровой вывод от Photon будет подключаться к одному из выводов GPIO Music Maker для запуска музыки. Контакты Vin и GND Photon будут использоваться для питания Photon от Arduino.

Но сначала, перед подключением к Arduino, подключите сборку через разъем USB Micro B Photon к ПК или к розетке. Откройте среду разработки частиц и вставьте код триггера, указанный ниже. Затем прошейте код в Photon - убедитесь, что вы выбрали правильное устройство для прошивки кода, теперь, когда у вас есть два устройства, подключенных к Particle IDE.



Шаг 3. Соберите плату Arduino и Music Maker

Время:20 минут

Детали:Arduino Uno, экран Adafruit Music Maker, Photon, резистор 220 Ом, светодиод, мини-макет, перемычки, USB-кабель

Инструменты:паяльник

Контакты заголовка входят в комплект поставки Music Maker Shield, однако вы должны их припаять. В дополнение к контактам заголовка для подключения экрана к Arduino я добавил штырьковые контакты заголовка поверх экрана для подключения GPIO и питания от Photon. (Если бы у меня были штыревые контакты заголовка, я бы использовал их, чтобы мне понадобились только перемычки папа / вилка. Но у меня под рукой были только штыри разъема папа (в дополнение к перемычкам папа / мама), поэтому я решил, что маршрут вместо этого.)

Подключите перемычку от цифрового вывода Photon к выводу GPIO на экране (я использовал вывод 7 на экране). Подключите перемычку от Vin Photon к контакту 5v на экране, а перемычку GND к контакту GND экрана.

Наконец, подключите динамик (-ы) к клеммной колодке (-ам) на экране - одна клеммная колодка для правого динамика и одна для левого динамика. Я только что подключил одну колонку - я вытащил маленькую колонку из сломанной игрушки моей дочери, прежде чем мы ее выбросили.

Подключите Arduino к своей машине разработки, вставьте эскиз Arduino ниже в IDE Arduino и загрузите его.

Вот и все. Подойдите к датчику, сядьте и подождите, пока включится музыка.

О Кодексе

Как я упоминал ранее, это был первый раз, когда я использовал шаблон публикации / подписки. С Фотоном это было довольно просто. В коде датчика, когда на сигнальном контакте датчика PIR становится ВЫСОКИЙ, я включаю светодиод и публикую событие в облаке частиц. Для публикации мероприятия достаточно одной строки:

published =Particle.publish ("обнаружено движение", NULL, 60, ЧАСТНЫЙ);

Изначально я не делал публикацию частной - мне было все равно, потому что нет личной информации. Но когда я пошел подписаться на событие, я получал много ложных тревог - по-видимому, многие другие пользователи публикуют события, ориентированные на «движение». Итак, я переключил вызов подписки на подписку только на события с моих устройств, добавив параметр «MY_DEVICES»:

Particle.subscribe ("движение", soundAlarm, MY_DEVICES);

А чтобы функция подписки ограничивалась только моими устройствами, мне пришлось сделать публикацию частной.

Код триггера просто вызывает обработчик события - soundAlarm - когда происходит событие движения. Все, что делает обработчик событий, - это включает светодиод и переводит вывод GPIO на экран Music Maker в ВЫСОКОЕ. Скетч Arduino определяет, что контакт GPIO ВЫСОКИЙ, а затем ждет 60 секунд (чтобы я припарковал машину, собрал свои вещи и зашел в дом) перед воспроизведением файла MP3 на SD-карте.


Развернуть проект

Я устанавливаю датчик в гараже на полках рядом с тем местом, где я припарковываю свою машину. Я положил триггер и Arduino с экраном Music Maker и динамиком на кухонную стойку, так как моя дочь обычно сидит за кухонным столом, когда я возвращаюсь домой. В обоих местах поблизости есть розетки, что упростило питание обеих частей проекта.

Код

  • Код датчика
  • Код триггера
  • Защитный код Arduino и Music Maker
Код датчика C / C ++
Пример кода для Photon, который публикует событие в облаке частиц при каждом обнаружении движения.
 // определяем светодиод на выводе D0int led =D0; // определяем вход датчика PIR на выводе D6int pir =D6; // отслеживать была ли публикация успешнойbool Publish; void setup () {// установить вывод светодиода как output pinMode (led, OUTPUT); // устанавливаем входной контакт ИК-датчика как input pinMode (pir, INPUT); // убедитесь, что светодиод не горит digitalWrite (led, LOW);} void loop () {if (digitalRead (pir) ==HIGH) // если обнаружено движение {// включаем светодиод как индикатор того, что я был обнаружен digitalWrite (светодиод, ВЫСОКИЙ); опубликовано =Particle.publish ("обнаружено движение", NULL, 60, ЧАСТНОЕ); if (! published) // если публикация была неудачной {// мигание светодиода 10 раз как индикатор ошибки публикации для (int i =0; i <10; i ++) {digitalWrite (led, LOW); задержка (500); digitalWrite (светодиод, ВЫСОКИЙ); задержка (500); }}} else // если движения не обнаружено, выключить светодиод digitalWrite (led, LOW); // ждем 2 секунды перед очередной задержкой чтения (2000);} 
Код триггера C / C ++
Пример кода для Photon, который подписывается на события движения в облаке частиц, опубликованный моим датчиком, а затем запускает щит Music Maker для воспроизведения MP3.
 // определяем светодиод на выводе D0int led =D0; // определяем триггер для Arduino на выводе D7int trigger =D7; void soundAlarm (const char * event, const char * data) {// при срабатывании события движения // включаем светодиод digitalWrite (led, HIGH); // включаем триггер digitalWrite (trigger, HIGH); // ждем две секунды задержки (2000); // отключаем триггер digitalWrite (trigger, LOW); // выключаем светодиод digitalWrite (led, LOW);} void setup () {// подписываемся на события движения только с моих устройств // определяем soundAlarm как обработчик событий Particle.subscribe ("движение", soundAlarm, MY_DEVICES); // устанавливаем вывод светодиода как вывод pinMode (led, OUTPUT); // устанавливаем вывод триггера как output pinMode (trigger, OUTPUT);} void loop () {} 
Код защиты Arduino и Music Maker Arduino
Пример кода для Arduino для воспроизведения MP3 через экран Music Maker на основе триггера от подключенного Photon.
 / ********************** ************************************ Этот скетч воспроизводит MP3 с SD-карты с помощью Adafruitt Music. Создатель щита при срабатывании фотона, подключенного к одному из контактов GPIO щита. Спасибо Adafruit за хорошо написанное руководство и библиотеку. https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/pinouts ***************** ****************************************** /// включить SPI, Библиотеки Music Maker и SD # include  #include  #include  // Определите контакты, используемые для щита создателя музыки # define SHIELD_RESET -1 // Контакт сброса VS1053 (не используется! ) #define SHIELD_CS 7 // Вывод выбора микросхемы VS1053 (вывод) #define SHIELD_DCS 6 // Вывод данных / команды VS1053 (вывод) #define CARDCS 4 // Вывод выбора микросхемы карты // DREQ должен быть выводом Int, см. http ://arduino.cc/en/Reference/attachInterrupt#define DREQ 3 // Запрос данных VS1053, в идеале контакт прерывания // определение музыкального проигрывателя // определяем вывод GPIO, к которому подключается фотон int photonPin =7; void setup () {// инициализируем музыкальный проигрыватель musicPlayer.begin (); // инициализировать SD-карту SD.begin (CARDCS); // Устанавливаем громкость для левого и правого каналов. цифры ниже ==громкость! musicPlayer.setVolume (1,1); // Если DREQ находится на контакте прерывания (на uno, # 2 или # 3) // мы можем воспроизводить фоновый звук, но он не // используется в этой начальной фазе проекта // инициализируем прерывание DREQ // musicPlayer.useInterrupt (VS1053_FILEPLAYER_PIN_INT); // инициализируем вывод GPIO, к которому подключен фотон, в качестве входа musicPlayer.GPIO_pinMode (photonPin, INPUT);} void loop () {if (musicPlayer.GPIO_digitalRead (photonPin) ==HIGH) {// ждем 60 секунд перед воспроизведением так что я // захожу в дом сразу после его начала delay (60000); // Воспроизвести файл, не возвращаться до завершения musicPlayer.playFullFile ("track001.mp3"); } delay (500);} 

Схема

sensor.fzz trigger.fzz

Производственный процесс

  1. Какие компоненты используются в станке с ЧПУ
  2. Ключевые компоненты хорошего общения в условиях кризиса
  3. Каким будет будущее производства?
  4. Ошибка раздражающего:щебечущий световой бросок
  5. Готовы ли нанотехнологии вступить в войну безопасности IoT?
  6. Каковы компоненты системы сжатого воздуха?
  7. Что происходит с различными компонентами крана во время модернизации?
  8. Как будет выглядеть техника будущего?
  9. Основные компоненты ленточнопильных станков
  10. Полное руководство по проектированию механических деталей