Компания
171,05
рейтинг
24 июня 2015 в 16:05

Разное → T.E.E.T.H. на основе Intel Edison найдёт способ замотивировать вас почистить зубы и отправит отчет в облако перевод

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

Вот скажите, всегда ли вы чистите зубы положенные 2 минуты?



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

Плата Intel Edison обладает небольшим размером и необходимой вычислительной мощностью, чтобы приучать к здоровым привычкам – правильному использованию зубной щётки и пасты.

Уверен, у вас уже есть знания, необходимые для разработки под Intel Edison. Так как эта плата содержит встроенный Wi-Fi и использует node.js для работы со своей аппаратной частью, то вы можете программировать на JavaScript. Это значит, что большинство веб-разработчиков может использовать плату Intel Edison, чтобы быстро начать программировать для интернета вещей.

Шаги, описанные ниже, показывают, как добавить выключатели, экран и сенсоры, чтобы переделать любую подставку для зубных щёток в T.E.E.T.H. (Timer Encouraging Everyone To Health – Таймер, побуждающий каждого к здоровому образу жизни). В исходниках видно, как достаточно простой node.js-проект управляет этими компонентами и подключается к интернету, чтобы использовать облачную аналитику и отправлять почту.

Использование T.E.E.T.H. — умного таймера для зубной щётки


Для начала выньте вашу щётку из держателя. Это подготовит таймер, который будет ожидать, когда вы начнёте чистить зубы. Затем начнётся двухминутный отсчет, и ЖК-экран будет показывать вам слова одобрения. Две минуты – это время чистки зубов, рекомендованное Американской Ассоциацией Дантистов. Экран будет менять цвета и надписи, пока вы не закончите. Не беспокойтесь, если вы чистите зубы с закрытыми глазами, звуковой сигнал прозвучит в начале и в конце процедуры. Таймер остановится, когда вы поставите щётку обратно или когда вы выключите свет, выходя из ванной. После этого подставка сохранит данные вашего таймера в облаке. Если вы достигните цели, она пошлёт email с поздравлением. Потом вы можете зайти в облако и увидеть прогресс для каждой щётки в подставке. Вы можете отслеживать эти IoT-данные, чтобы поощрять здоровые привычки всех домочадцев.

Покупки и планирование


Приблизительное время исполнения проекта: 2-3 часа.
Цена: 75-100 долларов.

Детали, использованные в проекте




