04 · Оборудование и закупка
Оборудование, закупка и карта подключения
Раздел решает три задачи: что уже есть, что докупить в пределах ~15–20 тыс. ₽, и как всё это подключить, не наступив на две известные ловушки ESP32.
Что нужно и в какой роли
| Узел | Компонент | Роль | Статус |
|---|---|---|---|
| Раствор | pH-модуль (аналоговый) | pH раствора, цель 6,0–6,5 | есть |
| Раствор | TDS/EC-модуль (аналоговый) | «крепость» раствора | есть |
| Раствор | DS18B20 (герметичный) | температура раствора | есть |
| Раствор | JSN-SR04T | уровень в баке (герметичный УЗ) | есть |
| Раствор | Перистальтические насосы ×2 | дозирование pH Down, микроэлементы | докупить |
| Раствор | Насос циркуляции 12 В | подача в NFT-канал | есть |
| Климат | BME280 (I²C) | воздух: t, влажность, давление | есть |
| Климат | TSL2591 (I²C) | освещённость | есть |
| Климат | Фитосвет 12 В + таймер | световой режим | есть |
| CV | USB/CSI-камера | фенотип: площадь, цвет, рост | докупить |
| Общее | ESP32 DevKit ×2 | узел раствора, узел климата | есть |
| Общее | LR7843 (MOSFET-модули) ×4 | ключи насосов и света | докупить |
| Общее | БП 12 В 5 А + DC-DC 5 В | питание силовое и логическое | есть |
| Химия | Буферные растворы pH 4 / 7 / 10 | калибровка (без них прибор врёт) | докупить |
| Химия | Стандарт EC 1413 мкСм/см | калибровка TDS | докупить |
| Химия | Соли: Ca(NO₃)₂, KNO₃, KH₂PO₄, MgSO₄·7H₂O, Fe-EDTA | база Hoagland (раздел 06) | докупить |
Две ловушки ESP32, из-за которых «всё собрано, но не работает»
Ловушка 1. Аналоговые датчики — только на ADC1
ADC2 не работает, когда включён Wi-Fi. Это аппаратное свойство ESP32: контроллер ADC2 занят радиомодулем. Аналоговый pH или TDS, посаженный на GPIO из ADC2, даёт стабильный мусор или нули — и это не похоже на поломку датчика, поэтому ищут часами.
Правило: аналоговые pH/TDS — только на ADC1, то есть GPIO 32–39. В прошивке это PIN_PH = 34, PIN_TDS = 35.
Ловушка 2. Конфликт адресов I²C
TSL2591 (освещённость) и VL53L0X (дальномер, если применяется) оба по умолчанию отвечают на адрес 0x29. На одной шине они друг друга «глушат»: сканер видит одно устройство, показания скачут.
Три выхода, в порядке предпочтения для школы:
- Разнести по разным ESP32 — узел климата и узел раствора и так разные платы (самый простой путь, выбран в курсе).
- Управлять
XSHUT— гасить один датчик на время опроса другого (нужен свободный GPIO и код). - Вторая шина I²C — ESP32 умеет две; требует явной инициализации
Wire1.
Занятие 6 начинается со сканера I²C. Ученик сначала видит список адресов на шине, потом пишет код опроса — а не наоборот. Обнаружить конфликт на сканере занимает минуту, отладить его «по показаниям» — занятие.
Карта подключения (узел раствора)
| Сигнал | GPIO | Примечание |
|---|---|---|
| pH (аналог) | 34 | ADC1, только вход |
| TDS (аналог) | 35 | ADC1, только вход |
| DS18B20 | 4 | 1-Wire, подтяжка 4,7 кОм к 3,3 В |
| JSN-SR04T TRIG | 27 | выход |
| JSN-SR04T ECHO | 26 | вход; проверить уровень 5 В → 3,3 В |
| Насос pH Down → LR7843 | 25 | выход, при старте LOW |
| Насос циркуляции → LR7843 | 33 | выход, при старте LOW |
| Сигнал | GPIO | Примечание |
|---|---|---|
| I²C SDA (узел климата) | 21 | BME280 0x76, TSL2591 0x29 |
| I²C SCL (узел климата) | 22 | подтяжки обычно на модулях |
Электрика и вода — главный риск раздела.
- Только 12 В в силовой части. 220 В (в т.ч. аквариумные нагреватели) — вне школьного контура; либо нагреватель 12 В, либо комнатная температура как фиксируемая переменная опыта.
- Общий минус ESP32 и силовой 12-В шины обязательно соединён — иначе ключи LR7843 работают непредсказуемо.
- Провода, идущие к баку, — с петлёй-капельником (провис ниже разъёма): вода стечёт с петли, а не в клеммник.
- Блок питания и платы — выше уровня воды, вне зоны возможного залива.
ECHOдальномера у части модулей 5-вольтовый: на вход ESP32 — через делитель, иначе выгорит пин.
Приёмка комплекта перед посевом (чек-лист)
- Сканер I²C видит все ожидаемые адреса, конфликтов нет.
- pH-метр откалиброван по двум буферам; TDS — по стандарту 1413 мкСм/см.
- Аналоговые датчики физически на GPIO 32–39.
-
SENSOR_HEIGHT_MMизмерена рулеткой и вписана в прошивку (раздел 08). - Насос при пустом баке не включается (проверено руками, а не «по коду»).
- Все актуаторы при старте платы выключены.
- Общий минус соединён; петли-капельники сделаны; БП выше воды.