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

Будильник, который действительно помогает встать с постели по утрам

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

Arduino Nano Every
Я буду использовать Nano Every для окончательной сборки. Но вы также можете использовать практически любую другую Arduino (вначале я использую Mega2560).
× 1
Модуль часов
× 1
HC-SR501
Это датчик движения
× 1
Зуммер
× 1

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

IDE Arduino

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

Поскольку иногда очень сложно вставать по утрам, я решила сделать будильник, который действительно поможет вам встать с постели. Идея состоит в том, чтобы использовать датчик движения, чтобы будильник знал, вернулись ли вы в кровать после нажатия кнопки повтора. В этом случае сигнализация снова сработает. В противном случае, если вы не спали достаточно долго (например, 2 минуты), будильник больше не сработает. В это время вы должны находиться примерно перед датчиком (в пределах нескольких метров), где вы уже можете начать свой утренний распорядок.

Сборка

Для этого проекта нам понадобится модуль часов, датчик движения, зуммер, небольшая кнопка и Arduino.

Теперь все нужно подключить:

  • отрицательный вывод зуммера -> GND
  • положительный штифт зуммера -> D11
  • контакт кнопки -> GND
  • булавка другой кнопки -> D9
  • датчик движения VCC -> 5 В
  • выход датчика движения -> D7
  • датчик движения GND -> GND
  • модуль часов GND -> GND
  • модуль часов VCC -> 5 В
  • модуль синхронизации SDA -> SDA (вывод 20 для Mega2560)
  • модуль синхронизации SCL -> SCL (контакт 21 для Mega2560)

После подключения, как показано на схемах:

Код

Для начала нужно скачать ZIP-файл из раздела кода. Это библиотека для модуля часов. Если у вас возникли трудности с добавлением файла в вашу библиотеку, вы можете следовать инструкциям, которые также находятся в разделе кода.

Теперь вы можете загрузить код из раздела программного обеспечения. Сразу после загрузки кода закомментируйте строку:

  clock.setDateTime (__ DATE__, __TIME__);  

Эта строка находится в функции настройки.

Теперь вам нужно напрямую повторно загрузить код.

Если вы не закомментируете это, время в модуле часов будет сбрасываться на время последней загрузки каждый раз, когда вы сбрасываете доску.

После этого вы можете установить время, когда должен сработать будильник. Вы можете установить час дня и минуту:

  // -------------------------------------- int set_hour =6; int set_minute =55; // --------------------------------------  

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

Теперь, если вы включите будильник, он подождет до установленного времени. Затем будет выполнена функция alarm (). Сначала он будет подавать звуковой сигнал, пока вы не нажмете кнопку повтора. После этого датчик движения смотрит, есть ли перед ним человек. Вы должны находиться перед датчиком в течение определенного периода времени, а также должны немного двигаться, чтобы датчик движения сработал. Если вы достаточно долго будете находиться в поле зрения датчика движения, раздастся короткий звуковой сигнал, сообщающий о том, что будильник отключен в течение дня и будет ждать до следующего утра.

Однако, если вы вернетесь в постель в течение времени после того, как вы нажали кнопку, будильник сработает, и вся процедура начнется заново. Этот будильник поможет вам не просто выключить будильник и вернуться в постель. Надеюсь, после того, как вы остановились перед датчиком, вы достаточно проснулись, чтобы больше не ложиться спать.

