SHome

SHome – это проект для управления домом с помощью андроид приложения. Я обновлю приложение и добавлю больше функций. Это проект, который я делал некоторое время назад, но он давно не обновлялся, и пришло время вернуть его к жизни. Информацию о новых обновлениях я буду загружать в свой блог в категории SHOME, поэтому я рекомендую вам подписаться на мой блог, чтобы получать уведомления когда я публикую новые статьи о моих проектах. Этот проект основан на микроконтроллере Arduino (как и большинство моих проектов). Низкая стоимость этого микроконтроллера, его доступность и простота использования делают его идеальным для этого типа проектов. Здесь я подробно объясню, как работает приложение и как программировать Arduino, как подключить схему и.т.д. Смартфон постоянно с нами, мы даже не можем представить свою жизнь без него, поэтому очень удобно использовать  смартфон в качестве пульта дистанционного управления для проектов домашней автоматизации. Так как смартфон всегда под рукой, мы можем комфортно контролировать температуру, свет, влажность и многое другое. Идея этого проекта заключается в том, чтобы управлять с помощью  смартфона электрическими устройствами. Для отправки команд в Arduino мы будем использовать соединение Bluetooth. Лично мне нравится использовать модуль Bluetooth HC-05 или HC-06, потому что он прост в использовании, имеет низкую стоимость и его легко найти. Принцип действия довольно прост, смартфон отправляет команды через Bluetooth, а Arduino принимает их, и в соответствии с полученной командой активирует или деактивирует реле. Реле могут включать и выключать свет в доме или других электронных устройствах, что угодно. А так же используется датчик температуры и влажности DHT22, который контролирует температуру и влажность. Внутри приложения мы можем установить предел, например если он превышает этот предел температуры, активируется вентилятор для понижения температуры или, если температура слишком низкая, активируется нагрев. То же самое относится к влажности, мы можем установить значение для влажности, и если влажность превышает это значение активируется  например вентилятор. Это основные функции этого проекта. Теперь давайте посмотрим более подробно, что нам понадобится и как все это собрать.

Компоненты которые понадобятся:

  • Смартфон с установленным приложением SHome
  • Arduino uno или arduino nano (думаю и другие модели подойдут)
  • Bluetooth модуль HC-05 or HC-06
  • Датчик температуры и влажности DHT22
  • Ардуино реле модуль (На Aliexpress есть куча разных реле для ардуино по хорошей цене)

Шаг 1: "Привязка" блютуз модуля

Первое, что нам нужно сделать, это “привязать” Bluetooth модуль , который мы собираемся использовать. Это мы делаем только один раз, и модуль будет сохранен в памяти нашего смартфона, поэтому нам не придется каждый раз “привязывать” Bluetooth модуль . Если вы не знаете, как “привязать”  Bluetooth модуль, читайте дальше, если вы уже подключили его или вы уже знаете, как это сделать, вы можете пропустить этот шаг. Чтобы иметь возможность “связать” Bluetooth  модуль  с нашим смартфоном, мы должны подключить питание к Bluetooth модулю . Мы можем просто подключить GND bluetooth модуля  к GND arduino, а вывод +5 v  bluetooth модуля   к выводу 5v arduino. После  мы подключаем Arduino к нашему компьютеру, и цепь будет запитана. Если все в порядке, индикатор модуля Bluetooth должен быстро мигать. Чтобы связать наш модуль со смартфоном, зайдите в настройки смартфона в разделе «Подключения / Bluetooth» и активируйте Bluetooth (если он деактивирован). Когда он активирован, мы нажимаем кнопку «Поиск». Когда смартфон найдет наш модуль, мы нажимаем имя модуля Bluetooth и начинается процесс соединения, через несколько секунд появится сообщение, что модуль Bluetooth уже подключен. Готово, теперь наш Bluetooth модуль находится в памяти нашего смартфона!

1

2

3

4

5

Шаг 2: Выбрать блютуз модуль в приложении

Теперь нам нужно выбрать в приложении модуль который мы собираемся использовать. Поскольку мы уже подключили Bluetooth модуль , он будет в списке подключенных устройств Bluetooth. Сначала мы должны активировать Bluetooth, чтобы иметь возможность выбрать Bluetooth модуль  из списка, затем на главном экране приложения выбираем «Настройки», и в меню которое появится на экране выберем «Выбрать Bluetooth модуль ». Мы  увидим список всех устройств  связанных с нашим смартфоном. Нам нужно выбрать Bluetooth  модуль  который мы собираемся использовать. После выбора он будет сохранен в памяти и нам не нужно выбирать его снова, только если мы хотим использовать другой Bluetooth модуль .

1

2

3

Шаг 3: Создайте список устройств для управления

 Теперь мы можем создать список электрических устройств, которые мы собираемся включить / выключить. Мы можем включить / выключить свет, вентилятор, отопление или что угодно. На главном экране мы нажимаем желтую кнопку, и открывается другой экран, где мы можем создать список устройств. На открывшемся экране нажмите кнопку «Новый элемент» (это кнопка с тремя линиями и символом плюса «+»).
