# Cвет в подъезде Чаще всего требуется просто зафиксировать значение освещения "достаточно темно, пора включать свет" или "достаточно светло, можно выключить свет". Для измерения уровня освещения используется фоторезистор, например, VT93N2 [[Datasheet](http://www.farnell.com/datasheets/919043.pdf)]. ![](/assets/images/iot/02/sens_photores.jpg) **Спецификация:** | Параметр | Значение | | ------------------------------------|----------------| | максимальная потребляемая мощность | 100 мВт | | спектральный пик | 540 нм | | сопротивление при освещении 10 люкс | от 2 до 5 кОм | | сопротивления в темноте | 500 кОм | Однако, в этом случае не нужна информация об уровне освещенности. Можно дополнить фоторезистор логикой на основе компаратора LM393 и подстроечного резистора. В итоге компаратор будет сравнивать заданный подстроечным резистором сигнал с сигналом от фоторезистора и будет выдавать 1 или 0 в зависимости от разницы сигналов. Мы будем использовать готовый модуль с фоторезистором и компаратором: ![](/assets/images/iot/pht_module.jpg) Для настройки порога срабатывания потребуется отвертка. Компаратор работает от напряжения 5&nbsp;В, а входы контроллера WeMos D1 расчитаны максимум на 3.3&nbsp;В, поэтому нам потребуется преобразователь уровня TTL ![](/assets/images/iot/ttl_level_converter.jpg) ### Схема подключения ![](/assets/images/iot/03/light_digital.svg "Схема подключения") Перед подключением контроллера к компьютера обязательно проверьте, что напряжение на входе VA преобразователя уровней меньше напряжения VB (**VA < VB**). | WeMos D1 | Конвертер TTL | Модуль фото | |----------|---------------|-------------| | 3V3 | VA, OE | - | | 5V | VB | VCC | | GND | GND | GND | | D1 | A1 | - | | - | B1 | DO | ### Пример программы ```c #define PHT_PIN D1 // Вход датчика int delayMS = 1000; // Переиод в мс long lastMS = 0; void setup() { pinMode(PHT_PIN, INPUT); Serial.begin(115200); } void loop() { if ( millis() - lastMS > delayMS) { // Считываем значение c выхода компаратора if ( digitalRead(PHT_PIN) ) Serial.println("Above threshold"); else Serial.println("Below threshold"); lastMS = millis(); } } ``` ### Итоговое устройство ![](/assets/images/iot/03/light_digital.jpg) > Рекомендуем не устанавливать модуль фотодатчика в макетную плату, аподключить его проводами типа F-M - так будет удобнее устанавливать порог срабатывания компаратора. ## Задача Написать прошивку, которая будет 1. обрабатывать ([digitalRead](https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/)) срабатывание датчика и отправлять сигнал - "1" если света достаточно и "0" если света мало, в топик **itschool/dlight**; 2. зажигать светодиод на плате микроконтроллера если темно. Как управлять светодиодом на плате вы уже видели в проекте **Blink**. [к списку задач](iot/summer/tasks)