В этой строке вы можете настроить время (в минутах), в течение которого вы должны находиться перед датчиком:

  if (abs (dt.minute - minute)> =1) {// установить период времени, в котором вы // должны быть  

Регулировка датчика

Для правильной работы этого будильника потребуется некоторая настройка датчика движения. Сначала мы должны установить перемычку выбора триггера в нужное место. Он должен быть в режиме повторяемого триггера!

Теперь вам также нужно настроить задержку по времени и чувствительность. Для меня это сработало лучше всего, когда я установил чувствительность на максимум, а время задержки немного больше минимума. Временная задержка определяет, через сколько времени после последнего обнаружения человека выходной сигнал будет высоким. Если задержка слишком короткая, очень сложно предотвратить повторное срабатывание сигнала тревоги, потому что датчик не всегда обнаруживает вас. С другой стороны, если задержка слишком велика, будильник не заметит, если вы снова вернетесь в постель.

Теперь сделаем его компактным

После некоторого тестирования мы готовы сделать будильник более компактным. Для этого я использую Arduino Nano Every, но вы также можете использовать для этого практически любую другую плату Arduino.

Начнем с того, что спаяем все вместе по второй схеме (она в основном такая же, как и раньше, только без макета).

После проверки, все ли работает, мы можем собрать корпус для будильника. Я решил сделать корпус из бальзового дерева толщиной 3 мм, потому что с ним очень легко работать. Вот несколько фотографий процесса сборки корпуса. Размеры моего кейса - 55 мм x 35 мм x 40 мм.

Я сделал большое отверстие для датчика движения, а также слот для кабеля micro USB и отверстие для динамика.

Готовый будильник:

Код

  • Код Arduino для будильника
  • Библиотека часов
Будильник с кодом Arduino Arduino
 #include  #include  Часы DS3231; RTCDateTime dt; int button =9; int pirPin =7; // Ввод для HC-S501int pirValue; // Место для сохранения прочитанного значения PIR // -------------------------------------- int set_hour =7; int set_minute =0; // -------------------------------------- настройка void () {clock.begin (); pinMode (кнопка, INPUT_PULLUP); pinMode (LED_BUILTIN, ВЫХОД); //clock.setDateTime(__DATE__, __TIME__); // !! ПОСЛЕ ПЕРВОЙ ЗАГРУЗКИ ВЫ ДОЛЖНЫ ЗАКЛЮЧИТЬ ЭТУ СТРОКУ. В противном случае ВЫ ПОЛУЧИТЕ НЕПРАВИЛЬНОЕ ВРЕМЯ !! pinMode (pirPin, INPUT);} аннулировать тревогу (целая минута) {bool button_pressed =false; bool awake =false; логическое движение =ложь; while (! button_pressed) {// будильник включен, пока кнопка не нажата в течение (int i =0; i <4; i ++) {tone (11, 523, 100); задержка (100); тон (11, 784, 50); for (int i =0; i <20; i ++) {если (digitalRead (button) ==LOW) {button_pressed =true; пробуждение =правда; dt =clock.getDateTime (); минута =dt.minute; } задержка (65); }}} dt =clock.getDateTime (); минута =dt.minute; в то время как (бодрствовать) {движение =ложь; dt =clock.getDateTime (); для (int я =0; я <30; я ++) {если (digitalRead (pirPin)) {движение =истина;}} digitalWrite (LED_BUILTIN, движение); если (! pirValue) {задержка (5000); для (int я =0; я <40; я ++) {если (digitalRead (pirPin)) {движение =истина;}} если (! движение) {будильник (минута); // если движение не обнаруживается слишком долго, сигнал тревоги сбрасывается}} if (abs (dt.minute - minute)> =1) {// устанавливает период времени, в течение которого вы должны находиться перед сигналом датчика (11, 698 , 50); задержка (100); тон (11, 698, 50); digitalWrite (LED_BUILTIN, 0); пробуждение =ложь; } задержка (100); }} недействительный цикл () {dt =clock.getDateTime (); if (set_minute ==dt.minute &&set_hour ==dt.hour) {будильник (set_minute); } delay (10000);} 
Библиотека часов Arduino
Это zip-файл для библиотеки DS3231. Вы должны загрузить это и добавить в свои библиотеки следующим образом:
откройте Arduino -> перейдите в «Скетч» -> «Включить библиотеку» -> «Добавить библиотеку .ZIP» -> перейдите к zip-файлу и нажмите «ОК»
 Без предварительного просмотра (только загрузка). 

Схема

Я забыл нарисовать на макете подключение к VCC и GND. Таким образом, вам просто нужно подключить 5 В на Arduino к положительной шине, а GND на Arduino - к отрицательной.

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

  1. Шляпа тролля, которая изменит ваше отношение к машине
  2. Простой будильник с DS1302 RTC
  3. Обучение SICK Industry 4.0 поможет вам начать работу с IO-Link на ПЛК
  4. Факторы, влияющие на успех и безопасность процесса штамповки
  5. Ключевые факторы, влияющие на результаты процесса шлифования поверхностей
  6. Токарный станок с ЧПУ может быть единственным, что вам нужно!
  7. Горизонтальное обрабатывающее оборудование, которое может вам понадобиться
  8. Вы хотите лучший вид устройства подачи коротких прутков?
  9. Основные причины, по которым вам нужна расточная обработка
  10. Прямой водяной насос - что влияет на систему циркуляции