Световой будильник

Созданный учеником гимназии готовый проект по робототехнике "Световой будильник" направлен на реализацию поставленной цели - собрать устройство, управляемое со смартфона и включающее свет в заданное время, иными словами, разработать приложение для работы светового будильника.
Подробнее о работе:
Для написания программы для будильника, выполняющего включение света в нужное время, использовалась платформа платформа NodeMCU на основе модуля ESP8266, которая производит управление различными схемами на расстоянии посредством передачи сигнала в локальную сеть или интернет через Wi-Fi, написана прошивка для устройства и собран световой прибор.
Предложенная автором индивидуальная исследовательская работа по робототехнике на тему "Световой будильник" будет интересна для учеников 9, 10 и 11 класса школы, интересующихся новыми тенденциями в области электроники и программирования, может способствовать возникновению у них интереса к созданию самостоятельного проекта.
Оглавление
Введение
1. Световой будильник.
1.1. NodeMCU.
1.2. Blynk IoT Platform.
1.3. Принцип работы.
2. Создание светового устройства.
2.1. Создание программы.
2.2. Приложение.
2.3. Прошивка.
2.4. Сборка и тестирование.
Вывод
Источники
Введение
Часто бывает так, что человек ставит будильник, чтобы встать рано утром, и, сам того не замечая, выключает его и продолжает спать дальше, просыпая на работу, учёбу и т.д.
В рамках своего проекта я попробовал решить данную проблему.
Гипотеза: одновременное включение лампы вместе с будильником на телефоне позволит просыпаться более эффективно.
Тема: Световой будильник
Цель: собрать устройство, управляемое со смартфона и включающее свет в заданное время.
Задачи:
- Изучить Интернет-ресурсы на указанную тему.
- Разработать схему будущего устройства.
- Написать прошивку.
- Собрать и протестировать устройство.
Световой будильник
После изучения Интернет-ресурсов в качестве основы для проекта было решено выбрать плату NodeMcu, так как она имеет wi-fi модуль esp8266, необходимый для управления со смартфона.
Для управления платой было решено использовать приложение для Интернета вещей Blynk. Программирование прошивки для платы было решено выполнить в среде Arduino IDE.
NodeMCU
NodeMCU — это платформа на основе модуля ESP8266. Плата предназначена для удобного управления различными схемами на расстоянии посредством передачи сигнала в локальную сеть или интернет через Wi-Fi.
NodeMCU имеет 11 портов ввода-вывода общего назначения(GPIO), а также пины питания 3,3B и GND(земля).
Некоторые из портов имеют дополнительные функции:
- VV(VUSB) – питание USB(5B)
- D9, D10 — UART
- D1, D2 — I²C/TWI
- D5–D8 — SPI
- D1–D10 — выходы с ШИМ (PWM)
- A0 — аналоговый вход с АЦП.
Blynk IoT Platform
Blynk – это облачная платформа интернета вещей, при помощи которой посредством облака можно связывать различные устройства умного дома (в нашем случае это плата NodeMcu) и управлять ими со смартфона через специальное приложение, в котором можно добавлять различные элементы для удаленного управления и мониторинга (кнопки, слайдеры, джойстики, таймеры, дисплеи, графики и т.д.).
Принцип работы устройства:
Через приложение, созданное в Blynk, задаётся время и дни недели, по которым будет включаться будильник.
В заданное время заданного дня с сервера Blynk, через Wi-Fi подаётся сигнал на плату NodeMcu, которая подаёт сигнал низкого уровня на реле, которое включает лампу.
Создание светового будильника
Мной была разработана следующая схема устройства, состоящая из управляющей платы NodeMcu, реле (я использовал модуль на 4 реле низкого уровня (реле замыкается от сигнала низкого уровня), т.к. он уже был у меня) и настольной лампы на 220В:
В моём случае NodeMcu запитывается от зарядного устройства телефона, выдающего на выходе 5В и 2А постоянного тока, данную плату можно также запитывать от powerbank или компьютера через USB. Лампа запитывается от 220В переменного тока розетки.
Пояснения:
D4-IN1 отвечает за включение/выключение реле по сигналу от NodeMcu.
VV-VCC – “+” питания реле. Я использовал выход VV т.к. мой модуль реле работает от 5V, а не 3V, которые можно было бы использовать, поэтому использовался контакт VV(VUSB), подающий напряжение напрямую от источника питания NodeMcu, не понижая его до 3,3V рабочего напряжения платы.
G-GND – “-” / ”земля” питания реле.
Создание программы
Для создания программы я использовал среду программирования Arduino IDE, библиотеку Blynk для Arduino IDE и приложение Blynk на смартфоне.
Создание программы можно разбить на две части: создание приложения для управления платой со смартфона и создание прошивки для самой платы.
Приложение
Для управления платой в приложении Blynk были добавлены следующие элементы: Eventor, Button.
Button
Элемент Button выполняет функцию обычной кнопки и включает/выключает(подаёт сигнал низкого/высокого уровня) на цифровой выход(пин) D4. Пока пользователь не нажмет на кнопку, лампа будет гореть.
Eventor
При помощи элемента Eventor можно создавать различные события, в зависимости от которых будут выполняться определенные действия (подаваться различные электрические сигналы на выводы платы, посылаться данные на сервер и т.д.).
Eventor имеет два основных режима: Vpin value, в котором действия выполняются в зависимости от принимаемых платой данных, и Time, в котором действия выполняются в заданное время.
Я использовал режим Time и запрограммировал в нём подачу сигнала низкого уровня (здесь обозначается off) на цифровой выход(пин) D4 каждый день с понедельника по субботу в 6:00.
Прошивка
В данном проекте прошивка нужна лишь для подключения к точке доступа Wi-Fi и связи с приложением через облако Blynk при помощи специального токена аутентификации (Auth Token), полученного в приложении Blynk.
Код прошивки представлен ниже:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "Здесь пишется токен для подключения к приложению";
char ssid[] = "Здесь пишется имя сети Wi-Fi, к которой подключается устройство";
char pass[] = "Здесь пишется пароль от сети Wi-Fi, к которой подключается устройство";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Сборка и тестирование светового будильника
По разработанной схеме было собрано устройство, в плату была загружена прошивка.
В собранном виде устройство выглядит так:
Для тестирования устройства питание лампы было подключено к розетке 220В, плата была подключена проводом microUSB к зарядному устройству от смартфона. Вечером на смартфоне было запущено приложение управления платой(Blynk), в котором было задано время включения лампы в 6:00 следующего дня. Также на смартфоне был запущен будильник на 6:00.
Ровно в 6:00 следующего дня одновременно сработали будильник на смартфоне и описанное выше устройство. Благодаря яркому свету и тому, что помимо будильника нужно выключить ещё и устройство, зайдя в приложение, я проснулся, не отключил будильник, и не продолжил спать дальше. Цель была достигнута.
Вывод
У меня получилось создать устройство, управляемое со смартфона, включающее свет в определенное время и позволяющее просыпаться более эффективно. Гипотеза подтвердилась. Цель была достигнута.
Для написания данной работы были использованы ресурсы Сети Интернет