Как сделать чайник умным

от admin

Умный чайник

Для приготовления чая важно заваривать его водой с правильной температурой. Следить за выбранной температурой умеют умные чайники. Если такого под рукой нет, можно обойтись обычным электрочайником прокачав его до уровня SMART. В этой статье рассказывается как это сделать. Погнали!

Видеообзор

Что это?

Устройство подключается в разрыв цепи питания чайника. Герметичный термометр измеряет температуру воды. Когда она нагреется до заданного уровня, контроллер подаст звуковой сигнал и отключит питание переключив реле. Если температура опять опустится ниже заданной, реле снова включится. Таким образом устройство будет поддерживать температуру воды внутри чайника. Показания термометра выводятся на дисплей, боковые кнопки которого служат для установки необходимой температуры.

Умный чайник wi-fi на базе Kitfort KT-601 своими руками, Yandex.Алиса, Ewelink

AVRobot 23 января 2021

На этапе расширения устройств в умном доме была принята попытка интегрировать домашний чайник в экосистему (как модно сейчас это называть) «умного» дома.

Было желание управлять голосом или кнопками на смартфоне включением (подразумевается кипячение) и подогревом чайника. Он оснащен подставкой, на которой располагаются кнопки управления температурой.

Фото основания чайника:

Что нам необходимо для интеграции помимо чайника:

Для любого электронного устройства необходимо надежное питание. Если оно требует энергии 24 часа в сутки, то лучшим её источником будет служить электрическая сеть 220В. Данный преобразователь может использоваться как блок питания для электроники, потребляющей небольшой ток, в том числе различных встраиваемых датчиков с рабочим напряжением 5В, модулей системы «умный дом» и т.д.

Данный модуль позволяет управлять нагрузкой, подключаемой через реле из любого места на земле через Интернет.

После «вскрытия» подставки для чайника видим, что внутри достаточно места для размещения модулей, которые будут отвечать за нажатие кнопок на плате. Кнопки используются механические, поэтому выходные контакты реле с Sonoff модулей мы будем подключать параллельно кнопкам на плате.

Примеряем расположение

Защита изолентой в дальнейшем была переделана на термоусадочную трубку.

Первый модуль дистанционного управления нагрузкой был подключен параллельно кнопке кипячения (100°C), т.е. когда в приложении на смартфоне мы нажимаем кнопку включить, у нас включается чайник на кипячение. Повторное нажатие кнопки позволяет отключить кипячение чайника.

Я написал первый модуль не просто так, так как в последствии был установлен второй модуль, который отвечал за нажатие кнопки 70°C. Для нагрева воды в чайнике до температуры 70°C необходимо сначала нажать кнопку 70°C, а далее на кнопку кипячения, что у нас и было реализовано.

В итоге было реализовано две функции: кипячение и подогрев воды до 70°C. В целом мне этого хватает, и дальнейшее расширение функций не планируется. Но вы можете применить фантазию и в своих устройствах реализовать другие функции.

Далее покажу, как выглядит управление в приложении на смартфоне. Так как у нас устройства Sonoff, для них используется родное приложение eWeLink (доступно в Play Market и AppStore)

На скриншоте представлен общий список добавленных устройств в приложении, среди них есть две строки с подписью чайник. Можно включать/выключать нагрузку прямо с этой страницы, нажимая на кнопки справа:

Перейдя например в пункт «Чайник кипячение» мы можем включить его, не промахнувшись мимо большой кнопки:

Для кратковременного воспроизведения нажатой кнопки чайника в приложении eWelink у устройства мы настраиваем функцию включения на время. Минимальное время, на которое можно включить реле, — 0,5 секунд. Нам этого более чем достаточно.

Управлять с приложения eWelink конечно можно, особенно, если вы находитесь далеко от дома. Но если вы дома, и у вас установлены колонки Yandex с голосовым помощником Алиса (далее просто Алиса), то будем настраивать наш чайник на голосовое управление с помощью Алисы. Для этого переходим в устройства Алисы, добавляем другие устройства, выбираем производителя eWelink и синхронизируем устройства, привязанные в приложении eWelink с устройствами Алисы. Подробно описывать это не стану, примеров в интернете много, и они описаны достаточно широко.


