Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Метеостанция на STM32

В данной статье пойдет речь, об одной из разновидностей метеостанций, построенной на основе платы miniSTM32, с добавкой внешней периферии: датчики температуры, влажности, давления. В основу работы метеостанции положена работа с ОС реального времени типа FreeRTOS.

Идея собрать данную метеостанцию тревожила меня давно, покупка красивых и навороченных уже готовых метеоприборов меня как-то не утешала. Да и какой радиолюбитель не хочет построить что-то свое, открыть для себя новые горизонты, познать новую страничку в электроники, итак, начнем.

Основные функции:

  • Возможность отображения текущего времени (крупный шрифт);
  • Возможность отображения текущей даты и дня недели (маленький шрифт);
  • Установка времени, календаря;
  • Привязка календаря к Григорианской дате и Юлианскому дню, учет этих значений для автоматической коррекции крайних дней в месяце;
  • Работа с Touchscreen, входящий в состав платы LCD дисплея;
  • Минимальный набор кнопок для настройки календаря, использующих Touchscreen;
  • Подпитка регистров RTC для продолжения хода часов при кратковременном отключении питания прибора;
  • Измерение и отображение температуры в помещении (только положительная до +45 град) и на улице (от -40 до +40 град);
  • Вывод температуры на улице и в помещении в два разных графических окна;
  • Просчеты максимальной, минимальной и текущей температуры за последние двое суток;
  • Измерение влажности в помещении(20-100%), вывод в отдельное графическое окно с подсчетом минимальной и максимальной за последние двое суток;
  • Измерение атмосферного давления и его вывод в отдельное графическое окно(710-790 мм.рт.ст.). Просчеты минимального, максимального и текущего за последние двое суток;
  • Возможность автоматического изменения яркости дисплея при изменении окружающей яркости (режим день-ночь);
  • Возможность автоматического перехода между графическими окнами, при приближении к прибору человека (датчик инфракрасного излучения, пироэлектрический датчик);
  • Питание прибора от внешнего нестабилизированного источника, напряжением +5 вольт; 

И как всегда, после определения основных функций встает задача реализации. Но так как с платой вроде бы все определено, это готовая плата miniSTM32  с установленным на ней контроллером STM32F103RBT6 и внешней минимально необходимой обвязкой, то вот с датчиками засада. Но не стоит впадать в отчаяние раньше времени, смотрим, что у нас валяется без дела и что нужно будет купить. Итак, для замера температуры будем использовать цифровые датчики, подключенные по шине 1-Wire, типа DS18B20. Датчик давления тоже давно валяется без дела, а тут для него и работка нашлась, датчик будет использоваться аналоговый, типа MPX4115AP. Датчик пироэлектрический остался от каких-то развлечений, можно его использовать, датчик типа IRA-E710ST1, но его необходимо оснастить собирающей линзой Френеля, ее прикупим, называется она PPGI0601. Фотодатчик, можно взять в принципе любой, хоть даже отщипнуть голову старому доброму транзистору МП42Б и использовать его переход эмиттер-коллектор, но мы пойдем более гуманным способом и голову откусывать никому не станем, возьмем то, что ждет своего «звездного часа» - это датчик  BPW20RF .  Ну и наконец, остался у нас датчик влажности. Раньше как-то сталкиваться с ними не приходилось, по столу не валяются, в закромах не прячутся, будем покупать. Не дешевое это занятие скажу я вам. Так как по предварительной прикидке все цифровые порты микроконтроллера заняты, остается по меньшей мере пара GPIO, придется смотреть в сторону аналогового датчика влажности. Итак по цене и доставаемости был взят вот этот: HIH-4000-004.

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

Схема метеостанции на STM32
Рисунок. 1 - Эскиз принципиальной схемы устройства

  • Доработка основной схемы платы miniSTM32 сводится к тому, чтобы отпаять резисторы: R1, R2, R7, R19, согласно схемы MINI-STM32-V3 (см вложения к статье).
  • Также в плате дисплея необходимо разорвать цепь резистора R2 и R3, а левый по схеме конец резистора R3 подключить к цепи SD_CS порт PB7, обеспечив тем самым регулировку яркости(см. вложения «2.8_TFT_SCH.pdf»). В плате дисплея необходимо запаять микросхему памяти U2  - AT45DB041D-SSU для сохранения калибровочных констант Touchscreen.

На Рисунке 2 и Рисунке 3 представлено как выглядит плата основная с микроконтроллером и плата дисплея после проведения всех необходимых доработок. Далее все подключения необходимо произвести согласно эскиза схемы,Рисунок 1.


Рисунок 2. - Вид основной платы miniSTM32 после внесения доработок

Вид платы дисплея после внесения необходимых доработок
Рисунок 3. - Вид платы дисплея после внесения необходимых доработок

Доработка схемы достаточна проста и не требует особенных настроек, за исключением:

  1. Порог чувствительности датчика освещенности «день-ночь» VD1, регулируется подстроечным резистором в цепи обратной связи ОУ, тем самым повышая или понижая усиление ОУ. Тем не менее, предельные пороги по чувствительности от 10-100% жестко прописаны в ПО, таким образом, подсветка экрана полностью не гаснет ночью.
  2. На ОУ DA2 собран усилитель со средней рабочей точкой, равной половине напряжения питания, а пиродатчик в свою очередь при правильном расположении умеет еще определять направление движение относительно его, но в данном ПО реализована только одна из полуосей. Если у вас возникнет необходимость использовать эту схему в других своих приборах-самоделках, можно посмотреть сигнал на резисторе R10 при движении рукой перпендикулярно чувствительной плоскости датчика влево-вправо.
  3. Вместо установленного на плате разъема под батарейку типа CR2032, я решил использовать ионистор FYD0H473ZF на 47 mF, заряжаемый от цепи 3,3V через тоограничивающий резистор, диод служит для предотвращения разрядки ионистора назад в цепь +3,3V при аварийном отключении питания.

