В этом проекте мы создадим люксметр или на базе IoT ESP8266 с использованием датчика освещенности BH1750 и будем контролировать его с помощью приложения Blynk. С помощью этого датчика мы можем рассчитать количество света в люксах и проверить яркость окружающего света. Этот датчик имеет широкий спектр применения и может использоваться для регулировки яркости ЖК-дисплея мобильного телефона путем обнаружения окружающего освещения. Его также можно использовать для включения/выключения уличных фонарей в зависимости от темноты.

GY-302 представляет собой коммутационную плату датчика освещенности BH1750, который представляет собой цифровую ИС датчика внешней освещенности с интерфейсом шины I2C. Эта микросхема лучше всего подходит для получения данных об окружающем освещении в мобильных телефонах для управления яркостью экрана в зависимости от освещения окружающей среды. Этот датчик может точно измерять значение люкс света до 65535. Он потребляет очень низкий ток и использует фотодиод для определения света. BH1750 работает с напряжением питания от 2,4В до 3,6В. BH1750FVI – основной модуль датчика, для работы которого требуется напряжение 3,3 В. В схеме использован стабилизатор напряжения. SDA и SCL – это контакты, используемые для связи по I2C с адресом I2C 0x23. С этими выводами используются подтягивающие резисторы сопротивлением 4,7 кОм.
Теперь давайте соединим датчик внешней освещенности BH1750 с платой NodeMCU ESP8266. Подключение довольно простое. Подключите вывод I2C BH1750, т. е. SDA и SCL, к D1 и D2 платы NodeMCU соответственно.

Подключите контакт 3,3 В BH1750 к контакту 3,3 В NodeMCU и GND к GND. Схему можно легко собрать на макетной плате, как показано на следующем изображении.

Проект люксметра на основе Интернета вещей будет неполным без приложения Blynk. Blynk предназначен для Интернета вещей. Он может удаленно управлять оборудованием, отображать данные датчиков, хранить данные, визуализировать их и делать много других интересных вещей. Загрузите и установите приложение Blynk из магазина Google Play. Пользователи iOS могут загрузить приложение из App Store. После завершения установки откройте приложение и зарегистрируйтесь, используя свой адрес электронной почты и пароль. Создайте свой пользовательский интерфейс, перетаскивая и заполняя детали вместе с назначением виртуального контакта. После создания пользовательского интерфейса вы можете запросить токен аутентификации, отправив письмо. Вам понадобится токен аутентификации для кода.

Исходный код или программа для IoT Lux Meter с использованием BH1750 ESP8266 и Blynk приведены ниже. Вы можете загрузить этот код на плату ESP8266 NodeMCU. Перед компиляцией скетча вам необходимо добавить в Arduino IDE следующие библиотеки: Blynk и BH1750. Помимо этого, в начале кода вам нужно будет изменить название Wi-Fi сети, ее пароль и ключ Blynk на свои параметры.
#include <Wire.h>
#include <BH1750.h>
#define BLYNK_PRINT Serial
#include <Blynk.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "_YONn2J3C8pxB1iIItsalCkS2diOjW9E";
char ssid[] = "EmbedderShop";
char pass[] = "EmbedderShop.ru";
BH1750 lightMeter;
void setup()
{
Wire.begin();
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
lightMeter.begin();
}
void loop()
{
Blynk.run();
float lux = lightMeter.readLightLevel();
Serial.print("Light Meter: ");
Serial.print(lux);
Serial.println(" lx");
Blynk.virtualWrite(V2, lux);
delay(1000);
}
После загрузки кода плата NodeMCU подключится к Wi-Fi, используя назначенный SSID и пароль Wi-Fi. Как только Nodemcu подключится к Wi-Fi, он начнет загружать данные на Blynk Server. Вы можете отслеживать данные об интенсивности света в приложении Blynk, как показано на следующем изображении.

NodeMCU ESP8266 CP2102
Модуль NodeMCU на основе беспроводного микроконтроллера ESP8266 (ESP-12F) и преобразователя интерфейсов CP2102