Видим у нас два пункта Чайника.

Теперь мы можем управлять чайником голосом:

Вот некоторые примеры, когда удобно включать кипячение чайника голосом:

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

Было немного сложнее с режимом подогрева, т.к. тут необходимо нажать две кнопки с небольшой паузой между нажатиями. Нажать две кнопки подряд нам позволит создание сценария, но Yandex не реализовал добавление пауз между командами. Выход был следующий: необходимо было создать сценарий, описанный ниже.


Теперь у нас команды выполняются с интервалом в 2 секунды, и чайник нормально включается в режим подогрева воды.
Вот таким нехитрым способом получилось добавить немного удобства в использование чайника.

H WiFi-чайник в домашних условиях, или как сделать обычный чайник по-настоящему умным в черновиках

image

Если вы читали мою предыдущую статью (Бегущая строка на Arduino), то наверняка уже знаете, что у нас в университете есть возможность делать аппаратные курсовые проекты. И я, вдохновлённый предыдущей своей работой, решил ещё раз попробовать сделать что-нибудь своими руками. Только теперь тема должна была быть посерьёзнее. Кстати, думать о том, что сделать, я начал ещё на зимних каникулах, то есть до начала семестра. Хотелось сделать что-нибудь интересное и полезное одновременно.

Поиск идеи

Однажды на паре по Основам защиты информации у нас была тема, связанная с интеллектуальной собственностью и патентами. Преподаватель дал нам задание оформить по всем требованиям патент на какое-нибудь устройство и в качестве примера привёл wifi чайник.
Сказал — и забыл. И все забыли, а у меня в голове эта тема осталась. И когда пришло время думать над тем, что делать в качестве курсового в следующем семестре, я вспомнил про этот чайник.

Первым делом решил посмотреть, что же уже сделано. И каково было моё удивление, когда я увидел, что в продаже есть только три модели чайников с поддержкой управления по WiFi, и то два их них принадлежать одной компании. Это были Smarter iKettle 1.0 и 2.0 и российский Polaris PWK 1792CGL.

image

Интересно, что обычные электрические чайники есть почти в каждом доме, а умных так мало. Сравнив функции, предлагаемые производителями iKettle и Polaris, я составил список самых необходимых. Вот, что получилось:

  1. включение/выключение со смартфона;
  2. установка любой температуры нагрева воды;
  3. возможность узнать текущую температуру;
  4. отслеживание текущего объёма воды в чайнике;
  5. предупреждение и защита от включения при малом объёме воды;
  6. установка времени автовключения;
  7. уведомление о готовности;

Вроде выглядит реально, пора приступать к делу.

Поиск необходимых компонентов

Так как сделать полностью новый чайник не представлялось возможным, то было решено модифицировать уже готовый обычный электрический. Как раз дома был бесхозный чайник со сломанным выключателем.

«Так, основа уже есть» — подумал я.

Теперь нужно было заняться поиском компонентов для аппаратной части. Так как уже был небольшой опыт работы с Ардуино, решил всё реализовывать на ней. Тем более что сама Ардуина и модули для неё стоят недорого.

Так как мне всю часть управления чайником надо было вставить внутрь чайника, то выбор пал на Arduino Nano. Она маленькая и у неё есть интерфейс для подключения кабеля, в отличии от Pro Mini, которую нужно прошивать через UART.

image

Главной составляющей wifi чайника является, конечно же, wifi модуль. Поискав в Интернете что-нибудь доступное и по чему много туториалов, напоролся на ESP8266. А именно на версию 01. Посмотрел, что стоит недорого (в районе 2$) и вроде много инструкций по подключению. Остановился на нём. Что касается самого модуля, то тут хорошо подходит фраза: дёшево и сердито. Но об этом чуть позже.

image

Для контроля температуры нужен был какой-нибудь водонепроницаемый термодатчик. Нашёл на алиэкспресс водонепроницаемый NTC термистор, который выдерживает температуру больше 100 градусов. Нашёл и пример работы с ним, так что и тут быстро определился.

image

