Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
С этой сетью сенсорных станций, настроенной в режиме ведущий / ведомый, вы сможете управлять освещением и безопасностью в своем доме. Эти сенсорные станции (Node01, Node02 в этом проекте) подключены к главной станции (Node00), подключенной к вашей локальной сети Wi-Fi. Я установил Node01 в своей кладовой, а Node02 в своем гараже, управляя освещением и движением. Мастер-станция установлена в нашей столовой, подключенной к нашему Wi-Fi роутеру. Я установил звонок в гараже и маленький зуммер на главной станции, который будет звучать, когда движение обнаруживается какой-либо сенсорной станцией в сети.
Основные особенности сети:
- Можно настроить сеть с более чем двумя сенсорными станциями (подчиненными станциями) (Node01, Node02, Node03,….)
- Благодаря использованию беспроводных трансиверов с антенной, сеть может покрывать большую площадь.
- Вы можете управлять всей сетью с мобильного телефона
- Отправлять электронное письмо (учетная запись Gmail) при обнаружении движения и включении режима тревоги. Поэтому, если вы включите push-уведомления Gmail на своем мобильном телефоне, вы будете знать, когда в вашей сети будет обнаружено движение.
для домашних целей:
- Включать свет при обнаружении движения / всегда включать свет (для всей сети или для каждой ведомой станции)
- Измените время в минутах, в течение которого свет включается после обнаружения движения для каждой ведомой станции
в целях безопасности:
- Включение и отключение режима тревоги
- Каждая подчиненная станция может отправлять сигнал на главную станцию (Node00), когда включен режим тревоги и обнаружено движение.
- Главная станция может активировать звонок и отправить электронное письмо, когда один из этих сигналов получен от любой подчиненной станции и включен режим тревоги. Мастер-станция (Node00) подключена к Интернету с помощью Wi-Fi-соединения для управления всей системой с помощью мобильного телефона. Он настроен как WifiWebServer
Шаг 1: Список материалов
Список материалов, которые я использовал для сборки Node01 и Node02 (подчиненных станций), следующий:
- Плата Mega 2560 R3
- Пластиковая подставка для MEGA 2560 R3
- ИК-датчик HC-SR501
- Пластиковая подставка для HC-SR501
- Реле 5В
- Модуль беспроводного приемопередатчика 2.4G 1100m NRF24L01 + PA + LNA с антенной LKY67
- Адаптер 8Pin NRF24L01 (для улучшения характеристик NRF24L01)
- HLK-PM01 AC DC 220 В до 5 В мини-источник питания
Список материалов для сборки Node00 (мастер-станций) следующий:
- Плата Mega 2560 R3
- Пластиковая подставка для MEGA 2560 R3
- WiFi-модуль NodeMCU Lua Amica V2 ESP8266
- Модуль беспроводного приемопередатчика 2.4G 1100m NRF24L01 + PA + LNA с антенной LKY67
- Плата адаптера VCC 5v-3.3v для NRF24L01 (для улучшения характеристик NRF24L01)
- Адаптер AC-DC, 9В, 1А (2,1 мм x 5,5 мм)
Кроме того, я использовал следующий материал:
- 2-контактные 5-миллиметровые разъемы для печатных плат
- Провода перемычки
- Макетная МБ-102 (800 контактов)
- Mini Solderless Breadboard 170 контактов
- Комплект светодиодов и резисторов
- Платы печатных плат
- Комплект оловянного паяльника
- Клей-пистолет
- Прозрачный метакрилат
- Колокол
Шаг 2: Как подключить и запрограммировать Node01 и Node02 (ведомые станции)
Для программирования скетча "SlaveSation.ino" мне потребовались библиотеки RF24 и сетевые библиотеки RF24.
На приведенной выше блок-схеме вы можете увидеть логику сенсорной станции и сообщения, которыми обмениваются подчиненная сенсорная станция и главная.
Перед загрузкой скетча вам необходимо настроить адрес подчиненного узла в восьмеричном формате
const uint16_t this_node = 01; // Адрес нашего узла в восьмеричном формате (slave): 01, 02, 03…
Значение светодиодов на каждой ведомой станции следующее:
- Синий светодиод. Он будет гореть, пока на контакте датчика PIR высокий уровень.
- Зеленый светодиод. Он будет гореть при подключении будильника.
Шаг 3: Как подключить и запрограммировать Node00 (мастер-станция)
На станции Node00 мы можем найти две разные платы:
- Плата MEGA 2560 R3. Это устройство используется для получения сообщений от ведомой станции при обнаружении движения с помощью беспроводной связи. Он активирует звонок при обнаружении движения и подключении сигнализации. Чтобы остановить звонок, достаточно просто отключить режим будильника. Кроме того, он отправляет подчиненным станциям сообщения от NodeMCU, чтобы включить или отключить обнаружение движения, всегда включать свет, всегда выключать свет,…
- Плата NodeMCU Lua Amica V2 ESP8266. Он работает как веб-сервер Wifi для передачи и приема команд из удаленного места с помощью веб-страницы в мобильном телефоне. Кроме того, отправляет сообщения электронной почты при обнаружении движения и включении режима тревоги.
Оба устройства запрограммированы для связи друг с другом в конфигурации Master (NodeMCU) / Slave (MEGA) через синхронный последовательный протокол I2C с использованием библиотеки Wire. Протокол I2C предполагает использование двух линий для отправки и приема данных: вывод последовательного тактового сигнала (SCL) и вывод последовательных данных (SDA), по которому данные передаются между двумя устройствами.
Как вы можете видеть на рисунке, два контакта для связи I2C на плате MEGA 2560 R3:
- SDA -> контакт 20 SDA
- SCL -> контакт 21 SCL
и другие в NodemMCU:
- SDA -> цифровой контакт 1
- SCL -> цифровой контакт 2
Перед загрузкой скетча для ESP8266 вы должны установить плату ESP8266. Для этого вам необходимо ввести «https://arduino.esp8266.com/stable/package_esp8266com_index.json» в «Дополнительные URL-адреса Board Manager» в окне настроек в Arduino IDE. После этого вам нужно открыть менеджер досок и установить "esp8266".
Я использую адаптер внешнего источника питания (9 В, 1 А) для платы MEGA 2560 R3 (разъем питания постоянного тока, 2, 1 мм x 5, 5 мм) и подключаю плату NodeMCU к контакту 3V3 на плате MEGA.
Шаг 4: WifiWebServer (NodeMCU на главной станции)
Скетч, загруженный в NodeMCU (Node00 или мастер-станция), настроен как веб-сервер, подключенный к вашей домашней сети Wi-Fi. Можно получить доступ удаленно, если вы настроите переадресацию портов в своем маршрутизаторе.
Перед загрузкой скетча WifiWebServerV3.ino в NodeMCU вам необходимо сделать следующее:
- Обновите порт, который вы собираетесь настроить в своем маршрутизаторе (переадресация портов) для удаленного доступа к NodeMCU.
- Обновите пользователя и пароль для доступа к домашней сети Wi-Fi
- Обновите логин и пароль своей учетной записи Gmail, чтобы отправлять электронные письма при обнаружении движения и подключении будильника.
- Обновите адрес электронной почты, на который вы будете получать электронные письма.
Чтобы обновить пользователя, пароль и порт, который сервер будет использовать для прослушивания, вам необходимо найти следующий код в скетче WifiWebServerV3.ino и обновить его:
const char * ssid = "*** ваш SSID ***";
const char * password = "*** ваш пароль ***"; Сервер WiFiServer (80);
Чтобы обновить адрес электронной почты, на который вы будете получать электронные письма, вам необходимо найти следующий код и обновить его:
const char * to_email = "*** адрес электронной почты, на который вы получите сообщение ***";
Чтобы обновить имя пользователя и пароль вашей учетной записи Gmail для получения электронной почты, вам необходимо найти следующий код в файле "Gsender.h" и обновить его:
const char * EMAILBASE64_LOGIN = "*** ваш адрес электронной почты закодирован в BASE64 ***";
const char * EMAILBASE64_PASSWORD = "*** ваш пароль закодирован в BASE64 ***"; const char * FROM = "*** ваш адрес электронной почты ***";
Для кодирования или декодирования данных в BASE64 я использовал www.base64encode.org
Если вам нужна дополнительная информация об отправке и получении электронной почты с помощью ESP8266, есть «Инструкции» по этому поводу здесь.
Как только вы сможете это сделать, вы можете проверить соединение в своем маршрутизаторе. Если устройство подключено, вам необходимо зарезервировать назначенный IP-адрес для этого устройства. Кроме того, рекомендуется поговорить со своим интернет-провайдером, чтобы установить статический IP-адрес на вашем маршрутизаторе.
Чтобы получить доступ к веб-странице рядом с вашим Wi-Fi-маршрутизатором, просто введите только локальный IP-адрес, назначенный вашим маршрутизатором, после порта, который вы используете в веб-навигаторе. Например: 192.168.40.15:800. Если вы попытаетесь получить удаленный доступ, вам нужно будет ввести IP-адрес вашего маршрутизатора после порта, который вы используете, как указано выше.
Веб-страница, которую я вам показываю на изображениях, запрограммирована для управления сетью с двумя подчиненными станциями.
Система изначально сконфигурирована для управления максимум 5 подчиненными станциями, но вы можете изменить это. Просто найдите следующий код в WifiWebServerV3.ino и SlaveStation.ino
#define number_max_slaves 5
Веб-страница изначально разделена на 4 раздела:
- Раздел «Состояние», где показано, подключена ли сигнализация.
- Раздел «Счетчик тревог», где отображается количество обнаруженных движений на каждой ведомой станции.
- Раздел «Тревога», где вы можете подключить или отключить (ПОДКЛЮЧИТЬ ТРЕВОГУ / ОТКЛЮЧИТЬ ТРЕВОГУ) тревогу и сбросить счетчик тревог (СБРОС СЧЕТЧИКОВ)
-
Раздел «Освещение», где вы можете управлять освещением каждой ведомой станции. Вы можете контролировать следующее:
- Включать свет на всех подчиненных станциях / включать свет только при обнаружении движения на всех подчиненных станциях (СЕТЬ ВСЕГДА ВКЛЮЧЕНА / СЕТЬ ПРИ ДВИЖЕНИИ)
- Измените время в минутах, в котором горит свет для каждой подчиненной станции (NODExx ON 1 MINUTE / NODEXX ON 2 MINUTE)
- Включите свет на каждой ведомой станции (NODExx ВСЕГДА ВКЛЮЧЕН)
- Включайте свет для каждой подчиненной станции только при обнаружении движения (NODExx_MOV)
Вам не нужно ничего менять, потому что это будет работать независимо от имени подчиненных станций, которые вы настроите. Более того, он автоматически определит количество подчиненных станций, подключенных к сети.
Конечно, вы можете загрузить эскиз и легко изменить код, необходимый для отображения вашей собственной страницы веб-управления.
Шаг 5. С самого начала…
Вот шаги, которые вы должны выполнить, чтобы построить свою сеть:
- Купите все материалы по списку, который я даю вам на «Шаге 1».
- Соедините компоненты, следуя чертежу, который вы можете скачать в «Шаге 2» и «Шаге 3».
- Постройте ящики для каждой подчиненной станции и главной станции. Я построил коробки из метакрилата.
-
Настройте каждую ведомую станцию:
Скачайте и загрузите скетч SlaveStation.ino в одну плату MEGA 2560 R3. Вам нужно только отредактировать эскиз и обновить адрес подчиненной станции, как вы можете видеть в «Шаге 2»
-
Настройте мастер-станцию:
- Скачайте и загрузите скетч SlaveStation.ino в один MEGA 2560 R3. Вам не нужно ничего менять, независимо от количества подчиненных узлов вашей сети. Изначально скетч настроен максимум на 5 подчиненных станций.
- Загрузите и загрузите скетч «WifiServerV3.ino» в NodeMCU. Вы должны обновить эскиз, следуя инструкциям в «Шаге 4».
- Настройте маршрутизатор для удаленного доступа к NodeMCU (переадресация портов, статический IP-адрес…)