Автоматическая подача звонков в учебном заведении
- Войдите на сайт для отправки комментариев
Ср, 28/03/2018 - 12:40
Здравствуйте, в последнее время заинтересован такой темой, как автоматическая подача звонков в учебных заведениях на Arduino, т.к. в программировании на ардуинке я 0, хотел бы у вас узнать, как проще всего реализовать данный проект.
Для того, кто в программировании "полный ноль" - "проще всего" заказать проект платному программисту.
А вообще, задача включения нагрузки по расписанию не слишком сложная. примеры кода можно найти в гугле во многих вариациях.
т.к. в программировании на ардуинке я 0, хотел бы у вас узнать, как проще всего реализовать данный проект.
Купить готовое.
А вообще, такая тема недавно была. Всем форумом мужику помогали. "Поиск" в правом верхнем углу.
Как проще: Школьник-4 (муз. прогр. школьный звонок)
Нашел я нужную прошивку, на днях протестирую, а как бы в эту прошивку добавить вывод времени на lcd 2004, ибо моих микрознаний на это не хватает
Вот эта прошивка:
#include <Wire.h> #include <DS3231.h> #define Relay (7) #define Green (5) // пин зеленый светодиод #define Blue (9) // пин синий светодиод #define Red (11) // пин красный светодиод DS3231 Clock; bool h12 = false; bool PM; bool Century; bool preventflag=0; unsigned long preventtime=millis(), ringtime=millis(); void setup(){ Wire.begin(); pinMode(Relay, OUTPUT); digitalWrite(Relay, HIGH); pinMode(Green, OUTPUT); pinMode(Blue, OUTPUT); pinMode(Red, OUTPUT); } void loop(){ int second, minute, hour, day; day = Clock.getDoW(); hour = Clock.getHour(h12, PM); minute = Clock.getMinute(); second = Clock.getSecond(); digitalWrite(Green, HIGH); #define modemon (day >= 1 && day <= 5 && second >= 0) #define modesat (day == 6 && second >= 0) if (modemon && !preventflag && hour == 8 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 9 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 9 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 10 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 10 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 11 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 11 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 12 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 12 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 13 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 13 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 14 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 14 && minute == 20) relayfunc(); if (modemon && !preventflag && hour == 15 && minute == 5 ) relayfunc(); if (modemon && !preventflag && hour == 15 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 16 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 16 && minute == 30) relayfunc(); if (modemon && !preventflag && hour == 17 && minute == 15) relayfunc(); if (modemon && !preventflag && hour == 17 && minute == 25) relayfunc(); if (modemon && !preventflag && hour == 18 && minute == 10) relayfunc(); if (modemon && !preventflag && hour == 18 && minute == 20) relayfunc(); if (modemon && !preventflag && hour == 19 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 8 && minute == 30) relayfunc(); if (modesat && !preventflag && hour == 9 && minute == 15) relayfunc(); if (modesat && !preventflag && hour == 9 && minute == 50) relayfunc(); if (modesat && !preventflag && hour == 10 && minute == 10) relayfunc(); if (modesat && !preventflag && hour == 10 && minute == 20) relayfunc(); if (modesat && !preventflag && hour == 11 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 11 && minute == 15) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 0 ) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 10) relayfunc(); if (modesat && !preventflag && hour == 12 && minute == 55) relayfunc(); if (modesat && !preventflag && hour == 13 && minute == 05) relayfunc(); if (modesat && !preventflag && hour == 13 && minute == 50) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 0 ) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 45) relayfunc(); if (modesat && !preventflag && hour == 14 && minute == 55) relayfunc(); if (modesat && !preventflag && hour == 15 && minute == 40) relayfunc(); if(millis()-ringtime<=8000){ digitalWrite(Relay, LOW); digitalWrite(Blue, HIGH); }else{ digitalWrite(Blue, LOW); digitalWrite(Relay, HIGH); } if(millis()-preventtime>=300000) preventflag=0; } void relayfunc(){ ringtime=millis(); preventtime=millis(); preventflag=1; }