Надо было решить, как же сделать включение чайника в заданный момент времени, можно, конечно, было сделать программные часы на Ардуино и при совпадении времени включать чайник, но это работало бы нестабильно, и произойди случайно сброс программы, всё собьётся. Поэтому здесь на помощь пришли часы реального времени. А именно DS1307. Они имеют независимое питание (от батарейки на 3 В), да и ещё на модуле, на котором я остановился, была микросхема памяти EEPROM на 32K bit, которую я использовал для сохранения времени включения.

image

Ах да, так как чайник теперь должен включаться программно, то ещё понадобилось 1-канальное реле.

image

Что касается датчика уровня жидкости, то его пришлось делать вручную. Подробности ниже.

Из остального ещё понадобилось несколько резисторов разных номиналов, макетная плата для тестов, монтажная плата для собственно монтажа, проводки, паяльник с флюсом и припоем и львиная доля терпения.

Начало разработки

Так как проект представляет собой wifi чайник, то первым делом хотелось и надо было разобраться с модулем wifi. Как только пришла послыка, тут же распаковал и начал подключать.

Нашёл кучу примеров в Интернете. Всё как надо, стабилизатор напряжения на 3.3 В, делители напряжения для RX и TX. Собрал всё по примеру, подключаю – не полетело! В мониторе COM порта выводилась куча текста, как оказалось, происходил постоянный сброс модуля. На отправляемые АТ команды не реагирует. У автора статьи работает, у меня нет.

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

Оказалось, что при подключении модуля к 3.3 В происходит падение напряжения ниже 3.2 В. Вроде бы, ну и ладно, падает и падает. Решил запитать от другого источника питания и оказалось, что модуль работает нормально при напряжении на нём выше 3.2 В, а ниже ему недостаточно и он постоянно сбрасывается.

В итоге, на свой страх и риск, подключил к 5 В и всё работало и работает до сих пор нормально.

С остальными компонентами таких проблем не было.

После того, как разобрался с wifi, надо было решить, что делать с датчиком уровня жидкости. Погуглив, нашёл статью, в которой автор делал датчик влажности почвы. При высыхании почвы сопротивление датчика увеличивается и напряжение на аналоговом порту Ардуино растёт. Отлавливая изменение напряжения, можно фиксировать появление жидкости. Для определения уровня жидкости в моём проекте вместо двух контактов использовалось 6. Один из них подключён к 5 В выходу, а остальные к аналоговым входам и через 10 кОм резисторы к GND.

Вот фото тестов.


Вот какой датчик уровня получился в результате.

Следующее, что тестировал, — это часы реального времени. Но с ними работа в принципе проста. Для установки времени и получения информации о нём я использовал исключительно примеры, которые идут в комплекте с библиотекой для работы с DS1307.

В результате, когда всё собрал на макетной плате, получился вот такая помесь проводов и модулей. Кстати, на этих фото пока стоит другой датчик температуры.

Приступаем к монтажу

Теперь всё это нужно было распаять на монтажной плате. Здесь комментировать особо нечего, поэтому только фото. Как видно, ещё добавилась кнопка, чтобы можно было включать чайник не только со смартфона, а ещё и обычным способом.



Далее необходимо всё расположить внутри чайника.




Для защиты всех внутренностей от перегрева была добавлена асбестовая вставка.

Правда, корпус пришлось немного приподнять с помощью дополнительной пластиковой вставки.


Теперь переходим к мобильной части.

Что касается приложения, то, так как оно разрабатывалось под ОС Android, то изначально планировалось использовать Android Studio. Но в целях изучения новых технологий было решено использовать готовую платформу для разработки программ в области Интернета вещей. В результате выбор пал на продукт компании Evothings – Evothings Studio.

image

Вот её основные достоинства:

— большое количество стандартных примеров по работе с различными модулями (Wifi, Bluetooth);
— разработка приложений с использованием JS, HTML, CSS, что позволяет писать один код, который будет одинаково работать на ОС Android и iOS, т.е. пропадает привязка только к одной платформе;
— простота тестирования приложения: на смартфон устанавливается приложение для предпросмотра своей разработки, а все тестовые сообщения и сообщения об ошибках выводятся в программе на компьютере;
— большое количество информации в Интернете о разработке с использованием JS, HTML, CSS;

