Всех приветствую!
Каждый уважающий себя разработчик должен реализовать некий комплекс устройств и назвать это «Умным домом». В свободное время я сделал свой вариант, который можно взять за основу «Умного дома», то есть добавлять туда новые устройства и функционал. На данный момент это представляет собой несколько устройств и сайт где выводятся метеоданные (температура, влажность и давление), также на сайте есть кнопки, на которые можно повесить какие либо действия. Метеоданные считываются с датчика BME280 микроконтроллером STM32F103, пересылаются с помощью радиомодуля 433МГц НС-12 на ESP32, оттуда по WiFi данные шлются на Raspberry Pi, на которой работает сервер сайта.
Можно было обойтись без STM32 и собирать метеоданные сразу на ESP32, но в текущей реализации есть некоторые плюсы, например модульность, т. е. можно добавить сколько угодно датчиков с радиомодулями в доме, обменивающихся данными с центральным модулем на ESP32, а также по причине того что в ESP32 нет отладки по JTAG, по крайней мере, «из коробки», поэтому на данную плату возлагаются лишь функции WiFi хаба между беспроводными датчиками и Raspberry Pi.
Сайт написал на PHP с элементами JavaScrypt для динамического контента, реализацию сервера взял у Beej, обмен данными между малиной и ESP32 осуществляется с задействованием интернет сокетов. Радиомодули HC-12 работают на частоте 433МГц, и максимально удобны и просты в использовании, являются по сути беспроводным UART’ом, т. е. данные, отправленные в них по UART на стороне передатчика приходят в том же виде на все модули, настроенные на ту же частоту и скорость обмена. Датчик BME280 превосходит по точности дешевые китайские DHTxx. Библиотеку для работы с BME280 писал по его даташиту. Для НС-12 особо и нечего было писать, там всё просто)
Так выглядит сайт:
Все исходники прилагаю.
Здесь ПО STM32 и ESP32:
Meteostation_cubeide-master.zip
Исходники сайта:
Изменено пользователем MillyVolt2
1 Комментарий
Рекомендуемые комментарии
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.