Мини отладка на STM32 + набор дополнительных модулей

  • Цена: $7.11 + $6.57 + $3.66 + $1.97

Давно планировал взять гигрометр, но при этом хотелось иметь не только устройство отображающие текущее значение влажности, но и иметь возможность посмотреть изменение влажности за продолжительный период времени. В итоге решил упростить себе задачу и взять небольшой набор модулей и сделать свой гигрометр! Что из этого вышло можно поглядеть под катом.
Посылка пришла за обычные для меня 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
Изначально датчик был на подоконнике, а потом положил в комнату, поэтому вначале графика виден рост температуры и падения влажности.


График снятый в ванне. Сразу видно, когда включается душ.
График 2


Учитывая, что не потребовалась пайка, а просто соединил все модули как конструктор и все сразу заработало, то можно рекомендовать такой вот наборчик всем желающим познакомится с программированием микроконтроллеров.

По просьбе romskiy добавил скриншот среды разработки IAR ARM.
Скриншот



Скачать исходные коды проекта можно тут: ССЫЛКА

п.с: набор был предоставлен бесплатно на обзор ^_^
Планирую купить +25 Добавить в избранное +18 +42
+
avatar
+1
Круто! Надо попробовать.
+
avatar
  • romskiy
  • 22 декабря 2014, 12:20
+5
Как-то совсем мало о программировании и о самом STM32
Датчик DHT22, дисплей Nokia 5110 и адаптер SD-карточки самодельщики и так знают.
И соединения без пайки проводами DuPont тоже ни для кого не секрет.
А вот чем этот STM32 от той-же ардуины или от малины отличается?
На каком языке писать-то?
Где брать библиотеки для экранов и датчиков?
Приложили-бы пару скриншотов среды разработки для наглядности
+
avatar
+1
Программирование самого STM32 как и любого другого микроконтроллера это отдельная и обширная тема, даже если захватить только основные моменты. В сети много замечательных ресурсов по STM32 с хорошим описанием, я думаю мне их не переплюнуть особенно в рамках этого обзора.
>>Датчик DHT22, дисплей Nokia 5110 и адаптер SD-карточки самодельщики и так знают.
Именно поэтому они были выбраны за основу, ведь они знакомы многим.
>>А вот чем этот STM32 от той-же ардуины или от малины отличается?
Малина — это уже микрокомпьютер с Linux ( Android, WinCE )… я не думаю, что можно сравнивать их
Arduino — отличная альтернатива, но в данном случае это 32-битный микроконтроллер за цену сравнимую с самой простой 8-битной Arduino. Хотя к Arduino я тоже отношусь хорошо.
>>На каком языке писать-то?
Исходный код я выложил в обзоре, язык программирования Си.
>>Где брать библиотеки для экранов и датчиков?
Для экрана и датчиков я написал свои библиотеки, поддержка файловой системы Fat через известную библиотеку от Chan'а.
>>Приложили-бы пару скриншотов среды разработки для наглядности
Сейчас добавлю.
+
avatar
  • qwerty2
  • 22 декабря 2014, 13:28
0
Термометр/Гидрометр на STM32 — это конечно круто… 99.99% ресурсов процессора в простое. Дешевле, быстрее и проще, прямо на готовых библиотеках все тоже самое на ардуинке (читай аврке) делается. Но как способ изучить STM32 — не плохой проект.
+
avatar
0
Ну так же не интересно, а вдруг готового не будет? Готовить иногда тоже надо пробовать, а то можно и голодным остаться. Я против Ардуино ничего против не имею и платку брал как раз для изучения нового для себя микроконтроллера. А по цене/возможностям у STM32 я думаю конкурентов нет ИМХО…
+
avatar
  • wojda
  • 22 декабря 2014, 12:57
0
ТС, правильно ли я понял — относительная влажность на уровне 23%? Уж очень и очень сухо(
+
avatar
0
Именно так =( Батареи топят… График у открытого окна отличается большим процентом влажности, а в комнате сушняк. Вот теперь думаю о увлажнителе воздуха…
+
avatar
  • wojda
  • 22 декабря 2014, 13:15
+1
Ясно вот такой могу посоветовать ТЫЦ
Правда если нужен он в онлайне. Себе брал такой, доволен всем. Качество хорошие + отключаемая РГБ ночник/подсветка )

ПС. Снят распределитель потока, а так поток можно направить в нужные две стороны.
+
avatar
0
Выглядит очень круто! Спасибо :)
+
avatar
  • Serg32
  • 22 декабря 2014, 14:27
+1
Респект, правильное направление, переходить к STM от атмела.
Ну и что что STM загружен на 1%, цена на STM32 почти такая же как на мегу. Сегодня будет тренировка на гигрометре, а завтра можно и умный дом забабахать. Плюс питать STM от лития намного удобнее…

Кстати если есть ненужные переходники microSD->SD, то их можно использовать как кардридер (правда придется расчехлять паяльник, чтобы припаять штырьки и переходнику).
+
avatar
  • Aahz
  • 22 декабря 2014, 14:48
+3
Для желающих помучать STM есть варианты немного дешевле

ebay.com/itm/321569700934
4,71

Есть Mapple mini на том же процессоре, под который существует среда разработки наподобие Arduino IDE.

P.S. Не забываем, что верхний логический уровень тут 2.0-3.6V
+
avatar
  • Eugen65
  • 22 декабря 2014, 15:15
0
Я так понял, что с поддержкой у STM пока хуже, чем у Атмела? Для ардуины куча библиотек и примеров. Задумал что-то, купил комплектуху, скачал библиотеки, написал тело и вперёд. Здесь придётся лабать всё с нуля. Это так?
+
avatar
0
Arduino, конечно более популярна, но AVR просто появились раньше ;) ST тоже не первый день на рынке и есть так-же много готовых решений например упомянутый выше проект Maple.
+
avatar
  • Earnest
  • 23 декабря 2014, 00:20
+1
О, знакомая платка. Я как-то к такой подключал дисплейчик на базе ILI9341.
+
avatar
0
А где почитать подробнее? Как подключать, какие библиотеки использовать?
Валяется такой экранчик и такая платка, хочу слабать часы с термометром, гигрометром, датчиком газов, секундомером, таймером и т.п. Начал писать на ардуине, не хватает флеша.
+
avatar
  • Earnest
  • 23 декабря 2014, 14:11
+2
Библиотеки есть, конечно. Можно погуглить по ключевым словам «mc-4u ili9341».
Но в примере на видео библиотеки не использовались, код самописный на асме, и кроме упоротых асемблерщиков вроде меня, никому не будет интересен.
А подключал я его так:

+
avatar
0
Реквестирую экран с янтарной подсветкой.
+
avatar
  • vismyk
  • 23 декабря 2014, 11:57
0
Плюсанул. Сам от жадности пару платок на STM32 прикупил, но так пока и не добрался до них, ардуинками обхожусь пока. Сабжевому гигрометру явно не хватает какого-нибудь популярного модуля RTC, скажем на DS1302, чтобы данные в логе были с привязкой ко времени. Ну и датчик атмосферного давления типа BMP180 тоже просится в компанию. ;)
+
avatar
0
По поводу RTC хорошая идея! Кстати, в STM32 уже есть RTC ( часовой кварц уже тоже установлен на плате ), думаю ионистр прицепить на питание часов, что бы не сбивались при отключении внешнего питания, но тут уже надо паять…