В этой Evothings Studio был пример включения светодиода, передавая запрос на включение через ESP8266. Я решил взять этот пример за основу, как раз там было самое ценное для меня – связь с модулем WiFi через tcp socket. И аналогично тому, как передавался запрос на включение светодиода, сделал передачу запроса на обновление датчиков чайника, на установку времени включения, установку температуры и т.д.

Потом прикрутил уведомления о готовности и малом количестве воды, благо, что всё в наше время легко гуглится. В результате получилось такое вот приложение (приятная штука делать интерфейс приложения с помощью CSS):





Краткое описание взаимодействия смартфона и чайника

Общение между серверной и клиентской частью осуществляется с помощью модуля WiFi. При включении модуля управления чайником, модуль WiFi начинает раздавать сеть под названием artKettle. Это делается с помощью AT команд на серверной части. Так, например, чтобы перевести модуль в режим точки доступа, ему необходимо отправить команду AT+CWMODE=2. Далее с помощью подобных команд необходимо назначить параметры сети, разрешить подключение нескольких устройств и получить ip адрес самого wifi.

Со стороны клиента подключение происходит через определённый порт и по ip адресу модуля wifi с использованием chrome.tcp.socket.

После подключения клиента к серверу можно управлять чайником со смартфона. Рассмотрим пример включения чайника.

При нажатии на кнопку включения в приложении artKettle происходит вызов соответствующей функции включения app.kettleOn(). Внутри этой функции происходит передача двух строк на серверную часть:

Далее идёт работа уже на стороне Ардуино. После прихода первой строки с символом ‘H’ выполняется следующая часть кода:

Сначала идёт проверка, есть ли в чайнике вода с помощью вызова метода waterDetected(). Рассмотрим вариант, когда вода в чайнике присутствует.

На пин управления реле подаётся низкий уровень напряжения, что соответствует его включению, т.е. цепь питания замыкается:

Затем идёт установка флага того, что чайник включён, и вывод в монитор последовательного порта сообщения о включении.

Читать:
Как откалибровать толщиномер ет 111

После этого вызывается функция, передающая ответное сообщение клиентской стороне о том, что всё включение прошло успешно:

На клиентской стороне после проверки пришедшего сообщения производится установка кнопки включения в состояние On:

После этого идёт обработка текстового сообщения с символом ‘U’, отправленного со стороны клиента на сервер. Здесь аналогичным включению образом происходит обновление информации о текущей температуре и объёме жидкости в чайнике.

Таким образом организована двухсторонняя связь клиента и сервера, так что любой из них знает о состоянии другого в любой момент времени.

Заключение

В результате курсового проекта была разработана модификация для обычного электрического чайника, позволяющая управлять им со смартфона по wifi. Теперь этот чайник вполне можно отнести к представителям Интернета вещей. Все функции удалось реализовать полностью, так что теперь этот чайник имеет следующие возможности:

— включение/выключение со смартфона;
— установка любой температуры нагрева воды;
— возможность узнать текущую температуру;
— отслеживание текущего объёма воды в чайнике;
— предупреждение и защита от включения при малом объёме воды;
— установка времени автовключения;
— уведомление о готовности;

Достоинствами реализованного проекта является доступность элементной базы, потому как всё необходимое можно найти в магазинах радиоэлектронных компонентов, расширяемость проекта. Так как в чайнике установлены все необходимые датчики, то его можно дорабатывать программно и сделать не хуже, чем аналоги. Учитывая многофункциональность используемого модуля wifi, можно подключить его к сети Интернет и организовать управление чайником, находясь в любой точке мира, а с использование онлайн сервиса обработки SMS сообщений можно организовать включение по SMS. Т.е. проект ещё очень расширяем, возможности для этого есть, но они не были реализованы, так как не входили в цели разрабатываемого проекта.

Конечно же есть и недостатки проекта. Первый из них – это нестабильная работа модуля Wifi. Модуль иногда просто так теряет сеть, начинает сбрасывать настройки или просто не обрабатывает пришедшие сигналы. Причём это популярные проблемы у пользователей данного модуля. Второй недостаток – это отсутствие механического выключения чайника. Выключение реализовано программно, при достижении температуры кипения происходит разрыв цепи с помощью реле. Если вдруг в программе произойдёт сбой, то чайник может не отключиться. Третий недостаток – проблема отслеживания температуры нагрева. Так, например, если чайник отключить при температуре 60 градусов, то нагревательный тен продолжит отдавать тепло, и через некоторое время температура воды уже будет около 70 градусов. Но это исправляется путём внесения корректировок в программу.

