{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Воронин: заметки с тегом ntp",
    "_rss_description": "воронин, voronin, it",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/voronin.one\/tags\/ntp\/",
    "feed_url": "https:\/\/voronin.one\/tags\/ntp\/json\/",
    "icon": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233",
    "authors": [
        {
            "name": "Алексей Воронин",
            "url": "https:\/\/voronin.one\/",
            "avatar": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233"
        }
    ],
    "items": [
        {
            "id": "35",
            "url": "https:\/\/voronin.one\/all\/avtomatizaciya-fitolampy\/",
            "title": "автоматизация фитолампы",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/Adenium-obesum.jpg\" width=\"442\" height=\"442\" alt=\"\" \/>\n<\/div>\n<p>Растут у меня красивые растения <b>Адениум обесум<\/b>, но пока маленькие и некрасивые. 😉 Холодной и хмурой зимой хочется даль больше света и тепла малявкам, а для этого на выручку — придёт фитолампа, у меня длинная над подоконником висит и питается 12В.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/fitolampa.jpg\" width=\"500\" height=\"500\" alt=\"\" \/>\n<\/div>\n<p>Конечно же автоматизировать процесс включения и отключения. Для этого на Алике мною было приобретено реле с датчиком света:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/rele-s-datchikom-sveta.jpg\" width=\"319\" height=\"281\" alt=\"\" \/>\n<\/div>\n<p>с помощью проводов с разъёмами на 12В я собрал простенькую схему для подключения в разрыв цепи<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/razemy-12V.jpg\" width=\"395\" height=\"375\" alt=\"\" \/>\n<\/div>\n<p>примерно так:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-2.png\" width=\"592\" height=\"267\" alt=\"\" \/>\n<\/div>\n<p>И в процессе тестов мои подозрения подтвердились, в момент переключения реле начинает щёлкать, безостановочно то включаясь, то отключаясь. Почему так происходило? Темнеет очень плавно, когда наступает пороговое значение — датчик освещенности дает сигнал на включение фитолампы, общая освещенность помещения немного увеличивается, но этого достаточно, чтобы сработал датчик и выключил лампу и так по кругу. Такой процесс происходит длительный период, переключая туда-сюда по несколько раз в секунду.<\/p>\n<p>Правильно, для света и тепла использовать датчики с двумя порогами и разносить точки включения и отключения, создавая петлю Гистерезиса.<\/p>\n<p>С текущим устройством реализовать подобную схему не получится, пороговая точка одна. К сожалению, разбираем и думаем другое решение.<\/p>\n<h2>Новый проект<\/h2>\n<p>А с решением мне помог мой коллега Дмитрий, он подсказал, что проще всего привязаться ко времени восхода и захода солнца.<\/p>\n<p>Приступаем:<\/p>\n<ul>\n<li>самое главное — синхронизация времени<\/li>\n<li>график включения\/отключения для нашей полосы<\/li>\n<\/ul>\n<p>Остановил свой выбор на ESP8266 с WiFi модулем Nodemcu-CP2102.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/Nodemcu-CP2102.jpg\" width=\"500\" height=\"500\" alt=\"\" \/>\n<\/div>\n<p>Алгоритм следующий: подключились к wifi, синхронизировали время с ntp сервером, и с определенной периодичностью проверяем вхождение времени в массивы вкл\/откл.<\/p>\n<p>Я проверил время восходов и закатов из года в год примерно одинаковое, ± 1 минута, что не существенная погрешность. Используем готовые массивы, которые можно получить из онлайн калькуляторов для своего местоположения (в примере для Москвы).<\/p>\n<p>Схема подключения очень простая, в качестве ключа я использовал мосфет 30N06, благо, в своё время куплено их было много<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/30N06.jpg\" width=\"233\" height=\"233\" alt=\"\" \/>\n<\/div>\n<p>Он спокойно работает с напряжением 12В и током 1А, и переключается рабочим напряжением 3,3В с ноги ардуино.<\/p>\n<p>Схема подключения взята из ролика Алекса Гайвера<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/hoprWM_b6V0?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-4.png\" width=\"800\" height=\"384.60161145927\" alt=\"\" \/>\n<\/div>\n<p>Питание 12В я подал на разъём VIN и GND, а управление повесил на ногу D1.<\/p>\n<p>Ниже сам код, в комментариях я постарался максимально подробно расписать механизмы<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#include &lt;NTPClient.h&gt;\n#include &lt;ESP8266WiFi.h&gt;\n#include &lt;WiFiUdp.h&gt;\n\nconst char *ssid     = &quot;wifi_name&quot;;\nconst char *password = &quot;wifi_password&quot;;\nchar buf[6];\n\n\/\/ массивы с временем в формате день:месяц-часы:минуты, дополненные нулями\nString time_lamp_off[366] = { &quot;01.01-09:00&quot;, &quot;02.01-09:00&quot;, &quot;03.01-08:59&quot;, &quot;04.01-08:59&quot;, &quot;05.01-08:59&quot;, &quot;06.01-08:58&quot;, &quot;07.01-08:57&quot;, &quot;08.01-08:57&quot;, &quot;09.01-08:56&quot;, &quot;10.01-08:55&quot;, &quot;11.01-08:54&quot;, &quot;12.01-08:54&quot;, &quot;13.01-08:53&quot;, &quot;14.01-08:52&quot;, &quot;15.01-08:51&quot;, &quot;16.01-08:49&quot;, &quot;17.01-08:48&quot;, &quot;18.01-08:47&quot;, &quot;19.01-08:46&quot;, &quot;20.01-08:44&quot;, &quot;21.01-08:43&quot;, &quot;22.01-08:42&quot;, &quot;23.01-08:40&quot;, &quot;24.01-08:39&quot;, &quot;25.01-08:37&quot;, &quot;26.01-08:35&quot;, &quot;27.01-08:34&quot;, &quot;28.01-08:32&quot;, &quot;29.01-08:30&quot;, &quot;30.01-08:29&quot;, &quot;31.01-08:27&quot;, &quot;01.02-08:25&quot;, &quot;02.02-08:23&quot;, &quot;03.02-08:21&quot;, &quot;04.02-08:19&quot;, &quot;05.02-08:17&quot;, &quot;06.02-08:15&quot;, &quot;07.02-08:13&quot;, &quot;08.02-08:11&quot;, &quot;09.02-08:09&quot;, &quot;10.02-08:07&quot;, &quot;11.02-08:05&quot;, &quot;12.02-08:03&quot;, &quot;13.02-08:00&quot;, &quot;14.02-07:58&quot;, &quot;15.02-07:56&quot;, &quot;16.02-07:54&quot;, &quot;17.02-07:51&quot;, &quot;18.02-07:49&quot;, &quot;19.02-07:47&quot;, &quot;20.02-07:44&quot;, &quot;21.02-07:42&quot;, &quot;22.02-07:40&quot;, &quot;23.02-07:37&quot;, &quot;24.02-07:35&quot;, &quot;25.02-07:32&quot;, &quot;26.02-07:30&quot;, &quot;27.02-07:27&quot;, &quot;28.02-07:25&quot;, &quot;29.02-07:25&quot;, &quot;01.03-07:23&quot;, &quot;02.03-07:20&quot;, &quot;03.03-07:18&quot;, &quot;04.03-07:15&quot;, &quot;05.03-07:12&quot;, &quot;06.03-07:10&quot;, &quot;07.03-07:07&quot;, &quot;08.03-07:05&quot;, &quot;09.03-07:02&quot;, &quot;10.03-07:00&quot;, &quot;11.03-06:57&quot;, &quot;12.03-06:54&quot;, &quot;13.03-06:52&quot;, &quot;14.03-06:49&quot;, &quot;15.03-06:47&quot;, &quot;16.03-06:44&quot;, &quot;17.03-06:41&quot;, &quot;18.03-06:39&quot;, &quot;19.03-06:36&quot;, &quot;20.03-06:33&quot;, &quot;21.03-06:31&quot;, &quot;22.03-06:28&quot;, &quot;23.03-06:26&quot;, &quot;24.03-06:23&quot;, &quot;25.03-06:20&quot;, &quot;26.03-06:18&quot;, &quot;27.03-06:15&quot;, &quot;28.03-06:12&quot;, &quot;29.03-06:10&quot;, &quot;30.03-06:07&quot;, &quot;31.03-06:04&quot;, &quot;01.04-06:02&quot;, &quot;02.04-05:59&quot;, &quot;03.04-05:57&quot;, &quot;04.04-05:54&quot;, &quot;05.04-05:51&quot;, &quot;06.04-05:49&quot;, &quot;07.04-05:46&quot;, &quot;08.04-05:44&quot;, &quot;09.04-05:41&quot;, &quot;10.04-05:39&quot;, &quot;11.04-05:36&quot;, &quot;12.04-05:33&quot;, &quot;13.04-05:31&quot;, &quot;14.04-05:28&quot;, &quot;15.04-05:26&quot;, &quot;16.04-05:23&quot;, &quot;17.04-05:21&quot;, &quot;18.04-05:18&quot;, &quot;19.04-05:16&quot;, &quot;20.04-05:14&quot;, &quot;21.04-05:11&quot;, &quot;22.04-05:09&quot;, &quot;23.04-05:06&quot;, &quot;24.04-05:04&quot;, &quot;25.04-05:02&quot;, &quot;26.04-04:59&quot;, &quot;27.04-04:57&quot;, &quot;28.04-04:55&quot;, &quot;29.04-04:52&quot;, &quot;30.04-04:50&quot;, &quot;01.05-04:48&quot;, &quot;02.05-04:46&quot;, &quot;03.05-04:43&quot;, &quot;04.05-04:41&quot;, &quot;05.05-04:39&quot;, &quot;06.05-04:37&quot;, &quot;07.05-04:35&quot;, &quot;08.05-04:33&quot;, &quot;09.05-04:31&quot;, &quot;10.05-04:29&quot;, &quot;11.05-04:27&quot;, &quot;12.05-04:25&quot;, &quot;13.05-04:23&quot;, &quot;14.05-04:21&quot;, &quot;15.05-04:19&quot;, &quot;16.05-04:18&quot;, &quot;17.05-04:16&quot;, &quot;18.05-04:14&quot;, &quot;19.05-04:12&quot;, &quot;20.05-04:11&quot;, &quot;21.05-04:09&quot;, &quot;22.05-04:08&quot;, &quot;23.05-04:06&quot;, &quot;24.05-04:05&quot;, &quot;25.05-04:03&quot;, &quot;26.05-04:02&quot;, &quot;27.05-04:00&quot;, &quot;28.05-03:59&quot;, &quot;29.05-03:58&quot;, &quot;30.05-03:57&quot;, &quot;31.05-03:55&quot;, &quot;01.06-03:54&quot;, &quot;02.06-03:53&quot;, &quot;03.06-03:52&quot;, &quot;04.06-03:51&quot;, &quot;05.06-03:51&quot;, &quot;06.06-03:50&quot;, &quot;07.06-03:49&quot;, &quot;08.06-03:48&quot;, &quot;09.06-03:48&quot;, &quot;10.06-03:47&quot;, &quot;11.06-03:47&quot;, &quot;12.06-03:46&quot;, &quot;13.06-03:46&quot;, &quot;14.06-03:46&quot;, &quot;15.06-03:45&quot;, &quot;16.06-03:45&quot;, &quot;17.06-03:45&quot;, &quot;18.06-03:45&quot;, &quot;19.06-03:45&quot;, &quot;20.06-03:45&quot;, &quot;21.06-03:45&quot;, &quot;22.06-03:45&quot;, &quot;23.06-03:46&quot;, &quot;24.06-03:46&quot;, &quot;25.06-03:46&quot;, &quot;26.06-03:47&quot;, &quot;27.06-03:47&quot;, &quot;28.06-03:48&quot;, &quot;29.06-03:49&quot;, &quot;30.06-03:49&quot;, &quot;01.07-03:50&quot;, &quot;02.07-03:51&quot;, &quot;03.07-03:52&quot;, &quot;04.07-03:53&quot;, &quot;05.07-03:54&quot;, &quot;06.07-03:55&quot;, &quot;07.07-03:56&quot;, &quot;08.07-03:57&quot;, &quot;09.07-03:58&quot;, &quot;10.07-03:59&quot;, &quot;11.07-04:01&quot;, &quot;12.07-04:02&quot;, &quot;13.07-04:03&quot;, &quot;14.07-04:05&quot;, &quot;15.07-04:06&quot;, &quot;16.07-04:08&quot;, &quot;17.07-04:09&quot;, &quot;18.07-04:11&quot;, &quot;19.07-04:12&quot;, &quot;20.07-04:14&quot;, &quot;21.07-04:15&quot;, &quot;22.07-04:17&quot;, &quot;23.07-04:19&quot;, &quot;24.07-04:21&quot;, &quot;25.07-04:22&quot;, &quot;26.07-04:24&quot;, &quot;27.07-04:26&quot;, &quot;28.07-04:28&quot;, &quot;29.07-04:29&quot;, &quot;30.07-04:31&quot;, &quot;31.07-04:33&quot;, &quot;01.08-04:35&quot;, &quot;02.08-04:37&quot;, &quot;03.08-04:39&quot;, &quot;04.08-04:40&quot;, &quot;05.08-04:42&quot;, &quot;06.08-04:44&quot;, &quot;07.08-04:46&quot;, &quot;08.08-04:48&quot;, &quot;09.08-04:50&quot;, &quot;10.08-04:52&quot;, &quot;11.08-04:54&quot;, &quot;12.08-04:56&quot;, &quot;13.08-04:58&quot;, &quot;14.08-05:00&quot;, &quot;15.08-05:02&quot;, &quot;16.08-05:04&quot;, &quot;17.08-05:06&quot;, &quot;18.08-05:07&quot;, &quot;19.08-05:09&quot;, &quot;20.08-05:11&quot;, &quot;21.08-05:13&quot;, &quot;22.08-05:15&quot;, &quot;23.08-05:17&quot;, &quot;24.08-05:19&quot;, &quot;25.08-05:21&quot;, &quot;26.08-05:23&quot;, &quot;27.08-05:25&quot;, &quot;28.08-05:27&quot;, &quot;29.08-05:29&quot;, &quot;30.08-05:31&quot;, &quot;31.08-05:33&quot;, &quot;01.09-05:35&quot;, &quot;02.09-05:37&quot;, &quot;03.09-05:39&quot;, &quot;04.09-05:40&quot;, &quot;05.09-05:42&quot;, &quot;06.09-05:44&quot;, &quot;07.09-05:46&quot;, &quot;08.09-05:48&quot;, &quot;09.09-05:50&quot;, &quot;10.09-05:52&quot;, &quot;11.09-05:54&quot;, &quot;12.09-05:56&quot;, &quot;13.09-05:58&quot;, &quot;14.09-06:00&quot;, &quot;15.09-06:02&quot;, &quot;16.09-06:03&quot;, &quot;17.09-06:05&quot;, &quot;18.09-06:07&quot;, &quot;19.09-06:09&quot;, &quot;20.09-06:11&quot;, &quot;21.09-06:13&quot;, &quot;22.09-06:15&quot;, &quot;23.09-06:17&quot;, &quot;24.09-06:19&quot;, &quot;25.09-06:21&quot;, &quot;26.09-06:23&quot;, &quot;27.09-06:25&quot;, &quot;28.09-06:27&quot;, &quot;29.09-06:28&quot;, &quot;30.09-06:30&quot;, &quot;01.10-06:32&quot;, &quot;02.10-06:34&quot;, &quot;03.10-06:36&quot;, &quot;04.10-06:38&quot;, &quot;05.10-06:40&quot;, &quot;06.10-06:42&quot;, &quot;07.10-06:44&quot;, &quot;08.10-06:46&quot;, &quot;09.10-06:48&quot;, &quot;10.10-06:50&quot;, &quot;11.10-06:52&quot;, &quot;12.10-06:54&quot;, &quot;13.10-06:56&quot;, &quot;14.10-06:58&quot;, &quot;15.10-07:00&quot;, &quot;16.10-07:02&quot;, &quot;17.10-07:04&quot;, &quot;18.10-07:06&quot;, &quot;19.10-07:08&quot;, &quot;20.10-07:11&quot;, &quot;21.10-07:13&quot;, &quot;22.10-07:15&quot;, &quot;23.10-07:17&quot;, &quot;24.10-07:19&quot;, &quot;25.10-07:21&quot;, &quot;26.10-07:23&quot;, &quot;27.10-07:25&quot;, &quot;28.10-07:27&quot;, &quot;29.10-07:29&quot;, &quot;30.10-07:31&quot;, &quot;31.10-07:34&quot;, &quot;01.11-07:36&quot;, &quot;02.11-07:38&quot;, &quot;03.11-07:40&quot;, &quot;04.11-07:42&quot;, &quot;05.11-07:44&quot;, &quot;06.11-07:46&quot;, &quot;07.11-07:48&quot;, &quot;08.11-07:51&quot;, &quot;09.11-07:53&quot;, &quot;10.11-07:55&quot;, &quot;11.11-07:57&quot;, &quot;12.11-07:59&quot;, &quot;13.11-08:01&quot;, &quot;14.11-08:03&quot;, &quot;15.11-08:05&quot;, &quot;16.11-08:07&quot;, &quot;17.11-08:09&quot;, &quot;18.11-08:11&quot;, &quot;19.11-08:13&quot;, &quot;20.11-08:15&quot;, &quot;21.11-08:17&quot;, &quot;22.11-08:19&quot;, &quot;23.11-08:21&quot;, &quot;24.11-08:23&quot;, &quot;25.11-08:25&quot;, &quot;26.11-08:27&quot;, &quot;27.11-08:29&quot;, &quot;28.11-08:30&quot;, &quot;29.11-08:32&quot;, &quot;30.11-08:34&quot;, &quot;01.12-08:35&quot;, &quot;02.12-08:37&quot;, &quot;03.12-08:39&quot;, &quot;04.12-08:40&quot;, &quot;05.12-08:42&quot;, &quot;06.12-08:43&quot;, &quot;07.12-08:45&quot;, &quot;08.12-08:46&quot;, &quot;09.12-08:47&quot;, &quot;10.12-08:48&quot;, &quot;11.12-08:50&quot;, &quot;12.12-08:51&quot;, &quot;13.12-08:52&quot;, &quot;14.12-08:53&quot;, &quot;15.12-08:54&quot;, &quot;16.12-08:55&quot;, &quot;17.12-08:56&quot;, &quot;18.12-08:56&quot;, &quot;19.12-08:57&quot;, &quot;20.12-08:58&quot;, &quot;21.12-08:58&quot;, &quot;22.12-08:59&quot;, &quot;23.12-08:59&quot;, &quot;24.12-09:00&quot;, &quot;25.12-09:00&quot;, &quot;26.12-09:00&quot;, &quot;27.12-09:00&quot;, &quot;28.12-09:00&quot;, &quot;29.12-09:00&quot;, &quot;30.12-09:00&quot;, &quot;31.12-09:00&quot; };\nString time_lamp_on[366] = { &quot;01.01-16:07&quot;, &quot;02.01-16:08&quot;, &quot;03.01-16:10&quot;, &quot;04.01-16:11&quot;, &quot;05.01-16:12&quot;, &quot;06.01-16:14&quot;, &quot;07.01-16:15&quot;, &quot;08.01-16:17&quot;, &quot;09.01-16:18&quot;, &quot;10.01-16:20&quot;, &quot;11.01-16:21&quot;, &quot;12.01-16:23&quot;, &quot;13.01-16:25&quot;, &quot;14.01-16:27&quot;, &quot;15.01-16:28&quot;, &quot;16.01-16:30&quot;, &quot;17.01-16:32&quot;, &quot;18.01-16:34&quot;, &quot;19.01-16:36&quot;, &quot;20.01-16:38&quot;, &quot;21.01-16:40&quot;, &quot;22.01-16:42&quot;, &quot;23.01-16:44&quot;, &quot;24.01-16:46&quot;, &quot;25.01-16:48&quot;, &quot;26.01-16:50&quot;, &quot;27.01-16:52&quot;, &quot;28.01-16:54&quot;, &quot;29.01-16:56&quot;, &quot;30.01-16:58&quot;, &quot;31.01-17:01&quot;, &quot;01.02-17:03&quot;, &quot;02.02-17:05&quot;, &quot;03.02-17:07&quot;, &quot;04.02-17:09&quot;, &quot;05.02-17:11&quot;, &quot;06.02-17:14&quot;, &quot;07.02-17:16&quot;, &quot;08.02-17:18&quot;, &quot;09.02-17:20&quot;, &quot;10.02-17:22&quot;, &quot;11.02-17:25&quot;, &quot;12.02-17:27&quot;, &quot;13.02-17:29&quot;, &quot;14.02-17:31&quot;, &quot;15.02-17:33&quot;, &quot;16.02-17:36&quot;, &quot;17.02-17:38&quot;, &quot;18.02-17:40&quot;, &quot;19.02-17:42&quot;, &quot;20.02-17:44&quot;, &quot;21.02-17:46&quot;, &quot;22.02-17:48&quot;, &quot;23.02-17:51&quot;, &quot;24.02-17:53&quot;, &quot;25.02-17:55&quot;, &quot;26.02-17:57&quot;, &quot;27.02-17:59&quot;, &quot;28.02-18:01&quot;, &quot;29.02-18:02&quot;, &quot;01.03-18:03&quot;, &quot;02.03-18:05&quot;, &quot;03.03-18:08&quot;, &quot;04.03-18:10&quot;, &quot;05.03-18:12&quot;, &quot;06.03-18:14&quot;, &quot;07.03-18:16&quot;, &quot;08.03-18:18&quot;, &quot;09.03-18:20&quot;, &quot;10.03-18:22&quot;, &quot;11.03-18:24&quot;, &quot;12.03-18:26&quot;, &quot;13.03-18:28&quot;, &quot;14.03-18:30&quot;, &quot;15.03-18:32&quot;, &quot;16.03-18:34&quot;, &quot;17.03-18:36&quot;, &quot;18.03-18:38&quot;, &quot;19.03-18:40&quot;, &quot;20.03-18:42&quot;, &quot;21.03-18:44&quot;, &quot;22.03-18:46&quot;, &quot;23.03-18:48&quot;, &quot;24.03-18:50&quot;, &quot;25.03-18:52&quot;, &quot;26.03-18:54&quot;, &quot;27.03-18:56&quot;, &quot;28.03-18:58&quot;, &quot;29.03-19:00&quot;, &quot;30.03-19:02&quot;, &quot;31.03-19:04&quot;, &quot;01.04-19:06&quot;, &quot;02.04-19:08&quot;, &quot;03.04-19:10&quot;, &quot;04.04-19:12&quot;, &quot;05.04-19:14&quot;, &quot;06.04-19:16&quot;, &quot;07.04-19:18&quot;, &quot;08.04-19:20&quot;, &quot;09.04-19:22&quot;, &quot;10.04-19:24&quot;, &quot;11.04-19:26&quot;, &quot;12.04-19:29&quot;, &quot;13.04-19:31&quot;, &quot;14.04-19:33&quot;, &quot;15.04-19:35&quot;, &quot;16.04-19:37&quot;, &quot;17.04-19:39&quot;, &quot;18.04-19:41&quot;, &quot;19.04-19:43&quot;, &quot;20.04-19:45&quot;, &quot;21.04-19:47&quot;, &quot;22.04-19:49&quot;, &quot;23.04-19:51&quot;, &quot;24.04-19:53&quot;, &quot;25.04-19:55&quot;, &quot;26.04-19:57&quot;, &quot;27.04-19:59&quot;, &quot;28.04-20:01&quot;, &quot;29.04-20:03&quot;, &quot;30.04-20:05&quot;, &quot;01.05-20:07&quot;, &quot;02.05-20:09&quot;, &quot;03.05-20:11&quot;, &quot;04.05-20:13&quot;, &quot;05.05-20:15&quot;, &quot;06.05-20:17&quot;, &quot;07.05-20:19&quot;, &quot;08.05-20:21&quot;, &quot;09.05-20:23&quot;, &quot;10.05-20:25&quot;, &quot;11.05-20:27&quot;, &quot;12.05-20:29&quot;, &quot;13.05-20:30&quot;, &quot;14.05-20:32&quot;, &quot;15.05-20:34&quot;, &quot;16.05-20:36&quot;, &quot;17.05-20:38&quot;, &quot;18.05-20:40&quot;, &quot;19.05-20:42&quot;, &quot;20.05-20:43&quot;, &quot;21.05-20:45&quot;, &quot;22.05-20:47&quot;, &quot;23.05-20:48&quot;, &quot;24.05-20:50&quot;, &quot;25.05-20:52&quot;, &quot;26.05-20:53&quot;, &quot;27.05-20:55&quot;, &quot;28.05-20:56&quot;, &quot;29.05-20:58&quot;, &quot;30.05-20:59&quot;, &quot;31.05-21:01&quot;, &quot;01.06-21:02&quot;, &quot;02.06-21:04&quot;, &quot;03.06-21:05&quot;, &quot;04.06-21:06&quot;, &quot;05.06-21:07&quot;, &quot;06.06-21:08&quot;, &quot;07.06-21:10&quot;, &quot;08.06-21:11&quot;, &quot;09.06-21:12&quot;, &quot;10.06-21:12&quot;, &quot;11.06-21:13&quot;, &quot;12.06-21:14&quot;, &quot;13.06-21:15&quot;, &quot;14.06-21:16&quot;, &quot;15.06-21:16&quot;, &quot;16.06-21:17&quot;, &quot;17.06-21:17&quot;, &quot;18.06-21:18&quot;, &quot;19.06-21:18&quot;, &quot;20.06-21:19&quot;, &quot;21.06-21:19&quot;, &quot;22.06-21:19&quot;, &quot;23.06-21:19&quot;, &quot;24.06-21:19&quot;, &quot;25.06-21:19&quot;, &quot;26.06-21:19&quot;, &quot;27.06-21:19&quot;, &quot;28.06-21:19&quot;, &quot;29.06-21:19&quot;, &quot;30.06-21:18&quot;, &quot;01.07-21:18&quot;, &quot;02.07-21:17&quot;, &quot;03.07-21:17&quot;, &quot;04.07-21:16&quot;, &quot;05.07-21:16&quot;, &quot;06.07-21:15&quot;, &quot;07.07-21:14&quot;, &quot;08.07-21:13&quot;, &quot;09.07-21:12&quot;, &quot;10.07-21:11&quot;, &quot;11.07-21:10&quot;, &quot;12.07-21:09&quot;, &quot;13.07-21:08&quot;, &quot;14.07-21:07&quot;, &quot;15.07-21:06&quot;, &quot;16.07-21:05&quot;, &quot;17.07-21:03&quot;, &quot;18.07-21:02&quot;, &quot;19.07-21:01&quot;, &quot;20.07-20:59&quot;, &quot;21.07-20:58&quot;, &quot;22.07-20:56&quot;, &quot;23.07-20:54&quot;, &quot;24.07-20:53&quot;, &quot;25.07-20:51&quot;, &quot;26.07-20:49&quot;, &quot;27.07-20:48&quot;, &quot;28.07-20:46&quot;, &quot;29.07-20:44&quot;, &quot;30.07-20:42&quot;, &quot;31.07-20:40&quot;, &quot;01.08-20:38&quot;, &quot;02.08-20:36&quot;, &quot;03.08-20:34&quot;, &quot;04.08-20:32&quot;, &quot;05.08-20:30&quot;, &quot;06.08-20:28&quot;, &quot;07.08-20:26&quot;, &quot;08.08-20:24&quot;, &quot;09.08-20:22&quot;, &quot;10.08-20:20&quot;, &quot;11.08-20:17&quot;, &quot;12.08-20:15&quot;, &quot;13.08-20:13&quot;, &quot;14.08-20:11&quot;, &quot;15.08-20:08&quot;, &quot;16.08-20:06&quot;, &quot;17.08-20:04&quot;, &quot;18.08-20:01&quot;, &quot;19.08-19:59&quot;, &quot;20.08-19:57&quot;, &quot;21.08-19:54&quot;, &quot;22.08-19:52&quot;, &quot;23.08-19:49&quot;, &quot;24.08-19:47&quot;, &quot;25.08-19:44&quot;, &quot;26.08-19:42&quot;, &quot;27.08-19:39&quot;, &quot;28.08-19:37&quot;, &quot;29.08-19:34&quot;, &quot;30.08-19:32&quot;, &quot;31.08-19:29&quot;, &quot;01.09-19:27&quot;, &quot;02.09-19:24&quot;, &quot;03.09-19:22&quot;, &quot;04.09-19:19&quot;, &quot;05.09-19:16&quot;, &quot;06.09-19:14&quot;, &quot;07.09-19:11&quot;, &quot;08.09-19:09&quot;, &quot;09.09-19:06&quot;, &quot;10.09-19:03&quot;, &quot;11.09-19:01&quot;, &quot;12.09-18:58&quot;, &quot;13.09-18:55&quot;, &quot;14.09-18:53&quot;, &quot;15.09-18:50&quot;, &quot;16.09-18:47&quot;, &quot;17.09-18:45&quot;, &quot;18.09-18:42&quot;, &quot;19.09-18:39&quot;, &quot;20.09-18:37&quot;, &quot;21.09-18:34&quot;, &quot;22.09-18:32&quot;, &quot;23.09-18:29&quot;, &quot;24.09-18:26&quot;, &quot;25.09-18:24&quot;, &quot;26.09-18:21&quot;, &quot;27.09-18:18&quot;, &quot;28.09-18:16&quot;, &quot;29.09-18:13&quot;, &quot;30.09-18:10&quot;, &quot;01.10-18:08&quot;, &quot;02.10-18:05&quot;, &quot;03.10-18:02&quot;, &quot;04.10-18:00&quot;, &quot;05.10-17:57&quot;, &quot;06.10-17:55&quot;, &quot;07.10-17:52&quot;, &quot;08.10-17:50&quot;, &quot;09.10-17:47&quot;, &quot;10.10-17:44&quot;, &quot;11.10-17:42&quot;, &quot;12.10-17:39&quot;, &quot;13.10-17:37&quot;, &quot;14.10-17:34&quot;, &quot;15.10-17:32&quot;, &quot;16.10-17:29&quot;, &quot;17.10-17:27&quot;, &quot;18.10-17:24&quot;, &quot;19.10-17:22&quot;, &quot;20.10-17:20&quot;, &quot;21.10-17:17&quot;, &quot;22.10-17:15&quot;, &quot;23.10-17:12&quot;, &quot;24.10-17:10&quot;, &quot;25.10-17:08&quot;, &quot;26.10-17:05&quot;, &quot;27.10-17:03&quot;, &quot;28.10-17:01&quot;, &quot;29.10-16:59&quot;, &quot;30.10-16:56&quot;, &quot;31.10-16:54&quot;, &quot;01.11-16:52&quot;, &quot;02.11-16:50&quot;, &quot;03.11-16:48&quot;, &quot;04.11-16:46&quot;, &quot;05.11-16:44&quot;, &quot;06.11-16:42&quot;, &quot;07.11-16:40&quot;, &quot;08.11-16:38&quot;, &quot;09.11-16:36&quot;, &quot;10.11-16:34&quot;, &quot;11.11-16:32&quot;, &quot;12.11-16:30&quot;, &quot;13.11-16:28&quot;, &quot;14.11-16:27&quot;, &quot;15.11-16:25&quot;, &quot;16.11-16:23&quot;, &quot;17.11-16:22&quot;, &quot;18.11-16:20&quot;, &quot;19.11-16:18&quot;, &quot;20.11-16:17&quot;, &quot;21.11-16:15&quot;, &quot;22.11-16:14&quot;, &quot;23.11-16:13&quot;, &quot;24.11-16:11&quot;, &quot;25.11-16:10&quot;, &quot;26.11-16:09&quot;, &quot;27.11-16:08&quot;, &quot;28.11-16:07&quot;, &quot;29.11-16:05&quot;, &quot;30.11-16:04&quot;, &quot;01.12-16:04&quot;, &quot;02.12-16:03&quot;, &quot;03.12-16:02&quot;, &quot;04.12-16:01&quot;, &quot;05.12-16:00&quot;, &quot;06.12-16:00&quot;, &quot;07.12-15:59&quot;, &quot;08.12-15:59&quot;, &quot;09.12-15:58&quot;, &quot;10.12-15:58&quot;, &quot;11.12-15:57&quot;, &quot;12.12-15:57&quot;, &quot;13.12-15:57&quot;, &quot;14.12-15:57&quot;, &quot;15.12-15:57&quot;, &quot;16.12-15:57&quot;, &quot;17.12-15:57&quot;, &quot;18.12-15:57&quot;, &quot;19.12-15:57&quot;, &quot;20.12-15:58&quot;, &quot;21.12-15:58&quot;, &quot;22.12-15:59&quot;, &quot;23.12-15:59&quot;, &quot;24.12-16:00&quot;, &quot;25.12-16:00&quot;, &quot;26.12-16:01&quot;, &quot;27.12-16:02&quot;, &quot;28.12-16:03&quot;, &quot;29.12-16:04&quot;, &quot;30.12-16:05&quot;, &quot;31.12-16:06&quot; };\n\n\/\/ переопределяем +3 часа к Гринвичу\nconst long utcOffsetInSeconds = 10800;\n\/\/ задаем частоту синхронизации 1 час\nconst long UpdateIntervalInMilliseconds = 3600000;\n\n\/\/ Определение NTP-клиента для получения времени\nWiFiUDP ntpUDP;\n\/\/ синхронизируем время с ntp сервером pool.ntp.org\nNTPClient timeClient(ntpUDP, &quot;pool.ntp.org&quot;, utcOffsetInSeconds, UpdateIntervalInMilliseconds);\n\n\/\/ функция дополнения числа нулём\nString c2d (byte i) { \n\/\/ добавляю ноль перед числом до 10 и преобразовываю в строку\n  String str = (String)i;\n  if (i &lt; 10)  str = &#039;0&#039; + str; \n  return str;\n}\n\nvoid setup() {\n  Serial.begin(115200);\n  \/\/ Подготовка GPIO\n  pinMode(5, OUTPUT);\n  digitalWrite(5, 0);\n\n  WiFi.begin(ssid, password);\n  while ( WiFi.status() != WL_CONNECTED ) {\n    delay ( 500 );\n    Serial.print ( &quot;.&quot; );\n  }\n  Serial.println(&quot;&quot;);\n  Serial.println(&quot;WiFi connected&quot;);\n\/\/ в случае обрыва соединения Wifi - автоматически переподключаемся\n  WiFi.setAutoReconnect(true);\n  WiFi.persistent(true);\n  timeClient.begin();\n}\n\nvoid loop() \n{\n  timeClient.update();\n\n\/\/ считываем часы и минуты\n  int currentHour = timeClient.getHours();\n  int currentMinute = timeClient.getMinutes();\n  time_t epochTime = timeClient.getEpochTime();\n  struct tm *ptm = gmtime ((time_t *)&amp;epochTime);\n\/\/ считываем число и месяц\n  int monthDay = ptm-&gt;tm_mday;\n  int currentMonth = ptm-&gt;tm_mon;\n\/\/ формируем строку в соответствие с форматом в массивах для последующего сравнения\n  String currentDateTime = c2d(monthDay)+&quot;.&quot;+c2d(currentMonth+1)+&quot;-&quot;+c2d(currentHour)+&quot;:&quot;+c2d(currentMinute);\n  Serial.println(currentDateTime);\n\n\/\/ проходим в цикле значения массива отключения и в случае совпадения - отключаем лампу\n  for (int i = 0; i &lt; 366; i++) {\n    if (time_lamp_off[i] == currentDateTime) {\n      Serial.println(&quot;Off lamp&quot;);\n      digitalWrite(5, 0);\n      break;\n    }\n }\n\/\/ проходим в цикле значения массива включения и в случае совпадения - включаем лампу\n  for (int i = 0; i &lt; 366; i++) {\n    if (time_lamp_on[i] == currentDateTime) {\n      Serial.println(&quot;On lamp&quot;);\n      digitalWrite(5, 1);\n      break;\n    }\n }\n\n\/\/ пауза - 20 сек. проверку осуществляем 3 раза в минуту, в случае, если что-то один раз сбоит - перепроверим еще пару раз, просто добавляем надёжности\n  delay(20000);\n}<\/code><\/pre><p>Собрано было в компактный корпус, тоже с Алика<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-7.png\" width=\"533\" height=\"411\" alt=\"\" \/>\n<\/div>\n<p>Теперь всё работает как часы, в прямом и переносном смысле 😅<\/p>\n",
            "date_published": "2022-11-30T14:15:56+03:00",
            "date_modified": "2022-11-30T16:06:41+03:00",
            "tags": [
                "arduino",
                "Nodemcu-CP2102",
                "ntp",
                "Адениум обесум",
                "восходы\/закаты",
                "солнце",
                "фиолетовая лампа",
                "фитолампа"
            ],
            "image": "https:\/\/voronin.one\/pictures\/Adenium-obesum.jpg",
            "_date_published_rfc2822": "Wed, 30 Nov 2022 14:15:56 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "35",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/voronin.one\/pictures\/Adenium-obesum.jpg",
                    "https:\/\/voronin.one\/pictures\/fitolampa.jpg",
                    "https:\/\/voronin.one\/pictures\/rele-s-datchikom-sveta.jpg",
                    "https:\/\/voronin.one\/pictures\/razemy-12V.jpg",
                    "https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-2.png",
                    "https:\/\/voronin.one\/pictures\/Nodemcu-CP2102.jpg",
                    "https:\/\/voronin.one\/pictures\/30N06.jpg",
                    "https:\/\/voronin.one\/pictures\/remote\/youtube-hoprWM_b6V0-cover.jpg",
                    "https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-4.png",
                    "https:\/\/voronin.one\/pictures\/avtomatizaciya-fitolampy-7.png"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}