Метеостанція Modbus/NMEA

Раніше за вікном розміщувалася точна метеостанція, про неї вже писав, включаючи характеристики сенсорів, но використання роутера із OpenWrt надлишкове, тому вирішено зробити просту станцію і підключити до шини даних.

Сучасні енергоефективні радіо компоненти дозволяють робити передавачі, які будуть працювати до року, но якщо хочемо вичитувати дані щохвилини, потрібно частіше міняти батареї, які будуть стійкі до холоду, або вести кабель живлення. Також використання лазерного пилеметра потребує більше живлення.

Для правильного фіксування погоди, метеостанцію варто розміщувати в полі, на відстані мінімум 10 метрів від дерев, будинків, автодоріг на мачті висотою не менше 4,5 метра над рівнем землі. Оскільки станцію ставимо в місті, постараємося віднести подалі від будівлі.

Як є живлення, то можна вичитувати дані по дроту: по CAN або RS-485. Оскільки в квартирі дані з електролічильника вичитую по RS-485 Modbus RTU, вирішив зчитувати дані із метеостанції по цьому протоколу. Також частина електро компонентів була в наявності.

У 4 жильному екранованому сигнальному кабелі (рекомендують використовувати Belden 8102, -30 .. 80°C, но ціна 7$ за метр :).

Маленький герметичний роз’єм.

Використав наступне маркування:

Номер контакту Колір Призначення
1 Жовтий RS485 A+
2 Зелений / Синій RS485 B-
3 Чорний GND –
4 Червоний VCC +12V

На станції конектор папа. На фото зліва позолочені контакти (час експлуатації > 50 років), справа посрібнені (час експлуатації 20 років). різьба М10, можна кріпити або 4 гвинтами М2, або закрутити просто в корпус.

Modbus RTU

Стандартом у промисловості є стандарт Modbus RTU. Швидкість виставлена 9600 біт. Регістри метеостанції

0 - температура sht21
1 - вологість sht21
2 - тиск bmp085
3 - температура bmp085
4 - швидкість вітру
5 - напрям вітру
6 - рівень ультрафіолету
7 - пил PM10
8 - пил PM2.5
9 - пил PM1
10 - рівень радіації
11 - виставлення адреси пристрою
12 - виставлення швидкості
13 - відправлення дебаг інформації

sht raw temp
sht raw hum
sht ser 1
sht ser 2
sht ser 3
sht ser 4

bmp call 1 - 11

NMEA 0183

Частина метеостанцій, зокрема які використовуються на кораблях, віддають інформацію у форматі NMEA 0183. Швидкість 4800 8N1 ( може бути 38400). Максимальна кількість символів у повідомленні 82 байти. Для метео повідомлень ідентифікатор джерела $WI (Weather Instruments).

Передача більшості показників відбувається строкою $WIMDA:

$WIMDA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>,<18>,<19>,<20>*hh<CR><LF>
<1>    Barometric pressure, inches of mercury, to the nearest 0.01 inch
<2>    I = inches of mercury
<3>    Barometric pressure, bars, to the nearest .001 bar
<4>    B = bars
<5>    Air temperature, degrees C, to the nearest 0.1 degree C
<6>    C = degrees C
<7>    Water temperature, degrees C (this field left blank by WeatherStation)
<8>    C = degrees C (this field left blank by WeatherStation)
<9>    Relative humidity, percent, to the nearest 0.1 percent
<10>   Absolute humidity, percent (this field left blank by WeatherStation)
<11>   Dew point, degrees C, to the nearest 0.1 degree C
<12>   C = degrees C
<13>   Wind direction, degrees True, to the nearest 0.1 degree
<14>   T = true
<15>   Wind direction, degrees Magnetic, to the nearest 0.1 degree
<16>   M = magnetic
<17>   Wind speed, knots, to the nearest 0.1 knot
<18>   N = knots
<19>   Wind speed, meters per second, to the nearest 0.1 m/s
<20>   M = meters per second

Також можуть використовуватися $WIMWD, $WIMWV, $WIVWR, $WIVWT, $WIXDR.

Текстові дані можна передавати у конструкції $WITXT, TEST текстове поле, hh контрольна сума, <CR><LF> == \r\n.

$WITXT,01,01,01,TEST*hh<CR><LF>

Будка Стівенсона (Louis Stevenson)

Для зменшення нагріву від сонця датчиків температури використовуються метеорологічна будка, яка системою жалюзів не дає прямим сонячним променям нагрівати внутрішній об’єм. Має продуватися повітрям.

Найпростіше зробити із підставок під вазони. Використав підставки фірми Lamela. Підставки Магнолія 135 мм (Nr 2), верхня 180 мм (Nr 4). Колір перламутр. Пластик поліпропілен (PP 5). Досить стійкий, но від ультрафіолету деградує. При мінусових температурах крихкий.

У підставці свердлимо 3 отвори для шпильки М6. В частині підставок крім верхньої і нижньої, свердлимо центральний отвір 40 мм.

І нанизуємо на шпильки. перпендикулярність контролюємо рівнем.

Між останніми двома тарілками розміщена електроніка. Через -1 нижню підставку проходять дроти до плати сенсорів, щоб нагрів плати комунікації не вносили похибки температури.

Монтаж для тестування і написання прошивки з дешевих компонентів. При оновленні прошивки RX відпаяний від плати, оскільки притискає лінію до нуля, і не дає залити прошивку. Також KIS-3R33S і плата при прошивці заживлені від +12В, оскільки при заживленні 3.3 і без входу, розігрівається, споживаючи великий струм. З FTDI 3,3в відключено.

Таблиця характеристик компонентів:

Компонент Діапазон температур Споживання Ціна
SHT21 -40 .. 125 °C 2.1 .. 3.6 V 330 µW 7$
BMP085 -40 .. 85 °C 1.8 .. 3.6 V 12 µA 9$
ATmega328P-AN -40 .. 105 °C 1.8 .. 5.5 V 2$
MAX3483ESA -40 .. 85 °C 3.0 .. 3.6 V 6$
LDO 5-3.3V
LDO 12-5V

Перелік компонентів забезпечую стабільну роботу від -40°C до 85 °C. Ціна станції 24$.

Положення магнітний енкодер AS5040

bme280 76

bmp085 77

sht21 40

В процесі…

Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.