WiFi-чайник в домашних условиях, или как сделать обычный чайник по-настоящему умным

image

Если вы читали мою предыдущую статью (Бегущая строка на Arduino), то наверняка уже знаете, что у нас в университете есть возможность делать аппаратные курсовые проекты. И я, вдохновлённый предыдущей своей работой, решил ещё раз попробовать сделать что-нибудь своими руками. Только теперь тема должна была быть посерьёзнее. Кстати, думать о том, что сделать, я начал ещё на зимних каникулах, то есть до начала семестра. Хотелось сделать что-нибудь интересное и полезное одновременно.

Поиск идеи

Однажды на паре по Основам защиты информации у нас была тема, связанная с интеллектуальной собственностью и патентами. Преподаватель дал нам задание оформить по всем требованиям патент на какое-нибудь устройство и в качестве примера привёл wifi чайник.
Сказал — и забыл. И все забыли, а у меня в голове эта тема осталась. И когда пришло время думать над тем, что делать в качестве курсового в следующем семестре, я вспомнил про этот чайник.

Первым делом решил посмотреть, что же уже сделано. И каково было моё удивление, когда я увидел, что в продаже есть только три модели чайников с поддержкой управления по WiFi, и то два их них принадлежать одной компании. Это были Smarter iKettle 1.0 и 2.0 и российский Polaris PWK 1792CGL.

image

Интересно, что обычные электрические чайники есть почти в каждом доме, а умных так мало. Сравнив функции, предлагаемые производителями iKettle и Polaris, я составил список самых необходимых. Вот, что получилось:

  1. включение/выключение со смартфона;
  2. установка любой температуры нагрева воды;
  3. возможность узнать текущую температуру;
  4. отслеживание текущего объёма воды в чайнике;
  5. предупреждение и защита от включения при малом объёме воды;
  6. установка времени автовключения;
  7. уведомление о готовности;

Вроде выглядит реально, пора приступать к делу.

Поиск необходимых компонентов

Так как сделать полностью новый чайник не представлялось возможным, то было решено модифицировать уже готовый обычный электрический. Как раз дома был бесхозный чайник со сломанным выключателем.

«Так, основа уже есть» — подумал я.

Теперь нужно было заняться поиском компонентов для аппаратной части. Так как уже был небольшой опыт работы с Ардуино, решил всё реализовывать на ней. Тем более что сама Ардуина и модули для неё стоят недорого.

Так как мне всю часть управления чайником надо было вставить внутрь чайника, то выбор пал на Arduino Nano. Она маленькая и у неё есть интерфейс для подключения кабеля, в отличии от Pro Mini, которую нужно прошивать через UART.

image

Главной составляющей wifi чайника является, конечно же, wifi модуль. Поискав в Интернете что-нибудь доступное и по чему много туториалов, напоролся на ESP8266. А именно на версию 01. Посмотрел, что стоит недорого (в районе 2$) и вроде много инструкций по подключению. Остановился на нём. Что касается самого модуля, то тут хорошо подходит фраза: дёшево и сердито. Но об этом чуть позже.

image

Для контроля температуры нужен был какой-нибудь водонепроницаемый термодатчик. Нашёл на алиэкспресс водонепроницаемый NTC термистор, который выдерживает температуру больше 100 градусов. Нашёл и пример работы с ним, так что и тут быстро определился.

image

Надо было решить, как же сделать включение чайника в заданный момент времени, можно, конечно, было сделать программные часы на Ардуино и при совпадении времени включать чайник, но это работало бы нестабильно, и произойди случайно сброс программы, всё собьётся. Поэтому здесь на помощь пришли часы реального времени. А именно DS1307. Они имеют независимое питание (от батарейки на 3 В), да и ещё на модуле, на котором я остановился, была микросхема памяти EEPROM на 32K bit, которую я использовал для сохранения времени включения.

