В данной статье пойдет речь, об одной из разновидностей метеостанций, построенной на основе платы 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.
Рисунок. 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. - Вид платы дисплея после внесения необходимых доработок
Доработка схемы достаточна проста и не требует особенных настроек, за исключением:
- Порог чувствительности датчика освещенности «день-ночь» VD1, регулируется подстроечным резистором в цепи обратной связи ОУ, тем самым повышая или понижая усиление ОУ. Тем не менее, предельные пороги по чувствительности от 10-100% жестко прописаны в ПО, таким образом, подсветка экрана полностью не гаснет ночью.
- На ОУ DA2 собран усилитель со средней рабочей точкой, равной половине напряжения питания, а пиродатчик в свою очередь при правильном расположении умеет еще определять направление движение относительно его, но в данном ПО реализована только одна из полуосей. Если у вас возникнет необходимость использовать эту схему в других своих приборах-самоделках, можно посмотреть сигнал на резисторе R10 при движении рукой перпендикулярно чувствительной плоскости датчика влево-вправо.
- Вместо установленного на плате разъема под батарейку типа 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/SN | 1 | Поиск в магазине Отрон | ||
DA2 | Микросхема | MCP6022-I/SN | 1 | Поиск в магазине Отрон | ||
D1 | Датчик влажности | HIH-4000-04 | 1 | Поиск в магазине Отрон | ||
D2 | Датчик давления | MPX4115AP | 1 | Поиск в магазине Отрон | ||
D3 | Пироэлектрический датчик | IRA-E710ST1 | 1 | линза Френеля PPGI0601 | Поиск в магазине Отрон | |
D4, D5 | Датчик температуры | DS18B20 | 2 | Поиск в магазине Отрон | ||
D6 | Устройство | miniSTM32 | 1 | Поиск в магазине Отрон | ||
VD1 | Фотодиод | BPW20RF | 1 | Поиск в магазине Отрон | ||
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)
Прикрепленные файлы:
- MINI_STM32-V3_0_SCH.pdf (68 Кб)
- 2_8_TFT_SCH.pdf (25 Кб)
- Keil_FreeRTOS.rar (3436 Кб)
- доработки_схема(1).PDF (89 Кб)
Комментарии (4)
|
Я собрал (0) |
Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]