Метеостанция на Arduino с проводным интерфейсом Ethernet
Метеостанция позволяет отправлять по проводному интерфейсу Ethernet температуру, атмосферное давление и влажность.
Для этого нам понадобятся следующие компоненты:
- Микроконтроллер Arduino или Freeduino (с ATmega328);
- Ethernet-shield Wiznet w5100;
- Цифровой термодатчик DS18B20;
- Датчик атмосферного давления BMP085;
- Датчик влажности DHT22;
- Резистор 4.7 кОм;
- Резистор 5 кОм.
Микроконтроллер и Ethernet-shield:
![]() |
![]() |
DS18B20:

ds18b20
DHT22:

BMP085:

Соединяем всё по следующей схеме:

Резистор R1 на схеме — 4.7 кОм, служит для подтяжки линии данных для термодатчика DS18B20. Резистор R2 — 5 кОм, подтягивает линию данных DHT22. Термодатчик и датчик влажности размещаются на улице. Я для этого использовал четырёхжильный телефонный кабель — на расстоянии 6 метров от микроконтроллера работает замечательно. Датчик давления размещается в доме. За счёт негерметичности окон/дверей атмосферное давление снаружи и внутри будет практически одинаковым.
Если у вас нет сенсоров DHT22 или BMP085, то просто оставьте соответствующие контакты Arduino неподключенными. В коде необходимо будет подправить всего лишь одну-две строки.
Ну и вот собственно код скетча:
Обратите внимание на строки 17-23:
mac-MAC-адрес Arduino. Это ваш уникальный идентификатор на сайте народного мониторинга.
Поэтому для защиты от совпадений рекомендую использовать MAC-адрес вашего
компьютера/роутера/телефона с изменённым последним байтом (чтобы не было коллизии внутри локальной сети).
BMP085_EXIST — наличие датчика атмосферного давления. Поставьте 0, если у вас его нет.
DHT_EXIST — наличие датчика влажности. Поставьте 0, если у вас его нет.
DS18B20_PIN — пин подключения термодатчика DS18B20.
DHTPIN — пин подключения датчика влажности DHT22.
DHTTYPE — тип датчика влажности: DHT22 или DHT11
postingInterval — интервал передачи показаний. По-умолчанию 600000 мс (10 минут).

