Давно планировал взять гигрометр, но при этом хотелось иметь не только устройство отображающие текущее значение влажности, но и иметь возможность посмотреть изменение влажности за продолжительный период времени. В итоге решил упростить себе задачу и взять небольшой набор модулей и сделать свой гигрометр! Что из этого вышло можно поглядеть под катом.
Посылка пришла за обычные для меня 28 дней и содержала следующий набор:
Получил вот такой набор:
Мини отладка на базе STM32F103C8
ARM Cortex-M3 32-битный микроконтроллер
Максимальная частота ядра: 72МГц
Объем флешь памяти: 64КБ
Объем SRAM: 20КБ
Напряжение питания: 2.0-3.6В
Периферия: UART, I2C, SPI, ADC, CAN, USB
Информационная страница:
ССЫЛКА
Ссылка в магазине:
ССЫЛКА, цена $7.11
Датчик температуры/влажности DHT22(AM2302)
Диапазон измеряемой температуры: -40 — 80С ( максимальная погрешность +-1С )
Диапазон измеряемой влажности: 0-99.9% ( погрешность при температуре +25C — +-2% )
Датчик идет уже с 3-мя проводами типа DuPont и минимально рекомендуемой обвязкой ( резистор подтяжки линии данных и конденсатор по питанию ).
Ссылка в магазине:
ССЫЛКА, цена $6.57
Дисплей от NOKIA 5110
Популярный дисплей от NOKIA 5110. Расположен на плате с необходимой обвязкой и подсветкой ( синего цвета ).
Разрешение дисплея: 84х48 пикселей
Интерфейс: SPI
Контроллер дисплея: PCD8544
Напряжение питания: 3-5В ( рекомендуется 3.3В )
Ссылка в магазине:
ССЫЛКА, цена $3.66
Адаптер microSD карты
Разъем карты расположен на плате, модуль позволяет работать с microSD картой в режиме SPI.
Ссылка в магазине:
ССЫЛКА, цена $1.97
Теперь мы можем соединить всё воедино
Таблица соединения модулей с платой микроконтроллера
Модуль microSD карты:
3V3 -> 3V3
CS -> PB12 ( SPI2_NSS )
MOSI -> PB15 ( SPI2_MOSI )
CLK -> PB13 ( SPI2_SCK )
MISO -> PB14 ( SPI2_MISO )
GND -> GND
Модуль температуры/влажности
+ -> 3.3V
OUT -> PA1
- -> GND
Модуль дисплея NOKIA5100
RST -> PA2
CE ->PA4 ( SPI1_NSS )
DC -> PA3
Din -> PA7 ( SPI1_MOSI )
Clk -> PA5 ( SPI1_SCK )
Vcc -> 3.3V
BL -> 3.3V
Gnd -> GND
Удобно, что не потребовался паяльник и модули соединяются обычными проводами DuPont. Соответственно менять конфигурацию нашей сборки можно с легкостью. Питание платы ( а соответственно и подключенных модулей ) через разъем miniUSB. Программу можно написать используя среду разработки
IAR ARM, Kickstart версия которой доступна абсолютно бесплатно. Загрузить микропрограмму в сам чип можно двумя способами, через JTAG/SWD программатор либо через UART загрузчик встроенный в сам чип по средством какого нибудь uart ttl адаптера ( подробнее
ТУТ ).
Накидал небольшую программку, которая считывает и отображает значение влажности/температуры один раз в секунду. Сохранение на SD карту в формате
CSV происходит один раз в десять секунд.
Вот так выглядит отображение на дисплее:
На дисплее отображаются актуальные данные:
C — температура в градусах Цельсия
F — температура по Фаренгейту
H — влажность в %
Hi — индекс температуры ( humiture, heat index ) это значение температуры в градусах Цельсия как это воспринимает человек с учетом текущей влажности, подробнее на
WIKI
График температуры/влажности за примерно 11 часов.( в комнате )
График 1
Изначально датчик был на подоконнике, а потом положил в комнату, поэтому вначале графика виден рост температуры и падения влажности.
График снятый в ванне. Сразу видно, когда включается душ.
Учитывая, что не потребовалась пайка, а просто соединил все модули как конструктор и все сразу заработало, то можно рекомендовать такой вот наборчик всем желающим познакомится с программированием микроконтроллеров.
По просьбе
romskiy добавил скриншот среды разработки IAR ARM.
Скачать
исходные коды проекта можно тут:
ССЫЛКА
п.с: набор был предоставлен бесплатно на обзор ^_^
Датчик DHT22, дисплей Nokia 5110 и адаптер SD-карточки самодельщики и так знают.
И соединения без пайки проводами DuPont тоже ни для кого не секрет.
А вот чем этот STM32 от той-же ардуины или от малины отличается?
На каком языке писать-то?
Где брать библиотеки для экранов и датчиков?
Приложили-бы пару скриншотов среды разработки для наглядности
>>Датчик DHT22, дисплей Nokia 5110 и адаптер SD-карточки самодельщики и так знают.
Именно поэтому они были выбраны за основу, ведь они знакомы многим.
>>А вот чем этот STM32 от той-же ардуины или от малины отличается?
Малина — это уже микрокомпьютер с Linux ( Android, WinCE )… я не думаю, что можно сравнивать их
Arduino — отличная альтернатива, но в данном случае это 32-битный микроконтроллер за цену сравнимую с самой простой 8-битной Arduino. Хотя к Arduino я тоже отношусь хорошо.
>>На каком языке писать-то?
Исходный код я выложил в обзоре, язык программирования Си.
>>Где брать библиотеки для экранов и датчиков?
Для экрана и датчиков я написал свои библиотеки, поддержка файловой системы Fat через известную библиотеку от Chan'а.
>>Приложили-бы пару скриншотов среды разработки для наглядности
Сейчас добавлю.
Правда если нужен он в онлайне. Себе брал такой, доволен всем. Качество хорошие + отключаемая РГБ ночник/подсветка )
ПС. Снят распределитель потока, а так поток можно направить в нужные две стороны.
Ну и что что STM загружен на 1%, цена на STM32 почти такая же как на мегу. Сегодня будет тренировка на гигрометре, а завтра можно и умный дом забабахать. Плюс питать STM от лития намного удобнее…
Кстати если есть ненужные переходники microSD->SD, то их можно использовать как кардридер (правда придется расчехлять паяльник, чтобы припаять штырьки и переходнику).
ebay.com/itm/321569700934
4,71
Есть Mapple mini на том же процессоре, под который существует среда разработки наподобие Arduino IDE.
P.S. Не забываем, что верхний логический уровень тут 2.0-3.6V
Валяется такой экранчик и такая платка, хочу слабать часы с термометром, гигрометром, датчиком газов, секундомером, таймером и т.п. Начал писать на ардуине, не хватает флеша.
Но в примере на видео библиотеки не использовались, код самописный на асме, и кроме упоротых асемблерщиков вроде меня, никому не будет интересен.
А подключал я его так: