Давненько ничего не было, а материала накопилось прямо очень и очень много. Начну потихоньку разгребать и начну с простого проекта на один вечер — датчик измерения влажности dht11 и углекислого газа mh-z19. Бонусом про цветной SPI 1.44 дисплей 128х128.

Как то уже давно болталась пара задач, которые были не к спеху, но таки вызывали интерес. В итоге решил скинуть их в одну кучу:
1. есть 3д принтер, хотелось оценить его возможности,
2. найти простой цветной SPI дисплей,
3. измерить реальные цифры концентрации CO2 и влажности у себя дома.

Так зародилась идея сделать простой девайс, который бы сочетал все это в себе.

Начну с конца, DHT11 был выбран случайно. Когда то уже давно, брал с али набор датчиков, он оказался среди них. Все думал куда бы его пристроить. Датчик довольно известный, обзоров про него в интернете очень много.
dh11_sensor

Что от себя могу добавить… Внутри датчика стоит терморезистор. Сравнивал показания температуры с ds18b20, об этом кто то уже писал на хабре, ds18 показывает на 1-2 градуса больше, у меня такие же результаты. Шина не 1-wire, несколько датчиков на один провод не повесишь. Гигрометра к сожалению у меня нет. В комнате довольно сухо, растения сохнут, показания стабильные 15-17%. В офисе с открытыми окнами приблизительно тоже самое 15-19%. Тем не менее на изменение влажности он реагирует адекватно, думается что если откалибровать, то вполне можно будет пользоваться.

На счет реализации программной части, датчик выдает данные импульсами, длительность которых кодирует один бит. Итого на выходе 40бит = 5 байт, 2 влажность, 2 температура и контрольная сумма. Конечно, по правильному бы надо завести прерывание и задействовать таймер, но так как часто опрашивать его не имеет смысла, да и жирновато это по периферии, то обычный опрос в цикле, за основу я взял Adafruit библиотеку и перенес ее под ст32, ибо ее реализация мне показалась более логичной. Аппаратная часть простая, питание 5В, земля и ножка данных. Линию данных подключил подтяжкой 5.1кОм к 3.3В.

Далее следует датчик углекислого газа. Про него тоже можно найти очень много информации, поэтому тоже по верхам. Аппаратная часть простая, питание 3.3В, Rx, Tx и земля.
mh-z19

По программной части все очень просто, UART скорость 9600. Отправляем 9 байт данных, 9 байт получаем.
mh-z19

Показания CO2 меня впечатлили больше, на изменения реагирует довольно правдоподобно. Как оказалось «надышать» в небольшом помещении довольно легко, поэтому стоит проветривать раз в пару часов. Особенно заметным оказалось влияние газовой плиты. Также, датчик очень бурно реагирует, на испарения изопропилового спирта. Однако, заметил что в ночное время, расход кислорода таки уменьшается, поэтому можно не проветривать.

Главный вопрос, который был интересен — ощущается ли влияние уровня CO2 человеком? Определенно, субъективно грубо оценить уровень «свежо-душно» можно без показаний приборов. По моим прикидкам пограничные цифры 700 и 1300 ppm, поэтому как по мне точность не особо важна. Однако, оценивать насколько комфортно находиться в помещении лучше сразу по всем 3 параметрам — влажность, температура и содержание CO2.

Дисплей выбирался из самых дешевых. Небольшой по размерам, цветной, с spi интерфейсом. Для мелких проектов, в каком то смысле на замену wh1602. С меньшим количеством ног и где в теории можно вывести простую графику. Брал на али гуглится как 1.44″ ЖК-дисплей Дисплей 128*128 SPI. Их есть несколько вариаций, у меня тот что черный.
ili9361

Аппаратная часть, вход LED — подсветка 3.3В. VCC — питание 5В, SDA (MOSI) SCK, CS — обычный SPI, A0 — команда/данные, RST — cброс.

В начале, поигрался с ним на raspberryPI, библиотека для него (https://github.com/BLavery/LIBtft144). Сходу все завелось, линии, картинки выводились нормально, потом решил подцепить к stm32, поискал библиотеки и нашел только под AVR. Перетащил ее под stm и добавил шрифт из той, что была под малину, все завелось.

Однако, потом заметил «особенность» — под малиной эта платка идет как с контроллером ILI9163, на моей же платке указано что контроллер ST7735S. На данный момент было лень погружаться в это, т.к. у меня всего одна платка, однако тут можно почитать, что определить их довольно не просто и тем не менее небольшая разница есть.

С 3d принтером, история конечно интересная, поэтому решил ее упомянуть. Долго думал взять или не взять себе, какой выбрать и т.п. Хотелось взять такой, чтобы просто печатать, без геммороя. В итоге подбил коллег, на то чтобы взять хороший на всех. Выбор был долгий и мучительный. Было решено поддержать отечественного производителя, дабы иметь хоть какую то гарантию при необходимости.
3D_printer

Как всегда без геммороя никуда — почти год у принтера всплывали какие то болячки и периодически он отправлялся в ремонт 🙂 Тем не менее, сейчас стало более менее понятны его возможности и проблемные места, качество вполне себе неплохое по сравнению с тем, что мне доводилось видеть.

В итоге корпус сделал без изысков, самый простой, отверстия для вентиляции воздуха в mh-z19. Отдельную плату не разводил, т.к. не увидел в этом необходимости, поэтому внутри китайская отладка на stm32f103. Сфоткать корпус оказалось довольно проблематично, т.к. на свету буквы на экране не очень хорошо видны, в реальности он выглядит лучше 🙂
co2metr_mh-z19co2_box

Предполагалось, что приборчик будет включаться пару раз в неделю для ориентировочной оценки, однако на практике он включен постоянно и реально по нему контролирую необходимость проветривания. Поэтому девайс действительно полезный. Наверно рекомендовал бы каждому собрать, что то подобное, тем более что ничего сложного тут нет. Возможно стоит подумать над заменой dht11 на что то более серьезное, однако дело вкуса. Для желающих исходники на github

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Последние комментарии
  • Загрузка...
Счетчик
Яндекс.Метрика