image

Ах да, так как чайник теперь должен включаться программно, то ещё понадобилось 1-канальное реле.

image

Что касается датчика уровня жидкости, то его пришлось делать вручную. Подробности ниже.

Из остального ещё понадобилось несколько резисторов разных номиналов, макетная плата для тестов, монтажная плата для собственно монтажа, проводки, паяльник с флюсом и припоем и львиная доля терпения.

Начало разработки

Так как проект представляет собой wifi чайник, то первым делом хотелось и надо было разобраться с модулем wifi. Как только пришла послыка, тут же распаковал и начал подключать.

Нашёл кучу примеров в Интернете. Всё как надо, стабилизатор напряжения на 3.3 В, делители напряжения для RX и TX. Собрал всё по примеру, подключаю – не полетело! В мониторе COM порта выводилась куча текста, как оказалось, происходил постоянный сброс модуля. На отправляемые АТ команды не реагирует. У автора статьи работает, у меня нет.

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

Оказалось, что при подключении модуля к 3.3 В происходит падение напряжения ниже 3.2 В. Вроде бы, ну и ладно, падает и падает. Решил запитать от другого источника питания и оказалось, что модуль работает нормально при напряжении на нём выше 3.2 В, а ниже ему недостаточно и он постоянно сбрасывается.

В итоге, на свой страх и риск, подключил к 5 В и всё работало и работает до сих пор нормально.

С остальными компонентами таких проблем не было.

После того, как разобрался с wifi, надо было решить, что делать с датчиком уровня жидкости. Погуглив, нашёл статью, в которой автор делал датчик влажности почвы. При высыхании почвы сопротивление датчика увеличивается и напряжение на аналоговом порту Ардуино растёт. Отлавливая изменение напряжения, можно фиксировать появление жидкости. Для определения уровня жидкости в моём проекте вместо двух контактов использовалось 6. Один из них подключён к 5 В выходу, а остальные к аналоговым входам и через 10 кОм резисторы к GND.

Вот фото тестов.


Вот какой датчик уровня получился в результате.

Следующее, что тестировал, — это часы реального времени. Но с ними работа в принципе проста. Для установки времени и получения информации о нём я использовал исключительно примеры, которые идут в комплекте с библиотекой для работы с DS1307.

В результате, когда всё собрал на макетной плате, получился вот такая помесь проводов и модулей. Кстати, на этих фото пока стоит другой датчик температуры.

Приступаем к монтажу

Теперь всё это нужно было распаять на монтажной плате. Здесь комментировать особо нечего, поэтому только фото. Как видно, ещё добавилась кнопка, чтобы можно было включать чайник не только со смартфона, а ещё и обычным способом.



Далее необходимо всё расположить внутри чайника.




Для защиты всех внутренностей от перегрева была добавлена асбестовая вставка.

Правда, корпус пришлось немного приподнять с помощью дополнительной пластиковой вставки.


Теперь переходим к мобильной части.

Что касается приложения, то, так как оно разрабатывалось под ОС Android, то изначально планировалось использовать Android Studio. Но в целях изучения новых технологий было решено использовать готовую платформу для разработки программ в области Интернета вещей. В результате выбор пал на продукт компании Evothings – Evothings Studio.

image

Вот её основные достоинства:

— большое количество стандартных примеров по работе с различными модулями (Wifi, Bluetooth);
— разработка приложений с использованием JS, HTML, CSS, что позволяет писать один код, который будет одинаково работать на ОС Android и iOS, т.е. пропадает привязка только к одной платформе;
— простота тестирования приложения: на смартфон устанавливается приложение для предпросмотра своей разработки, а все тестовые сообщения и сообщения об ошибках выводятся в программе на компьютере;
— большое количество информации в Интернете о разработке с использованием JS, HTML, CSS;

В этой Evothings Studio был пример включения светодиода, передавая запрос на включение через ESP8266. Я решил взять этот пример за основу, как раз там было самое ценное для меня – связь с модулем WiFi через tcp socket. И аналогично тому, как передавался запрос на включение светодиода, сделал передачу запроса на обновление датчиков чайника, на установку времени включения, установку температуры и т.д.

