5 сентября 2017 г.

Метеостанция на arduino #3. Железо

Определился с железом:
  • "Мозг"
В качестве управляющего узла будет выступать плата Arduino Mini Pro
Есть достаточно большой опыт работы с этой ардуиной, считаю, оптимальный вариант для данной задачи. На контроллере есть все необходимое (I2C, SPI, UART), а на плате совсем немного лишнего (как минимум, надо будет выпаять светодиод питания, стабилизатор думаю оставить). С версией пока непонятно (3.3 В или 5 В).
Есть в наличии несколько 5-ти вольтовых плат.
  • Датчик температуры и влажности
В качестве датчика выбрал DHT22
Основные характеристики:  
- измерение температуры и влажности; 
- напряжение питания 3.3 -:- 6 В
- диапазоны измерений: 0 -:- 100% и -40 -:- 80 гр.С.;
- точность измерений: (+/-): 2-5% и 0.5 гр.С;
- потребляемый ток: 50 мкА в неактивном режиме, 1.5 мА - во время измерения;
- интерфейс: однопроводная шина.
Заказал здесь: Aliexpress
  • Датчик атмосферного давления
После небольшого исследования вопроса решил использовать BMP180, так как на али нашел модуль этой микры со стабилизатором на 3.3 В.
Заказал здесь: Aliexpress
  • Часы реального времени
Будет использован модуль RTC на основе микросхемы DS3231
Основные характеристики:
- высокая точность за счет встроенной температурной компенсации;
- самое важное: наличие программируемого логического выхода, которым можно "дрыгать" по сигналу будильника, в данной микросхеме их аж целых два;
- энергопотребление микросхемы: 200/300 мкА - в активном режиме при напряжении питания 3.63/5.5 В соответственно; но отдельно потребление микры неинтересно, надо смотреть потребление модуля (насколько я понял, там стоит стабилизатор);
- интерфейс: I2C.
С этой микрой придется поразбираться.
Пока не заказывал, отложил до второй очереди.
  • Питание
Пока непонятно: один или два аккумулятора 18650 (3.7 или 7.4 В соответственно).
Теоретически, все должно заработать от одного аккума, а два вроде как и много уже.
Не заказывал. Тоже отложил до второй очереди (может закажу парочку емкостью > 3000 mAh, с защитой)
  • Модуль для работы с картами памяти
Здесь обычный модуль для работы с microSD. Использовал раньше такой в своих проектах.
- напряжение питания - есть стабилизатор на 3.3 В;
- интерфейс SPI.
Энергопотребление надо изучать экспериментально.
Есть один в наличии.
  • Дисплей
Дисплей планирую использовать такой: OLED ssd1306 128x64 0.96" I2C.
Фотку нашел прям в тему того, что требуется сделать :)
Тоже надо будет поразбираться и отдельно смотреть энергопотребление.
Заказал здесь: Aliexpress
  • Модуль bluetooth
Модуль HC-05.
Основные характеристики:
- напряжение питания 3.6 -:- 6 В (есть стабилизатор на 3.3 В);
Нашел такие данные по энергопотреблению (при 5 В):
- в спящем режиме 4 мА (многовато, но большую часть скорее всего потребляет светодиод);
- в рабочем режиме 21 мА (но, по-видимому, не в режиме передачи).
Покупку отложил до второй, а то и третей очереди.

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

3 сентября 2017 г.

Метеостанция на arduino #2. Концепция

Итак, хотелось бы создать устройство, которое сможет измерять температуру, влажность в помещении (для начала :)) и атмосферное давление. Основные функции, которые я возлагаю на сей девайс:
  • измерение температуры, влажности, атмосферного давления;
  • отображение информации на ЖК дисплее;
  • запись показаний на карту памяти SD (зачем это надо? да я и сам не знаю :), просто интересно понаблюдать динамику изменения температуры/влажности в квартире);
  • передача записанных данных для анализа на другое устройство (ПК для начала);
  • работа от одного заряда аккумулятора не менее месяца;
  • презентабельный внешний вид.
Всю разработку планируется разбить на несколько этапов:
  • Этап 1: подбор железа, закупка (сей момент может ооочень сильно затянуться по известным причинам).
  • Этап 2: апробация схемы: ардуина + датчики + дисплей + аккумулятор + программирование + оптимизация энергопотребления (как аппаратная, так и программная). Оценка времени автономной работы (а стоит ли продолжать?)
  • Этап 3: Добавление часов реального времени. 
  • Этап 4: Добавление периодической записи на карту памяти.
  • Этап 5: Добавление функции передачи данных.
  • Этап 6: Разработка ПО для ПК.
  • Этап 7: Создание презентабельного вида.
Общая концепция пока видится такой:
Основной режим работы ардуины - глубокий сон. Пробуждение по кнопке для отображения информации на дисплее на несколько секунд + пробуждение по внешнему прерыванию от часов реального времени (по будильнику - скорее всего раз в 1 час) для чтения показаний с датчиков и записи их на SD
Датчики, дисплей и модуль SD - выключены, включаются только когда надо. На SD ежедневно формируются файлы - один файл содержит почасовой лог показаний датчика за день. За передачу данных будет отвечать BT-модуль - тоже выключен и включается только на время передачи. Скорее всего передача будет инициироваться по нажатию кнопки. На компе ПО с отрисовкой записанных показаний датчика в виде графика. Как то так.
Продолжение следует. Буду определяться с железом.

31 августа 2017 г.

Метеостанция на arduino #1. Анонс

После продолжительного отсутствия в рядах "людей с паяльником в руках" решил вернуться к электронике, на работе программирования хватает с головой, так что решил что-нибудь попаять, дабы отвлечься, да и вообще электроника - очень хорошее хобби.
Как-то на днях задумался прикупить себе в квартиру метеостанцию (в основном просто мониторить температуру/влажность в помещении), но почитав отзывы, понял, что как-то печально у них все с точностью измерений (имеются ввиду не сильно дорогие китайские варианты).
Тут то меня и осенило: "а почему бы не вспомнить былые времена и не сконструировать метеостанцию самостоятельно?". Так как имеется кое-какой опыт работы с микроконтроллерами (в частности с arduino), сразу напросилось решение именно на этой платформе. Да и с "мозгом" можно будет понакрутить каких-нибудь интересных фишек, помимо простого измерения температуры/влажности.
Чтобы как-то структурировать проект, решил завести данный блог, да и может кому будет интересно почитать/пообщаться. Для затравки: в мыслях сделать что-нибудь автономное, для начала способное писать показания с датчиков на карту памяти, в дальнейшем к сему делу прикрутить дисплей, ну и напоследок организовать передачу данных на комп + ПО для компа для анализа данных. Ну и конечно же это все должно иметь презентабельный вид, так как планируется реальная эксплуатация сего девайса. Предполагаемое железо: Arduino Pro Mini, DHT22, BMP180, LED дисплей 0.96" I2C, HC-05.
Постараюсь не забить на данный проект :)