Материалы:

  • Подставка для зубных щёток.
  • Процессорный модуль Intel Edison.
  • Плата подключения для Intel Edison.
  • Кнопки-переключатели, по одному на каждую щётку.
  • Пластиковая платформа (по одной для каждой щётки).
  • Резисторы 10к (по одному на каждую щётку, и ещё один для фоторезистора).
  • ЖК-экран с RGB-подсветкой. (http://www.seeedstudio.com/depot/Grove-LCD-RGB-Backlight-p-1643.html?cPath=34_36).
  • Датчик освещения (фоторезистор).
  • Пьезоэлектрический динамик.
  • Аккумулятор с USB-разъёмом.
  • Силиконовый клей или герметик.
  • Исходный код проекта.
  • Монтажные провода.

Инструменты:

  • Компьютер с установленным Intel XDK IoT Edition и USB кабели.
  • Паяльник и припой.
  • Режущие инструменты в зависимости от материала вашей подставки.

Шаги


1. Подготовка подставки


Я выбрал бамбуковую подставку для зубных щёток, поэтому мне было достаточно просто вырезать дырки, необходимые для установки компонентов, и поместить провода, чтобы их не было видно спереди. Инструменты, которые вам понадобятся, зависят от материала подставки. Ну, или вы можете сами сделать подставку.

Установка ЖК-экрана на переднюю стенку


Вырежьте кусок сверху, достаточно большой, чтобы поместился весь ЖК-экран. Затем прорежьте дырку поменьше в этом куске для самого экрана. Вклейте полученную часть обратно в подставку.



Кроме того, вы можете просто прикрутить все компоненты снаружи. Это зависит от вашего чувства прекрасного. Но неважно, как вы это сделаете, главное помнить, чтобы провода от вашего экрана смогли достать до платы Intel Edison, которая будет прикреплена сзади.

Добавим кнопку на дно подставки


Подойдет любой датчик, который сможет определить наличие щётки. Я выбрал кнопку с рычажком, вместо какого-нибудь ИК-сенсора, чтобы минимизировать потребление. Однако, зубная щётка весит всего 15 граммов, поэтому понадобится достаточно чувствительный датчик.

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



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

Добавление датчика освещения спереди и пищалки сзади


Приготовьте датчик освещения и пищалку, припаяв соединительные провода достаточной длины, чтобы достать задней стенки, где будет расположена основная плата. Я просверлил дырку спереди, достаточную для светового датчика. Его переднее расположение позволяет точно реагировать на освещение в комнате. Сзади я прорезал дырку побольше для пищалки. Такое размещение позволит минимально изменить внешний вид подставки и издавать громкий звук по утрам.



Защита чувствительной электроники от воды


Так как устройство, несомненно, попадет по влажную среду, надо принять меры предосторожности к соединениям. Используйте силиконовый или какой-нибудь другой герметик, чтобы покрыть незащищённую электронику и провода. Я использовал достаточно много герметика для задней части ЖК-экрана. Но убедитесь, что вы не покрыли сам переключатель, чтобы он мог хорошо работать.



Подсоединение компонентов к основной плате


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



Используйте следующую схему соединения компонентов к пинам на монтажной плате.



Большинство элементов подключается непосредственно, но мне пришлось добавить стягивающий резистор на 10 к, чтобы уменьшить шум кнопок и избавиться от ложного срабатывания.

Прим. пер. – У вас есть четыре способа подключить кнопки. Но в зависимости от их подключения, возможно, придётся поменять исходный код, так как он настроен на появление «0» при нажатии кнопки:


Фоторезистор подключается по такой схеме:


Добавим процессорный модуль Intel Edison к основной печатной плате. Железная часть вашего проекта почти закончена. Вскоре мы добавим батарейку. На данный момент ваш проект должен выглядеть как-то так.



2. Подготовка платы Intel Edison и Облачного сервиса


Запуск платы Intel Edison описан на сайте Intel IoT. Чтобы подсоединить компьютер к плате, следуйте инструкциям http://intel.com/Edison/getstarted

Настройка Wi-Fi


Так как наш проект использует Wi-Fi для соединения с облаком и отсылки почты, надо будет соединить плату с Wi-Fi-роутером. Это достаточно просто сделать, используя утилиту configure_edison, которая уже есть на плате Intel Edison. Больше информации можно получить из intel.com/Edison/getstarted

Настройка аккаунта IoT Analytics


Этот проект использует Intel IoT Developer Kit Cloud-based Analytics, чтобы хранить данные в облаке. Вы можете настроить аккаунт по ссылке https://dashboard.us.enableiot.com/v1/ui/auth#/login

Добавление компонентов к облаку


После того как вы зарегистрируете вашу плату Intel Edison на IoT Analytics, вы должны приготовить облако для ваших данных, создав специальные компоненты. Создайте по одному компоненту для каждой зубной щётки. Имена, которые вы дадите компонентам, будут именами, которые показываются в отчёте. Следуйте инструкциям по созданию компонентов https://software.intel.com/en-us/intel-iot-developer-kit-cloud-based-analytics-user-guide

Регистрирование компонентов на плате Intel Edison


Когда компоненты созданы в панели управления IoT Analytics, вам надо зарегистрировать их на плате. Имена, которые вы используете на этом шаге, будут использоваться в исходном коде, который посылает данные в облако. Вот ссылка на подобные инструкции по регистрации компонентов на плате https://software.intel.com/en-us/intel-iot-developer-kit-cloud-based-analytics-user-guide

Запуск Intel агента на плате Intel Edison


Плата Intel Edison использует встроенный сервис для взаимодействия с облаком. Этот сервис должен быть запущен, чтобы программа соединялась и посылала данные. После того как вы последуете инструкциям по ссылке выше, вы сможете протестировать, что плата может соединиться с облаком и посылать данные вашим компонентам.

3. Программирование платы Intel Edison


Ну, раз аппаратная часть и сервисы готовы, время загрузить на плату исходный код T.E.E.T.H.

Подключение к плате из Intel XDK IoT Edition


Среда разработки Intel XDK IoT Edition позволяет строить Node.js проекты на плате. Она поставляется с кучей проектов-примеров. Документация доступна здесь https://software.intel.com/en-us/html5/documentation/getting-started-with-intel-xdk-iot-edition

Загрузка программы


Загрузите или клонируйте исходники с GitHub. Файлы имеют структуру небольшого node.js-проекта https://github.com/ncarver/TEETH

  • readme.md – документация и лицензия;
  • package.json – описатель проекта и зависимых библиотек;
  • main.js – основной код, необходимый для запуска T.E.E.T.H.;
  • node_modules – директория с зависимыми библиотеками, созданная, когда вы первый раз построите проект.

Настройка службы SMTP


В начале файла main.js определяется несколько констант. Вы можете изменить их, чтобы они соответствовали параметрам вашего домашнего окружения и вашим предпочтениям. Как минимум, вам надо изменить значения для MAIL.user, MAIL.pass, and MAIL.brushTo. Эти свойства определяют, как почтовый сервер SMTP соединяется с интернетом и куда должен слать письма T.E.E.T.H.



Использование имен зарегистрированных аналитических компонент


Используйте имена, которые вы зарегистрировали в панели управления IoT Analytics в секции констант, METRICS.brushComponent. Это массив всех компонент, использованных в вашем проекте. У меня он состоит из двух элементов.



Больше, ещё больше зубных щеток


Если вы построили подставку более чем для двух щёток, вам надо будет изменить секцию констант, чтобы код соответствовал этому. Код использует массив структур со значениями специфичными для щёток. Добавьте дополнительные элементы массива для каждой щётки, такие константы как: METRICS.brushComponent, MAIL. brushTo.PINS.brushSwitch, SCREEN_MSG.brushName, TIME.brushPreptime, and TIME.brushGoaltime.

4. Разбор исходного кода


Хотя было возможно разбить проект на несколько файлов по модулям, мне кажется, будет проще, если всё будет находиться в одном файле main.js. Этот проект не требует много кода, поэтому дополнительные файлы могут только усложнить понимание.

Требуемые библиотеки


Так как у нас node.js-проект, то используются дополнительные модули для взаимодействия с железом, демоном аналитики и почтой.

constants


Эта единственная секция, в которой надо что-то редактировать. Измените эти константные значения для изменения цвета сообщений на экране, текста писем и временных интервалов.

timers


Для простоты все таймеры хранятся как глобальные объекты. Это позволяет при вызове методов из setTimeout и setInterval всегда иметь доступ к таймерам.

Logger


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

Sensors


Используя класс Sensors, вы увидите, как просто работать с пинами ввода/вывода. Состояние выключателей под зубными щётками и значение фоторезистора считываются в этом классе.

Buzzer


Большая часть кода в классе Buzzer нужна для воспроизведения щебечущего звука и используется при запуске и остановке таймера.

Screen


Класс Screen отвечает за все команды к ЖК-экрану. У него две обязанности — показывать текстовые сообщения и изменять цвет фоновой подсветки.

Mailer


Класс Mailer использует nodemailer для отправки почты, используя SMTP. Он содержит проверку ошибок, если невозможно послать письмо.

Metrics


Класс Metrics использует локальный сокет на плате, чтобы послать аналитические данные демону iotkit-agent. Если возникает ошибка соединения, на консоль посылается сообщение об ошибке.

Teeth


Это главный класс, содержащий всю логику проекта. Teeth вызывает класс Sensors для мониторинга кнопок и света, класс Buzzer для воспроизведения звука, класс Screen для показа сообщений, класс Mailer для посылки почты, класс Metrics для обновления IoT Dashboard. Если вы хотите изменить возможности вашего устройства, надо обновить этот код.

5. Протестируем


Потратьте некоторое время для тестирования платы и подставки для щеток, пока они подсоединены к компьютеру. Это наиболее простой путь, так как можно увидеть консольный вывод.

Проверка сенсоров и дисплея


Используйте кнопку Install/Build в Intel XDK IoT Edition для того, чтобы загрузить исходный код на плату и запустить NPM для постройки node-проекта. Нажмите кнопку Run для запуска T.E.E.T.H.

Протестируйте подставку, используя зубную щётку для каждой кнопки на подставке. Вы должны увидеть, что ЖК-экран включается, и вы можете следить за консольным выводом. Также пищалка должна бибикнуть и таймер должен выключиться, если вы закроете датчик освещения.

Проверка почты


Позвольте таймеру досчитать до конца, чтобы отправилось письмо. В зависимости от ваших сервисов вы должны получить письмо в свой почтовый ящик через несколько минут.

Просмотр аналитики


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

6. Добавим питание


Наконец-то вы готовы отсоединить плату Intel Edison от вашего компьютера и поместить подставку для щёток на раковину в ванную комнату как автономное IoT устройство.

Присоединение аккумулятора


Используйте аккумулятор с USB-разъемом, чтобы запитать плату. Мне такой подарили на конференции. Он предназначен для заряда сотового телефона, но замечательно работает и в этом проекте. Я оставил его USB-порт доступным для зарядки.



Финальный шаг


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



Двигаемся дальше


В этом проекте мы только начали получать преимущества от использования беспроводного интернета и облачных данных на платформе Intel Edison. Исходный код может быть легко модифицирован для использования других технологий. Может быть, вы захотите послать твит вместо письма. Или вы захотите использовать другой облачный сервис вместо IoT Analytics, например, Xively. Даже звук запуска и остановки таймера может быть заменён на ваш любимый mp3-файл, который будет послан на динамик. Вы можете быстро внести эти изменения, просто заменяя одни модули другими, которые вы хотите использовать.

Но эту умную подставку для щёток можно сделать ещё более умной. Например, как домашние системы Nest. Сейчас данные только передаются наружу в облако, но взяв эти данные как входные для таймера, они станут средством обучения. Например, если вы никогда не чистите полные две минуты, таймер поставит более короткую цель, и будет увеличивать её понемногу при каждом успехе. И вместо использования фиксированных временных интервалов, сенсор, который реагирует на внешний звук чистки зубов, может сам адаптироваться к вашим привычкам. Но даже без каких-либо дополнений это большой проект по привнесению IoT в достаточно важное помещение в вашем доме. Подумайте, это может быть первая часть движения «Ванная комната 2.0».

Об авторе


Натан Карвер пришёл в область IoT извилистой дорогой. Начиная клоуном в Ringling Brothers, сейчас он вице-президент по инженерии в Crisp Media – мобильной рекламной компании, где он работает с веб-технологиями и технологиями больших данных. Предыдущая работа включала запуск отдела профессионального сервиса, основание софтверной компании, исполнение музыки на пиле («Singer and Saw») и хождение под парусом по реке Гудзон. Он живет в Нью-Йорке. Его другие проекты доступны на Github.
Автор: @varerysan Nathan Carver
Intel
рейтинг 171,05

Комментарии (21)

  • +2
    Ценой вышло как средненький планшет?
    • +3
      Да, почти. Автор пишет 75-100 долларов. Но мы же знаем, что поход к зубному стоит дороже :-)
      • +4
        Ну если не брать в расчёт электрические щётки Oral-B Professional Care) там и таймер, который каждые 30 секунд даёт вибрацию, намекая о переходе к следующему квадранту чистки и датчик давления, который сбрасывает обороты, не давая стереть эмаль особым фанатам. Как стоматолог рекомендую. А just for fun этот проект очень хорош)
      • +1
        Просто это как из пушки по воробьям. Сама плата эдисона стоит $70.
        • 0
          Хорошая щётка со сменными насадками на всю семью 70-120$ примерно. Но часто бывают дикие скидки пол акциям.
          • 0
            Такой проект как в статье выйдет баксов в 200.
            Эдиссон 80$ + платка с гребенками под него 100$ + остальное
            Стоит ли игра свеч?
            • +4
              Нет. Как и для большинства хобби-проектов. Это обучение и отдых в первую очередь. Зато иногда это перерастает во что-то полезное. Я вот железяку собираю для лаборатории. Сегодня операционный усилитель пришёл. Сижу, читаю про уменьшение помех. Хотя у меня и постоянный ток, но все же. Короче, пусть народ ковыряет. Хуже никому не будет. Это просто хобби. И не самое дорогое.
          • 0
            Так у меня претензия только к конкретному железу. Там ничего сверхумного нет для двухядерного атома, подошёл бы и аналог ардуино за $5.
  • +3
    В детстве в ванной стояли песочные часы. Они в твитор не рапортовали о моих успехах в области гигиены, но зато электричества не потребляли и стоили дешевле :)
  • +3
    Все эти маркетинговые статейки по IoT/умным домам уже читать смешно. Сколько времени на это все потратили, а придумать, какую реальную проблему IoT эффективно решит так и не осилили (проблема увеличения прибыли корпораций за счет впаривания потребителю ненужных побрякушек не в счет).
    • 0
      Это всё маленькие кирпичики, из которых в итоге будут делаться «умные дома». По сути всё сводится к созданию сценариев и правил поведения для вещей и бытовых приборов. Для этого нужно знать текущую обстановку (для этого и нужны всевозможные «умные» датчики) и нужно чтобы у бытовых приборов был не только ручной интерфейс управления.

      И отмашки типа «мне в пещере и так норм, пойду дров нарублю» не остановят этот процесс.
      • +4
        И отмашки типа «мне в пещере и так норм, пойду дров нарублю» не остановят этот процесс.
        Пожалуйста, не нужно искажать сказанное мною, это никак не изменит того, что IoT/умные дома не решают никаких реальных проблем обычного человека. Вместо того, что бы пичкать примитивную электронику в каждое мусорное ведро и в итоге огрести кучу проблем, в частности, с обслуживанием и безопасностью (при этом решая проблему феерически неэффективным способом), разумнее потратить деньги и время на разработку условного робота-горничной, который будет эффективно решать те же самые проблемы, но обслуживаться и управляться централизовано, не требовать накручивания на примитивные бытовые предметы побочной функциональности и выделения кофеваркам миллиардов IP-адресов, а специально для любителей инноваций@нанотехнологий будет постить в инстаграмчик селфики с тегами #технологий #инновации #люблюбдущее #omgsuchnerd #cloudtech #компанияПроизводительИмя.

        Прогресс, это, безусловно, хорошо, но с фразой «наклепать кучу дешевых и технологически простых побрякушек, что бы быстро продать их за счет wow-эффекта» он имеет мало общего и меня как-то не очень радует тот факт, что многие, кажется, стали поднимать под прогрессом именно эту фразу.
        • +1
          А по какому принципу нужно отличать ненужные побрякушки от Решателей Реальных Проблем? Пульт дистанционного управления для телевизора — излишество или роскошь? Водопровод решает реальные проблемы, или это для тех, кто лениться прогуляться с ведерком к ближайшему колодцу!?

          Я не спорю с тем, что многие «wow-приспособления» выполнены неэффективно, и в курсе, что во многих случаях авторы не задумывались о безопасности от слова «совсем». Но если сидеть и ждать когда же Большая Корпорация придумает и внедрит умный дом, то можно ждать вечно — первые прототипы появлялись десятки лет назад, но распространения практически не получили.

          Любители много лет делали себе DIY-приспособления для дома, но сравнительно недавно это хобби стало достаточно дешевым и доступным для широких масс. Вот и мелькают в новостях странные уродцы и низкоэффективные решения несуществующих проблем. Но это не значит, что вся шумиха вокруг IoT лишена смысла.

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

          Да, сейчас уже существуют достаточно умные _отдельные приборы_. Кондиционеры, которые могут днем экономить энергию а к заданному времени подгонять нужную температуру, будильники, способные разбудить светом и музыкой, роботы-пылесосы и т.п. Но чтобы объеденить в один комплекс будильник с кофеваркой придется взять в руки паяльник.

          Или если вы собрались на месяцок в отпуск — будильник будет срабатывать в пустой комнате, кондиционер будет и робот-пылесос будут работать в холостую. Или вам придется объяснить это каждому такому прибору по отдельности — копаясь в настройках или выдергивая из розетки. Умный дом, в моем представлении, должен централизованно управлять всеми процессами. Но для этого ему нужны «глаза» и «руки». Пусть пока некоторые из них и выглядят глупо.
          • +1
            Раньше было такое слово — «мечтатель». И всякие гики (в ту пору они назывались инженерами и учеными) создавали то, о чем мечтали (они или кто-то). Мечтали о полетах, о звездах, об общении без проводов… Вот это и были «РешателиРеальныхПроблем». Когда настала эпоха, в которой маркетолог решает, о чем должен мечтать покупатель/потребитель, мечтать стало не о чем, соответственно и область Реальных Проблем сузилась до непонятной большинству обывателей полоски. Обыватель же нынче ждет не дождется, когда очередной Стивджобс скажет «это — будущее, которое мы делаем сегодня!» или «думай иначе!», — и ринется покупать это самое будущее, все равно какое, будь то зубная щетка с многоядерным процессором или туалетная бумага, меняющая цвет в зависимости от запаха какашек. Сказано «надо брать» — бери, радуйся и не сомневайся, иначе прослывешь отсталым ретроградом и противником прогресса.
  • +1
    Такое можно сделать на esp8266, если дисплей не нужен. (хотя если постараться то можно и с ним) Будет дешевле. Но как идея для обучения или прототипа очень нечего.
  • 0
    Щетка Орал-Б, даже без светодиодов. Через 2 минуты после нажатия на кнопку вибрация меняется на пару секунд. Стоит баксов 20.
    Заплатить в 5 раз больше, за то, чтобы вместо чистки зубов тратить время на непонятные глюки усложненного девайса?
  • +1
    Ахах, я буквально вчера для этих же целей купил.

    image

    Детям нравится.
    • 0
      Тоже это использую. За несколько лет этот аппарат «завис» только однажды. (Не знаю как, но песочек внутри как-то умудрился «застрять». Потряс — посыпался дальше)
  • 0
    Интересно, почему проектам часто дают подобные «Н.А.З.В.А.Н.И.Я»?
  • +2
    Домашняя автоматизация, бессмысленная и беспощадная. А ведь изначально декларируемая цель была замотивировать себя и, что немаловажно, домашних.

    Как насчет проигрывать несколькоминутный ролик на планшете, например? Тогда процесс чистки зубов не будет таким монотонно-скучным.

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

Самое читаемое Разное