Потом прикрутил уведомления о готовности и малом количестве воды, благо, что всё в наше время легко гуглится. В результате получилось такое вот приложение (приятная штука делать интерфейс приложения с помощью CSS):





Краткое описание взаимодействия смартфона и чайника

Общение между серверной и клиентской частью осуществляется с помощью модуля WiFi. При включении модуля управления чайником, модуль WiFi начинает раздавать сеть под названием artKettle. Это делается с помощью AT команд на серверной части. Так, например, чтобы перевести модуль в режим точки доступа, ему необходимо отправить команду AT+CWMODE=2. Далее с помощью подобных команд необходимо назначить параметры сети, разрешить подключение нескольких устройств и получить ip адрес самого wifi.

Со стороны клиента подключение происходит через определённый порт и по ip адресу модуля wifi с использованием chrome.tcp.socket.

После подключения клиента к серверу можно управлять чайником со смартфона. Рассмотрим пример включения чайника.

При нажатии на кнопку включения в приложении artKettle происходит вызов соответствующей функции включения app.kettleOn(). Внутри этой функции происходит передача двух строк на серверную часть:

Далее идёт работа уже на стороне Ардуино. После прихода первой строки с символом ‘H’ выполняется следующая часть кода:

Сначала идёт проверка, есть ли в чайнике вода с помощью вызова метода waterDetected(). Рассмотрим вариант, когда вода в чайнике присутствует.

На пин управления реле подаётся низкий уровень напряжения, что соответствует его включению, т.е. цепь питания замыкается:

Затем идёт установка флага того, что чайник включён, и вывод в монитор последовательного порта сообщения о включении.

После этого вызывается функция, передающая ответное сообщение клиентской стороне о том, что всё включение прошло успешно:

На клиентской стороне после проверки пришедшего сообщения производится установка кнопки включения в состояние On:

После этого идёт обработка текстового сообщения с символом ‘U’, отправленного со стороны клиента на сервер. Здесь аналогичным включению образом происходит обновление информации о текущей температуре и объёме жидкости в чайнике.

Таким образом организована двухсторонняя связь клиента и сервера, так что любой из них знает о состоянии другого в любой момент времени.

Заключение

В результате курсового проекта была разработана модификация для обычного электрического чайника, позволяющая управлять им со смартфона по wifi. Теперь этот чайник вполне можно отнести к представителям Интернета вещей. Все функции удалось реализовать полностью, так что теперь этот чайник имеет следующие возможности:

— включение/выключение со смартфона;
— установка любой температуры нагрева воды;
— возможность узнать текущую температуру;
— отслеживание текущего объёма воды в чайнике;
— предупреждение и защита от включения при малом объёме воды;
— установка времени автовключения;
— уведомление о готовности;

Достоинствами реализованного проекта является доступность элементной базы, потому как всё необходимое можно найти в магазинах радиоэлектронных компонентов, расширяемость проекта. Так как в чайнике установлены все необходимые датчики, то его можно дорабатывать программно и сделать не хуже, чем аналоги. Учитывая многофункциональность используемого модуля wifi, можно подключить его к сети Интернет и организовать управление чайником, находясь в любой точке мира, а с использование онлайн сервиса обработки SMS сообщений можно организовать включение по SMS. Т.е. проект ещё очень расширяем, возможности для этого есть, но они не были реализованы, так как не входили в цели разрабатываемого проекта.

Конечно же есть и недостатки проекта. Первый из них – это нестабильная работа модуля Wifi. Модуль иногда просто так теряет сеть, начинает сбрасывать настройки или просто не обрабатывает пришедшие сигналы. Причём это популярные проблемы у пользователей данного модуля. Второй недостаток – это отсутствие механического выключения чайника. Выключение реализовано программно, при достижении температуры кипения происходит разрыв цепи с помощью реле. Если вдруг в программе произойдёт сбой, то чайник может не отключиться. Третий недостаток – проблема отслеживания температуры нагрева. Так, например, если чайник отключить при температуре 60 градусов, то нагревательный тен продолжит отдавать тепло, и через некоторое время температура воды уже будет около 70 градусов. Но это исправляется путём внесения корректировок в программу.

Похожие публикации