1 Востаннє редагувалося 0xDADA11C7 (18.04.2017 15:58:09)

Тема: Прототип Wi-Fi метеостанції з автономним живленням своїми руками

#ESP.Meteo - відкритий проект малобюджетної (собівартість комплектуючих з AliExpress ~6...8$) Wi-Fi метеостанції з автономним живленням на базі SoC-чіпа ESP8266 (модуль ESP-12), DC-DC StepUP, сонячної панелі і іоністорів. У проміжках між циклами сна раз за 5 хвилин проводиться запит до сервера часу університету Колорадо, зчитування даних з датчиків (BME280, до 16-ти DS18B20, АЦП, дискретного входу), прогнозування та відправка результатів на зовнішні сервіси зберігання та візуалізації Twitter і Thingspeak (їх вибір обумовлений більшою надійністю і незалежністю перед псевдонародним моніторингом). Монтаж датчика BME на штанзі (шматок півдюймової труби холодного водопостачання) обумовлений необхідністю виключення впливу висхідних потоків повітря від будівлі.

Поточний функціонал

  • Прогнозування ймовірності заморозків (за методикою професора Броунова)

  • Прогноз висоти нижньої кромки хмари (ВНМХ по Селезньової)

  • Обчислення висоти датчика за барометричною формулою (альтиметр, для інших проектів)

  • Вимірювання вуличної температури

  • Вимірювання вуличної вологості

  • Вимірювання вуличного тиску

  • Обчислення точки роси

  • Моніторинг напруги на іоністорах (контроль заряд-розряду)

  • Моніторинг відкриття заслінки ящика з картоплею

  • Моніторинг таймапа системи раз в 5 хвилин (час роботи ~ 480 мс)

  • Моніторинг температури на балконі (можливість підключення до 16-ти датчиків DS18B20: 2 групи по 8 датчиків на два APIKEY)

  • Відправка даних в хмару Thingspeak (вибірку трендів можна задавати за n-й період)

  • Відправка даних в Twitter (близько півмільйона твіттiв з 2011-го)

https://3.bp.blogspot.com/-L_e0gEYlSaE/WOHtGWSTZ9I/AAAAAAAAEN4/G8Qmm_g40MkLmrBrQM1-I74pa41-ykajQCLcB/s320/wi-fi%2Blogger_pressure.gif

https://4.bp.blogspot.com/-ZcEOO6agO2c/WOHgdnZYeBI/AAAAAAAAENo/VB8ksKRUHO4oHL7FvupuKqbkHjRnvLk7ACLcB/s320/realtime.gif

Схема метеостанції

https://s4.postimg.org/fc2c356a5/image.jpg

Чи можна живити від батарейок, акумуляторів?

Можна, але не доцільно. Витрати на заміну так чи інакше будуть, сучасні ж іоністори (ті ж Green-Cap) мають ресурс в сотні тисяч циклів при робочих температурах -40...+85 градусів Цельсія. Обгрунтування: проведемо орієнтовний розрахунок в разі використання невідновлюваних джерел енергії - "батарейок". Наприклад, гаджет знаходиться в темному приміщенні, вулкан далеко, а ядерне паливо закінчилося ). Задамося:

  • Ємність, E: 2000 мА*год.

  • Цикл життя, Tsum: раз в 300 сек (5 хвилин).

  • Тайм-ап системи, Ton: за старими логами в середньому 660 мкс = 0.66 сек (новi 480 мс).

  • Коефіцієнт деградації: 0.85.

  • Струм споживання ESP8266 в режимі передачі, Ion: 145 мА.

  • Струм споживання в "сплячому" режимі, Ioff: 30 мкА = 0.03 мА (пруф).

Час життя за формулою (1):

T[рокiв] = 0.85*E*Tsum/(8760*((Ton*Ion)+((Tsum-Ton)*Ioff))); (1)

Здійснимо підстановку вихідних даних:

T[рокiв] = 0.85*2000*300/(8760*((0.66*145)+((300-0.66)*0.03))) = 0.556 лет ~ 6.7 мiс.

Таким чином, ~ півроку можна не міняти підгузки )))

Вихідний код на Lua, подробиці по виготовленню і прошивці
тут

p.s.: в планах додати датчик дощу і анемометр.

Білоруський журнал «Радиолюбитель»
Lead Radar systems engineer & Software developer of industrial automation
Мої розробки та відеоблог
Подякували: HetmanNet, 0xDADA11C7, Chemist-i, LoganRoss, ReAl, /KIT\6

2

Re: Прототип Wi-Fi метеостанції з автономним живленням своїми руками

З аналізу рівнянь динаміки поведінки атмосфери - Lua функа прогнозування хмарності

local function cloud()
-- скидання максимуму в 00 годин
if(string.sub(tim,1,2)=="00")then options(1,"tmax",-40) end
-- read
tmax=options(0,"tmax",0)
-- запам'ятовую максимальну температуру за добу
if(temp>tmax)then
options(1,"tmax",temp)
tmax=temp
end
-- емпіричний рівень конденсації з моделi конвенкції
hk=122*(tmax-dew)
-- max кiлькiсть хмар [у балах]
cloudmax=(0.075*(vngo-hk))+1.5
if(cloudmax<0)then cloudmax=-cloudmax end
-- тип хмарнoстi
if(humi<40)and(cloudmax==0)then cld="not%20cloud" end
if(cloudmax>0)and(cloudmax<5)then cld="small%20cloud" end
if(cloudmax>=5)and(cloudmax<7)then cld="cloud" end
if(cloudmax>=7)and(cloudmax<=8)then cld="clear&cloud" end
if(cloudmax>8)and(cloudmax<10)then cld="big%20cloud" end
if(cloudmax>=10)then cld="overcast" end
return cld
end
Білоруський журнал «Радиолюбитель»
Lead Radar systems engineer & Software developer of industrial automation
Мої розробки та відеоблог
Подякували: 0xDADA11C7, /KIT\2

3

Re: Прототип Wi-Fi метеостанції з автономним живленням своїми руками

Оновлення ПЗ ESP-12 по повітрю (Wi-Fi):

Білоруський журнал «Радиолюбитель»
Lead Radar systems engineer & Software developer of industrial automation
Мої розробки та відеоблог
Подякували: NagarD, 0xDADA11C7, Chemist-i, HetmanNet, /KIT\5