Этот репо содержит инструкции по сборке для многоцелевого сенсорного устройства ESP8266 для домашних проектов IoT.
Правление V5, частично населенное. Изображение, сгенерированное в Кикаде.
Эта доска для датчиков отвечает большинству моих потребностей в оборудовании для дома. Он вписывается в дешевый, широко доступный корпус (не требуется 3D-печать) и может быть включен либо литий-ионной батареей (мониторинг напряжения, зарядка, обратная полярность и схема защиты), либо USB, с соответствующим обменом мощностью, если USB и батарея подключены одновременно. Что касается программного обеспечения, я держал вещи максимально высоким уровнем: Tasmota для большинства сценариев использования; Микропитон, где это необходимо. Коммуникация использует протокол MQTT через Wi-Fi или Lora (я использую плату в качестве как дистанционный датчик LORA, так и в качестве моста Lora-MQTT).
Плата предназначена для следующих датчиков, а также для управления двигателем/насосом (для автоматического полива растений). Пына GPIO остается легко доступным, поэтому эта плата также может использоваться в качестве основы для многих других датчиков.
Использование ESP8266 поставляется с некоторыми ограничениями, в частности, вокруг доступного GPIO и только одного порта ADC. Это означает, что не вся потенциальная функциональность доступна одновременно. Да, эти ограничения можно преодолеть либо с помощью разветвителя порта, либо с помощью другого микроконтроллера, такого как ESP32; Однако частью веселья для меня было то, как много я могу сделать только с ESP8266, и конечный результат соответствует всем моим вариантам использования.
![]() | ![]() |
|---|---|
| V4, с BME280 (температура, давление и влажность), BH1750 (LUX) и влажными датчиками (через аудиопроводку). Оснащен для поливного насоса (справа внизу); в настоящее время не подключен. | V5, с датчиками BME280 и MH-Z19C (CO 2 ) |
![]() |
|---|
| Свежая доставка досок V5 |
Вы могли бы (должны?!) Использовать что -нибудь еще. Первоначально я разработал это как способ узнать о датчиках IoT и конструкции/изготовлении схемы. Я застрял с этим, потому что он дает несколько преимуществ по сравнению с готовыми досками:
Доска может питаться либо непосредственно из USB, либо из литий-ионной батареи. Правление V4 и ранее использовали микро-USB; V5 использует USB-C. Вырез слева от платы предназначен для размещения 1-клеточного случая 18650 батареи, подобного этому (ссылка на покупку). Разъем аккумулятора представляет собой 2-контактный JST-PH (2-мм шаг), но если вы предпочитаете, просто припаяйте провода непосредственно к разъемам.
Если и батарея, и USB подключены одновременно, цепь совместного использования энергии гарантирует, что только USB поддерживает плату. Аккумулятор используется в сочетании с копией общего модуля на основе TP4056 на основе 3-чипа для зарядки. Существует переключатель, если вы не используете батарею и хотите обойти эту схему (или если вы не хотите, чтобы батарея заряжалась во время подключения USB). Модуль включает в себя защиту для перезарядки, перегрузки, перегрузки и короткого замыкания. Обратите внимание, что защита от перегрузки и короткого замыкания обходится для остальной части платы (а не батареи) при подключении USB, а схема совместного использования энергии активна. Стандартный модуль зарядки не включает защиту от батареи, поэтому я также добавил это.
Мониторинг напряжения аккумулятора доступен, когда пройден перемычка JP5 (спереди) или JP6 (сзади). Это соединяет положительный терминал аккумулятора через разделитель напряжения, к единственному контакту ADC ESP. Это соединение является необязательным, потому что датчик влаги (и, конечно, другие датчики) также нуждается в доступе к АЦП. Из -за этого явно невозможно контролировать как напряжение батареи, так и датчик влажности почвы одновременно с платой V5.
Примечания
Есть головокружительный диапазон возможных LDO ICS на выбор. Я остановился на XC6203P332PR из -за его относительно высокой мощности тока и низкого напряжения отсева. Правление V4 имело следы для двух альтернативных регуляторов, которые я планировал проверить на стабильность, но они не были необходимы и были удалены в V5.
На версии PCB я соединил два 1 мкф танталовых конденсатора с XC6203 в соответствии с таблицей данных. После нескольких недель использования у меня был конденсатор на двух из этих досок, вызывая короткое замыкание и много дыма (в то время доски с USB-мощностью). Прочитав онлайн-истории Tantalum в Интернете, я решил поэкспериментировать с обменами их на керамику на V5 и не испытывал никаких дополнительных проблем. Позже я обнаружил, что две сбои были моей виной: я установил детали в обратном порядке! Я уверен, что есть веская причина, по которой группа маркеров полярности на танталах обозначает позитив, а на алюминиевых конденсаторах и диодах это обозначает негатив, но они споткнулись на этом новичке.
Удобно, что XC6203P332PR также совместим с белыми досками адаптера ESP-12F. Он меньше, чем предоставленная площадь, но все еще может быть припаянным на нем с небольшими проблемами. Убедитесь, что вы удалите центральный резистор нулевых ом на передней части платы, если вы используете регулятор, установленного платой.
Я узнал о трудном способе о чувствительности к электрическому шуму ESP8266: на v3 доски он перезагрузился всякий раз, когда активирован полив. Я преодолел это в V4 с помощью перепозиции компонентов (перемещение двигателя в дальний конец вдали от микроконтроллера), добавляя дополнительные конденсаторы рядом с соединением двигателя, увеличивая ширину трассы мощности по сравнению с следами сигнала, сводя к минимуму петли на плоскости заземления и отделяя обратную путей мощности от остальных компонентов.
Доска предназначена для ESP-12F. Я склонен мигать чип в плате программиста до пайки, просто чтобы проверить, что он работает.
При установке его можно нормально вспыхнуть, подключив интерфейсную плату USB-UART к соответствующим булавкам.
| Приколоть# | Порт | Соединение доски | Резистор* |
|---|---|---|---|
| 1 | Перстю | Кнопка сброса | |
| 2 | Адвокат | АЦП (влага или батарея) | |
| 3 | Поступка | Чип включен | Руководитель, или E-Pu |
| 4 | IO16 | Глубокий | |
| 5 | IO14 | I2c scl или spi sck | |
| 6 | IO12 | Влага VCC, или SPI SDO-MISO | |
| 7 | IO13 | I2c SDA или Spi mosi | |
| 8 | Венчурной | ||
| 15 | Гнездо | ||
| 16 | IO15 | Lora NSS | E-pd |
| 17 | Io2 | Бортовые светодиоды, и Spi ss | |
| 18 | Io0 | Кнопка вспышки | E-Pu |
| 19 | Io4 | Переключатель режима (GND: используйте сон) | E-Pu |
| 20 | Io5 | Водяной насос, или Lora Dio | E-pd |
| 21 | Rxd | CO 2 TX | |
| 22 | Txd | CO 2 RX |
* Резистор прикреплен к булавке: I: Внутренний, E: внешний, PU: подтягивание, PD: выпадает
Похоже, есть некоторые онлайн -дебаты об оптимальном способе подключения RST к GPIO16, чтобы использовать функциональность DeepSleep ESP8266. Я допустил ошибку на стороне осторожности и добавил диод между ними.
ESP8266 восприимчив к Brown-Outs, если напряжение слишком низкое (хорошее объяснение этой проблемы можно найти здесь). В сочетании с неочевидным увеличением напряжения от регулятора, когда питание сначала применяется, это может привести к задачам загрузки. Чтобы защитить от этого, я включил необязательный руководитель напряжения (TPS3839G33DBZ), который установит только штифт с чипсом только при высоком напряжении выше соответствующего порога. Тем не менее, я еще не заметил, что Brown-Outs-это проблема, поэтому я иногда пропускаю этот компонент.
Пара устройств, оснащенных Lora, в своих корпусах
Объединение ESP8266 с модулем LORA - это растяжение, когда дело доходит до доступного GPIO. Эта плата предназначена для работы с модулями LORA SX1276 (пример Link) и в значительной степени опирается на дизайн, который сводит к минимуму необходимые порты, связывая три булавки модуля Lora (DIO0, 1 и 2) с одним пин -контактом ESP8266 через три диода (FootPrints Poard D9, D10 и D11 соответственно). Эта конфигурация совместного использования DIO нуждается в специальной обработке в программном обеспечении. Тем не менее, для простых сообщений LORA требуется только DIO0, поэтому для моих досок LORA на сегодняшний день я могнул D9, и оставил отключен D10 и D11.
Для тестирования вы можете непосредственно припаять общие антенны спиральной проволоки (часто включенные в покупку модуля) непосредственно к контакту антенны модуля. Диапазон будет отстой, хотя. Для лучшего диапазона прикрепите антенну с более высоким усилением (я использую 5DBI антенны, купленные здесь). Я включаю IPEX U.FL-R-Print на AE1. В качестве альтернативы разъемы, установленные на краю SMA, хорошо подходят на краю доски над Footprint J5. Они могут быть подключены следующими (этот пример использует плату V4, но то же самое будет работать для V5): сверху и снизу.
Примечания
Один АЦП доступен на ESP8266, с диапазоном измерений от 0 В до 1 В. Для измерения более высоких напряжений требуется разделитель напряжения. На борту V5 АЦП можно использовать либо для периферийных устройств, подключенных к аудио, либо для контроля напряжения батареи, если либо JP11, либо JP5 закрыт.
Соединения через аудиораздел проходят разделитель с R1 = 470 кОм (компонент R7), R2 = 200 кОм (компонент R8). Это позволяет измерять напряжения до 3,3 В (3,3 В снижается до приблизительно 0,985 В; калибровать сигнал для более высокой точности).
Соединение батареи добавляет дополнительный резистор 330 кОм (компонент R10) последовательно с компонентом R7, что приводит к R1 = 800 кОм. Это увеличивает диапазон измерений до 5 В.
Я решил использовать 4-полюсный звук (Model PJ313E) для подключения датчиков влаги к плате. На данный момент только три из четырех полюсов подключены; Четвертый - это запасной с взглядом на будущие функции. Начиная с базы до кончика звуковой пробки, текущие подключения:
| Полюс | Связь |
|---|---|
| 1 | Гнездо |
| 2 | Нет подключения |
| 3 | 3,3 В (от GPIO12, через JP3) |
| 4 | До АЦП через 3,3 В |
Я столкнулся с одной проблемой с выбранным моим гнездом (или, может быть, комбинация сокета и вилков, которые я использую): по умолчанию не удается подключиться ко всем четырем полюсам. Это можно увидеть на верхнем изображении здесь, где самая глубокая контактная штифта (полюс 4) не отклоняется. Чтобы решить проблему, я обрезал/подал выступающую пластиковую переднюю часть гнезда (нижнее изображение)
Небольшие водяные насосы и необходимые гибкие трубки широко доступны. Как обсуждалось выше, они электрически ныряют плюггеры; Следовательно, почему разъем для насоса находится в дальнем углу доски от ESP и защищен за двумя собственными конденсаторами. Обычно он питается GPIO5 через N-канальный MOSFET или может работать вручную с помощью дополнительной кнопки SW5.
Для простоты, и, поскольку небольшие насосы, по -видимому, способны функционировать в довольно широком диапазоне напряжения, насос поставляется с любым напряжением, которое в настоящее время питает плату (определяется состоянием схемы распределения мощности): если USB подключен, это будет 5 В минус прямое напряжение через Diodes D2 и D8; Если на батарейке это будет напряжение аккумулятора минус каплю D8. На практике это действительно не имеет большого значения: немного больше воды будет перекачивается в течение определенного времени, когда на USB против батареи.
Для подключения к плате насоса есть след для гнезда DC-002. Я подумал о том, чтобы использовать USB -розетку, но решил, что это вводит в заблуждение, так как выходное напряжение не всегда 5 В, которое можно ожидать от USB. На доске, изображенной выше, я пропустил розетку с питанием и просто подключил двойной штифт.
Я выбрал эту коробку проекта, потому что он дешевый, широко доступный, и всего лишь правильный размер для печатной платы и батареи 18650.
Для прикрепления доски к коробке необходимы 8 мм винты M2.6.
| Свойство | Модуль | Соединение доски | Техническая спецификация | Ссылка на покупку* |
|---|---|---|---|---|
| Температура, давление, влажность | BME280 | Прямой (2,54 мм заголовки) | Связь | |
| Люкс | BH1750 | Прямой (2,00 мм заголовки) | Связь | Aliexpress |
| CO 2 | MH-Z19C | Прямой (2,54 мм заголовки) | Связь | Aliexpress |
| Влага | «Емкостный датчик влажности почвы v1.2» | Аудио | Ссылка (старая версия) | Aliexpress |
* Я купил по этим ссылкам в прошлом, но им не было никаких гарантий. Я также не планирую обновлять их, когда они неизбежно истекают.
Это очень удобная температура, влажность и датчик давления. С текущей точкой крепления датчика он находится частично за пределами корпуса. Я нахожу это удобным, потому что мне не нужно беспокоиться о воздушном потоке в коробке. Если текущая геометрия оскорбляет вас, или вам нужно более надежное устройство, где датчик не рискует повредить, рассмотрите редизайн на точке подключения или выберите альтернативный датчик со встроенной клеткой.
Вы можете обнаружить, что припаянные булавки мешают правильно закрыть крышку корпуса. Если это так, вы можете обрезать их до пайки, как я здесь сделал.
Датчик может общаться с помощью i2c или spi; Большинство людей, кажется, используют I2C, для которого вам не нужно вносить изменения в состав. Если вам нужен интерфейс SPI, закройте пару припоя мостов на задней панели, чтобы подключить дополнительные булавки. На борту V5 одно из этих соединений также способствует датчику влаги, поэтому потребуются изменения, если вы хотите запустить как BME280 (с интерфейсом SPI), так и датчик влаги одновременно.
Примечания
Это простой и надежный фотодиод в сочетании с интерфейсом I2C. Вы можете купить его в различных формах формы, причем версия с легким мячом особенно удобна для наших целей. Обрезайте пластиковые части встроенного разъема, и теперь это может подключаться непосредственно к стандартному заголовку штифта на 2 мм, как включено на борт V5. Легкий шар может быть выскочен с датчика и напрямую установлен в верхнюю часть корпуса.
Примечания
Это самый дорогой датчик, который я использую, но я думаю, что оно того стоит, чем более дешевые альтернативы VOC. Он общается через автобус UART (SO ESP8266 PINS RX и TX). Поэтому вы хотите убедиться, что датчик не подключен, если вы пытаетесь прошить ESP или использовать его последовательный интерфейс.
Чтобы использовать MH-Z19C на плате V5, вам нужно подключить два припоя моста сзади. Оглядываясь назад, я не могу придумать хорошего использования, когда вы не хотите, чтобы они мосты были, поэтому я, вероятно, просто обменяюсь подушками на непрерывные следы в любой будущей версии.
Примечания
Чтобы постоянно остановить бегущий датчик влаги и истощать аккумулятор, он питается непосредственно GPIO12. Проведите правую площадку JP3 до центральной площадки, чтобы сделать это соединение. Он не рисует много тока, поэтому у меня не было проблем, непосредственно питания датчика непосредственно из штифта GPIO. Если в будущем это оказалось проблемой Brown-Out/Stability, эта связь должна быть заменена на MOSFET.
Правление была разработана в Кикаде и изготовлена JLCPCB. Файлы KICAD и информация, необходимая JLCPCB, представлены в каталогах Board_V*.
Пожалуйста, понимайте схему; Я знаю, что это уродливо и отчаянно нуждается в разделении на несколько частей. Помните, это мой первый дизайн печатной платы!