Большинство датчиков располагаются на корпусе прибора или внутри (датчик давления), единственно удаленным датчиком является датчик температуры на улице, он размещен на конце экранированного провода длинной порядка 4-5 метров. Для соединения датчиков, находящихся на корпусе или удаленно, я использовал стерео разъемы типа JACK 3,5.

Собрав недостающие узлы к аналоговым датчикам, можно навесным монтажом или методом прорезки фольгированного стеклотекстолита канцелярским ножом, приступим к проработке программного обеспечения для нашего устройства, опираясь на функции, которые описаны в начале статьи. Для прошивки и отладки я использовал ST-Link отладчик, но если вам необходимо только прошить плату miniSTM32, то на ней уже установлен переходник USB-UART на микросхеме типа PL2302HX. Достаточно скачать утилиту Flash Loader, подключить кабель USB, и выбрав соответствующий COM-порт компьютера залить в микроконтроллер необходимое ПО.

Долго и утомительно описывать вам как работает FreeRTOS и что это такое я пожалуй не стану, есть достаточное количество уроков и статей, где об этом можно почитать у более грамотных людей в этом направлении. Скажу лишь одно, в данном приборе можно было обойтись и без нее, сделав минимальный набор функций и прерываний, сэкономив пространство в памяти, но я для себя решил, почему бы не познакомиться на этом изделии с FreeRTOS поближе, а потом уже можно придумать что-то более серьезное, на более лучшем контроллере. Возможно, кому-то пригодятся наработки и проект в целом, кто-то оценит проделанную работу по достоинству. 

Как итог, немного доведя платы до ума, я убрал их в готовый корпус типа G1202В размером 111х82.5х38 мм, который вы можете увидеть на видео в конце статьи или на следующих фото:

.
Рисунок 4. - Вид основной страницы, отображение календаря

 


Рисунок 5. - Вид страницы отображения влажности за последние двое суток


Рисунок 6. - Вид страницы отображения давления за последние двое суток


Рисунок 7. - Вид страницы отображения температуры в доме за последние двое суток


Рисунок 8. - Вид страницы отображения температуры на улице за последние двое суток

Всем спасибо за внимание! На имеющиеся вопросы с удовольствием отвечу. Удачи в сборке …

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DA1 МикросхемаMCP601-I/SN1 Поиск в магазине ОтронВ блокнот
DA2 МикросхемаMCP6022-I/SN1 Поиск в магазине ОтронВ блокнот
D1 Датчик влажностиHIH-4000-041 Поиск в магазине ОтронВ блокнот
D2 Датчик давленияMPX4115AP1 Поиск в магазине ОтронВ блокнот
D3 Пироэлектрический датчикIRA-E710ST11 линза Френеля PPGI0601Поиск в магазине ОтронВ блокнот
D4, D5 Датчик температуры
DS18B20
2 Поиск в магазине ОтронВ блокнот
D6 УстройствоminiSTM321 Поиск в магазине ОтронВ блокнот
VD1 ФотодиодBPW20RF1 Поиск в магазине ОтронВ блокнот
VD2 Выпрямительный диод
1N914
1 Поиск в магазине ОтронВ блокнот
С1, C5, C6, C11-C13 Конденсатор0.1 мкФ6 0805Поиск в магазине ОтронВ блокнот
C2, C4 Конденсатор0.01 мкФ2 0805Поиск в магазине ОтронВ блокнот
C3 Конденсатор470 пФ1 0805Поиск в магазине ОтронВ блокнот
С7 Конденсатор1 мкФ х 6.3в1 TAJAПоиск в магазине ОтронВ блокнот
С8 Конденсатор10 пФ1 0805Поиск в магазине ОтронВ блокнот
С9, С14 Конденсатор10 мкФ х 6.3в2 TAJAПоиск в магазине ОтронВ блокнот
С15 Ионистор47мФ1 FYDOH473ZFПоиск в магазине ОтронВ блокнот
R1 Резистор
100 кОм
1 0805Поиск в магазине ОтронВ блокнот
R2, R3, R7, R8 Резистор
1 МОм
4 0805, кроме R3Поиск в магазине ОтронВ блокнот
R4-R6, R9 Резистор
10 кОм
4 0805Поиск в магазине ОтронВ блокнот
R10 Резистор
500 Ом
1 0805Поиск в магазине ОтронВ блокнот
R11 Резистор
4.7 кОм
1 0805Поиск в магазине ОтронВ блокнот
R12 Резистор
100 Ом
1 0805Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0
Jman #
Дайте название дисплея пожалуйста, хочу повторить со своей платой.
Ответить
0

[Автор]
Mih_Mih #
Дисплей подойдет любой с разрешением 320х240 и встроенным контроллером серии ILI9320, ILI9325, ILI9328
Ответить
0
Иван #
Прошивка в Keil_FreeRTOS.rar ? И подскажи пожалуйста в какой программе код писал и загружал
Ответить
0

[Автор]
Mih_Mih #
Ну вроде все чёрным по белому в названии архива: и в какой программе писал код и в какой загружал.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Набор для сборки - УНЧ 2х60 Вт на TDA7294 Радиореле 220В
вверх