Нажатие на кнопку «Новый элемент» открывает два поля для заполнения. Первое поле – это имя, с помощью которого мы будем распознавать устройство  которое мы собираемся включить / выключить. Второе поле – это значение, которое будет отправлено в arduino, когда мы нажмем кнопку «включить / выключить», важно, чтобы вы не забыли введенное нами значение, так как оно понадобится нам для кода arduino! Значением является символ или буква (заглавные и строчные буквы – это два разных значения, и мы должны помнить об этом). Каждая новая кнопка должна иметь уникальное значение! Это означает, например, что если мы создадим кнопку со значением «A»  мы не сможем присвоить то же значение для других кнопок которые мы собираемся создать. Далее вы увидите список значений в скетче Arduino для каждого из пинов (их можно изменить на свое усмотрение). Значение активирует или деактивирует пин Arduino. Затем, когда вы создаете устройства в списке, выбираете значения из списка или если вы хотите свои собственные значения, вам также придется изменить их в скетче. Например, если мы создаем устройство в списке со значением «A», когда мы нажимаем кнопку чтобы отправить команду, будет активирован пин 2 arduino, и если вы снова нажмете эту же кнопку, пин 2 будет деактивирован.
ВАЖНО: не используйте цифры от 1 до 9, они зарезервированы для работы приложения и не должны использоваться. Рекомендую в качестве значений всегда использовать буквы из списка который найдете ниже. В бесплатной версии мы можем создать 4 кнопки, в премиум-версии столько, сколько нам нужно. Чтобы изменить устройство в списке, долгое нажатие (2 сек) открывает меню редактирования, теперь вы можете удалить или отредактировать элемент, а также, если вы забыли значение которое вам нужно для кода Arduino, вы можете увидеть его, нажав ” редактировать ” в меню. Теперь, после создания устройств, у нас есть список устройств для управления, если мы нажимаем на устройство в списке появляются две кнопки, одна – кнопка для возврата к списку устройств, а другая – кнопка которая отправляет значение в arduino (значение, которое мы написали, когда создали устройство).
Например, если мы создаем устройство «Вентилятор 1» со значением «А», нажимая имя «Вентилятор 1» в списке, появятся две кнопки, одна большая и одна маленькая, при нажатии большой кнопки будет отправлено значение «А», которое мы присвоили элементу «Вентилятор 1». Arduino получит значение «A», и таким образом мы можем написать код в arduino для выполнения некоторой функции когда он получит это значение «A». Вот почему каждое устройство, которое мы будем создавать должно иметь свою собственную букву или символ, чтобы Arduino мог отличить одно устройство от другого. Если вы хотите контролировать больше устройств, вы можете использовать Arduino Mega. Потому что в Arduino Mega доступно больше цифровых пинов.

  • "A"---------- включить / выключить пин 2 на Arduino
  • "B"---------- включить / выключить пин 3 на Arduino
  • "C"---------- включить / выключить пин 4 на Arduino
  • "D"---------- включить / выключить пин 5 на Arduino
  • "E"---------- включить/ выключить пин 6 на Arduino
  • "F"---------- включить / выключить пин 7 на Arduino
  • "G"---------- включить / выключить пин 8 на Arduino
  • "H"---------- включить / выключить пин 9 на Arduino
  • "I"---------- включить / выключить пин 10 на Arduino
  • Пин 12 используется для контроля температуры
  • Пин 11используется для контроля влажности
  • Пин 13 используется для чтения данных с DHT22

1

2

3

4

5

6

Теперь, когда у нас есть список созданных устройств, мы можем отправлять команды на arduino, но перед отправкой команд мы должны подключиться к arduino, мы настроили модуль bluetooth, поэтому нам нужно только нажать кнопку подключения, чтобы иметь возможность отправлять команды на arduino, ждем несколько секунд когда красный значок состояния подключения станет зеленым, это означает что мы подключены к arduino и можем отправлять команды. Если индикатор состояния подключения красный, это означает что мы отключены от Arduino и не можем отправлять команды на Arduino. Прежде чем нажать кнопку «Подключить», не забываем активировать Bluetooth на нашем смартфоне, или если мы не хотим делать это вручную каждый раз когда мы открываем приложение, можем активировать пункт меню «Автоподключение» так что когда вы открываете приложение Bluetooth включается автоматически, а когда выходим из приложения выключается.
В устройствах с версией Android 7.0 или ниже, если мы активировали опцию «Автоподключение», при открытии приложения Bluetooth будет активирован автоматически, и приложение будет подключаться к Arduino по Bluetooth (если активированы Arduino и модуль Bluetooth). В версии Android 7.0 или выше, если мы активировали опцию «Автоподключение», при открытии приложения будет только активирован Блютуз, а для подключения приложения к arduino необходимо нажать кнопку «Подключить».

