Платформа Arduino вывела микропроцессорную технику и электронику на совершенно новый уровень. С помощью нее проектировать умные устройства стало гораздо проще и увлекательнее. Также стоит отметить большое количество библиотек, документации и общей информации в интернете, как в статьях, так и на форумах. Посмотрев множество роликов в интернете, мне захотелось приобрести набор начинающего разработчика, стоимостью примерно 30 долларов, который содержал много разных сенсоров, кнопок, дисплеев и приводов. Помимо набора я решил купить сразу сетевую карту на контроллере ENC28J60. Этот модуль позволяет подключать ваши конструкции к локальной сети и интернету.
В качестве своего первого проекта на ардуино я выбрал сделать домашний веб-сервер, который мог бы мониторить температуру в помещении и на улице, уровни влажности и даже отслеживать условия замораживания или затопления в помещении (и другие предупреждения о безопасности, бытовых приборах или окружающей среде).
Основные возможности устройства
- Измерение основных параметров - температура, влажность, освещенность.
- Управление (включение/отключение) до 4 нагрузок, с помощью реле.
- Пользовательский интерфейс с возможностью работы по локальной сети или через интернет.
Преимущества проекта
- Автообновление и синхронизация данных. Это означает, что в любой момент когда бы вы не подключились к устройству, вы сразу увидите актуальные значения измеряемых параметров, а также состояние ваших нагрузок (активны они или нет). Перезагружать страницу нет необходимости. Допускается одновременное подключение с множества устройств.
- Отсутствие необходимости скачивать стороннее ПО.
- Совместимость со всеми устройствами. Это означает, что вы можете подключиться к вашему контроллеру с ПК, планшета или смартфона на котором есть интернет браузер. Достаточно просто открыть веб-утилиту, доступную по ссылке, и ввести IP адрес вашего Arduino.
Несмотря на то, что веб-утилита доступна по ссылке, обмен данными происходит напрямую между вашим браузером и вашим Arduino. Никакие сторонние сервисы не получают информацию с вашего контроллера и не смогут к нему подключиться.
О том, как подлючится к вашему контроллеру через Интернет мы расскажем в следующих статьях. Сделать это можно будет несколькими способами, например с помощью "белого" IP, который можно заказать у вашего интернет-провайдера или с помощью VPN.
Веб-утилита доступна по ссылке
Нам понадобяться следующие компоненты
Примечание
Датчик DHT11 не очень точен - погрешность +- 2 градуса Цельсия для температуры и 5% точности по влажности. Новая версия датчика DHT22 имеет лучшие показатели точности. Температура: +- 0,5 градуса Цельсия и 2% - 5% точности для влажности. Прошивка поддерживает оба датчика, достаточно только подкорректировать скетчь.
Что нужно сделать чтобы девайс у вас заработал
- Собрать схему.
- Скачать скетчь по ссылке ниже.
- Прописать в исходном коде скетча IP адрес вашего Arduino UNO.
- Прошить ваш Arduino UNO.
- Открыть веб-утилиту по ссылке ниже.
Редактируем код прошивки
static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 }; // MAC адрес вашего Arduino (можно не редактировать)
static byte myip[] = { 192, 168, 1, 100 }; // IP адрес вашего Arduino
static byte gwip[] = { 192, 168, 1, 1 }; // IP адрес шлюза (роутера)
Принципиальная схема подключения модулей
Подключение четырехканального блока реле к Arduino UNO
Arduino UNO | Блок реле |
Pin 5V | VCC |
Pin GND | GND |
Pin 4 | Реле 1 |
Pin 5 | Реле 2 |
Pin 6 | Реле 3 |
Pin 7 | Реле 4 |
Подключение датчика DHT11 к Arduino UNO
Arduino UNO | DHT11 |
Pin 5V | VCC |
Pin GND | GND |
Pin 2 | DATA |
Подключение датчика освещенности к Arduino UNO
Arduino UNO | Датчик освещенности |
Pin 5V | VCC |
Pin GND | GND |
Pin A0 | DATA |
Подключение модуля ENC28J60 к Arduino UNO
Arduino UNO | ENC28J60 |
Pin 3.3V | VCC |
Pin GND | GND |
Pin 10 | CS |
Pin 11 | SI |
Pin 12 | SO |
Pin 13 | SCK |
Фотографии собранного устройства
Примечание
В момент построения проекта у меня не оказалось под рукой четырехканального реле, поэтому я использовал светодиоды в качестве индикаторов состояния реле.
Прошивка - WebDHTLightRelay.ino
Веб-утилита - ссылка