В данной статье представлен проект автономной погодной станции, работающей в режиме реального времени. Устройство собирает аналоговые или цифровые данные и отсылает их на веб-сервер посредством GPRS-канала связи. Если приспособить для нее солнечную батарею и аккумулятор, то станцию можно сделать полностью автономной. Устройство поддерживает 3 аналоговых или цифровых входа. Сердцем схемы является микроконтроллер PIC16F877A. Микроконтроллер также взаимодействует с GSM/GPRS модулем SIM900 или SIM300, который располагается на обратной стороне печатной платы.
Изначально, устройство проектировалось для измерения ветрового потока, чтобы в дальнейшем собрать базу данных по мощности ветрового потока для разных местоположений. В дальнейшем это позволит выбрать наиболее оптимальное месторасположение ветрогенератора.
Данные на веб-сервер передаются при помощи обычного GET запроса. Это наиболее простой метод передачи данных. На github находятся исходники кода, в них нет ничего сложного.
Принципиальная схема GSM-модуля:
В качестве GSM-модуля я выбрал популярный SIM900/300. Он подключается при помощи UART и взаимодействие с ним происходит при помощи AT-команд. Напряжение питание модуля составляет 3.6В. К модулю подключается внешняя антенна. В модуль встроен контроллер зарядного устройства, что очень полезно при использовании аккумуляторов и солнечной панели или ветрогенератора для их подзарядки.
В схеме используется индикаторный светодиод LED1, который показывает статус GSM (мигает). Включение/выключение модуля производится кнопкой S3.
Примечание 1. Во время разработки проекта, модуль SIM300 перестал выпускаться и его заменили более новым SIM900. Приведённая выше схема разработана для SIM300, для модуля SIM900 будут убраны некоторые элементы между модулем и SIM-картой (см. даташиты).
Примечание 2. Переключатель S3 предназначен для включения/выключения GSM-модуля, однако он может быть заменен транзистором, подсоединенным к выводу микроконтроллера. Это позволит включать или выключать GSM-модуль командой с МК. Это более правильное схемотехническое решение.
Примечание 3. Модуль работает правильно при напряжении >4В, приложенному к пину Vbat.
Схема погодной станции с МК PIC 16F877A:
Итак, основной является микроконтроллер PIC 16F877A работающий на частоте 16МГц. МК питается Vbat как и GSM-модуль. Пины RA0,1,2 используются как аналоговые входы. Входное напряжение с данных пинов преобразовывается при помощи внутр. АЦП с Vref=3.1В, которое получается при помощи стабилитрона на 3.1В. На разъемы входов также выводится Vbat и GND для питания внешних датчиков (при необходимости). Транзистор Q3 (BC547) используется для ШИМ-управления яркостью LCD-экрана. Кнопка S4 используется для сброса микроконтроллера, а R1 как подтягивающий pull-up резистор. В устройстве также используется разъем PIC-ICSP для обеспечения возможности внутрисхемного программирования.
16×2 экранчик LCD HD44780:
LCD-экран используется для отображение статусной информации. В схеме используется переключатель Power-LCD для выключения подсветки экрана, что экономит энергопотребление схемы. Также, выход с переключателя подключается к микроконтроллеру LCD-INT, чтобы МК знал когда LCD включается (в микроконтроллере происходит процедура инициализации LCD для вывода на него информации). Благодаря этому, можно отключать и подключать LCD-модуль во время работы основной схемы погодной станции.
Немного фотографий устройства:
Проект на github (последняя версия прошивки, файлы печатных плат, PDF и др.)
Прикрепленные файлы:
- Autonomous-Weather-Station.zip (190 Кб)