1

2

3

4

Шаг 4: Контроль температуры и влажности.

Это приложение также позволяет нам контролировать температуру и влажность, для этого мы используем датчик температуры и влажности DHT22.
Датчик подключается к Arduino и результаты измерения температуры и влажности отправляются  в приложение. Если мы хотим изменить скетч Arduino, чтобы адаптировать его к другому датчику, мы должны знать в каком формате отправляются данные, чтобы приложение могло их прочесть. Чтобы приложение получило данные от arduino, мы должны следовать следующему формату:
Например, значение температуры составляет 25,5, а предел температуры  22, значение влажности – 75,5, а предел влажности – 65, значит мы должны отправить следующее: <25,5 / 22 / 75,5 / 65/1 / 1>. Первое значение должно быть “<“, затем “температура”, затем “/”, затем “предел температуры”, затем “/”, затем “влажность”, затем “/”, затем “2”, если контроль влажности активирован, или “1”  если контроль влажности выключен, затем « / », затем « 2 », если контроль температуры активирован, или « 1 », если контроль температуры выключен.

Например, если мы отправляем следующие значения «<25,5 / 22 / 65,5 / 65 / 2/2>», это означает, что приложение покажет температуру 25,5 ° С, влажность 65,5%, предел влажности и температуры будут активированы. Если мы отправим «<25,5 / 25 / 65,5 / 65 / 1/1>», контроль влажности будет отключен, и контроль температуры будет отключен. Если вы не знаете, как программировать Arduino, не беспокойтесь, просто скачайте скетч  написанный мной и подключите все по схеме. Я просто хотел объяснить детали для тех, кто любит делать свои собственные модификации, но другие могут использовать готовый скетч и схему которую вы найдете ниже. Если у нас уже все подключено мы должны увидеть температуру и влажность в приложении. Чтобы увидеть температуру на главном экране убедитесь, что индикатор состояния подключения горит зеленым. Если индикатор зеленый нажмите кнопку температуры, и откроется новый экран.
Если мы все сделали правильно, мы должны увидеть текущую температуру. Ниже указателя температуры находится индикатор предела температуры, красного цвета; если он красный, это означает что контроль температуры отключен; если мы нажмем этот индикатор ограничения температуры, на Arduino будет отправлена ​​команда для активации контроля температуры, и когда контроль будет активирован в Arduino, Arduino отправит подтверждение, и если все работает хорошо индикатор ограничения температуры станет желтым , Если мы хотим отключить контроль температуры, просто снова нажмимем индикатор ограничения температуры. Мы делаем то же самое с контролем влажности. Значение в индикаторе предела температуры / влажности показывает, когда управляющий контакт деактивирован. Пример: если у нас есть значение «25Cº» в индикаторе ограничения температуры, это означает, что, когда температура достигнет 25ºC, вывод 12 Arduino будет деактивирован, а если температура упадет примерно от 2ºC до 20ºC, он снова активируется. Если у нас есть красный индикатор контроля температуры, контакт 12 будет постоянно отключен. То же самое происходит с влажностью, только во влажности, вывод, который будет деактивирован, является выводом 11. Я объясню, что это значит: предположим, что мы хотим поддерживать температуру на уровне + 25Cº, мы должны подключить к выводу 12 модуль реле для Arduino и в приложении мы устанавливаем ограничение 25Cº. Реле активирует нагреватель или что-то, что будет обогревать помещение, и когда температура достигнет установленного нами предела, контакт 12 будет отключать реле до тех пор пока температура не упадет около 2ºC, в этот момент нагреватель снова будет активирован, таким образом температура останется на значении которое мы установили в приложении. То же самое происходит с влажностью. Чтобы убедиться, что arduino сохранил значение, мы должны следить за тем, чтобы предел температуры перестал мигать. Когда мы начинаем нажимать кнопку «вверх» или «вниз» для изменения предела температуры, предел температуры начинает мигать и не прекращается, пока приложение «SHome» не получит подтверждение того что значение сохранено правильно. Таким образом, если при нажатии кнопки «Сохранить» индикатор ограничения температуры перестанет мигать, мы знаем, что значение сохранено правильно.

Контроль температуры отключен

Контроль температуры включен

Дополнительна информация

Нажмите кнопку «Скачать ардуино скетч и схему» чтобы скачать ардуино скетч и схему.  Я буду обновлять этот проект и исправлять любые ошибки которые могут возникнуть, если вы обнаружите какую-либо ошибку или что-то не поняли задавайте свои вопросы на мой электронный адрес: necodesarrollo@gmail.com

Скачиваем ардуино скетч и схему нажав на кнопку, далее распаковываем “zip”  файл и в нем найдем также папку с библиотекой для работы с DHT22 сенсером. Папка библиотеки называется “DHT_sensor_library_1.3.0”, данную папку просто нужно скопировать в “Документы/Arduino/libraries” без данной папки скетч будет выдовать ошибку!