Правление V5 Mayout
Для удобства я использую Tasmota для всех устройств, где это возможно. TASMOTA не может справиться с LORA, поэтому для этих устройств я использую MicropyThon.
Ссылка на веб -установку
Убедитесь, что вы установили версию «датчиков» изображения Tasmota.
Вот несколько скриншотов Tasmota с устройства V4, изображенного в верхней части этого чтения.
| 
Вот основные настройки, которые я изменил по умолчанию в интерфейсе управления. Читайте об этих и других настройках здесь.
Примечания
POWER2 ON командуOutput Hi , а не Relay 2 . Затем он будет установлен на раннем этапе в процессе загрузки Tasmota, и все равно отключается, когда микроконтроллер уходит в глубокий сон.Посмотрите здесь для моего программного обеспечения и инструкций Lora Micropython: https://github.com/brev-dev/lora_esp8266_sensor_mqtt_bridge.
Хотя это и не покрыто этим репо, вот несколько быстрых заметок о том, где эти устройства расположены в моей полной домашней настройке.
Моя домашняя установка предназначена для достижения этих целей:
Чтобы включить контроль температуры в каждой комнате, радиаторы подключаются к интеллектуальным заглушкам ESP8285.
«Хаб» - это малиновый Pi 4, оснащенный комарами, Nodered, Influxdb и Grafana. Мои узловые потоки, вероятно, могут быть упрощены, заменив большую часть этого, например, Homeas Constraint, но я не изучил это. Комбинация InfluxDB и Grafana используется для хранения и визуализации исторических данных (примеры ниже), а также приложение «MQTT Dash» на наших телефонах для контроля тока и изменения температуры и запуска температуры и влажности. Программный стек RPI использует Docker и IOTStack для простоты конфигурации и обслуживания. У Andreas Spiess есть несколько отличных видео на этой теме, в том числе: #255, #295 и #352.


