Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Подушка "Люблю тебя"

Компоненты и расходные материалы

Пакет Arduino MKR IoT
× 1

Приложения и онлайн-сервисы

Telegram

Об этом проекте

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

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

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

Когда вы обнимаете подушку "Я люблю тебя" вы услышите сердцебиение, исходящее из зуммера внутри. В зависимости от продолжительности ваших объятий, бот Telegram будет отправлять разные смайлы в любой чат, который вы выберете.

Оставайтесь на связи с любимым человеком с помощью этого удобного устройства!

В двух словах

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

Для создания нашего hug-send-device нам потребуются следующие компоненты:

  • Зуммер
  • Алюминиевая фольга
  • 1 резистор 5 МОм
  • Макет
  • Провода

Цели обучения

  • Представляем ботов Telegram
  • Управление емкостными датчиками
  • Боты Telegram и групповые чаты #ProTips
  • Рекомендации по использованию Wi-Fi #ProTips

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

Хотите узнать больше?

Это руководство является частью серии экспериментов, знакомящих вас с MKR1000 и IoT. Все эксперименты могут быть построены с использованием компонентов, содержащихся в MKR IoT Bundle.

  • Подушка "Я тебя люблю"
  • Головоломка
  • Кот Павлова
  • Ботан
  • Заводской коммуникатор

Представляем ботов Telegram

Telegram - популярное приложение для обмена сообщениями как для мобильных, так и для настольных компьютеров. Помимо возможности общаться с друзьями, он также позволяет нам создавать удобных и мощных чат-ботов!

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

Библиотека TelegramBot для Arduino дает нам простой способ реализовать логику чат-бота.

Создайте своего бота

Создать бота так просто!

Просто выполните эти несколько простых шагов или просмотрите документацию здесь.

Настроить доску

Прежде всего убедитесь, что у нас есть все необходимые библиотеки.

Вот список всех библиотек, которые нам понадобятся:

  • Wi-Fi101
  • TelegramBot
  • ArduinoJson
  • Емкостной датчик

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

Чтобы использовать API Telegram, нам сначала нужно загрузить сертификаты на MKR1000. Это применимо к большинству онлайн-сервисов и API!

Загрузите пример Firmware Updater из библиотеки WiFi101 и добавьте api.telegram.org в домены.

Если вы используете веб-редактор Arduino, эта функция еще не реализована, и вам нужно сделать это через Настольное приложение Arduino.

Пусть случится волшебство!

Откройте пример EchoBot из библиотеки TelegramBot, введите свои учетные данные WiFi и токен API, полученный от BotFather, и загрузите!

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

EchoBot и Emoji

Эмодзи повсюду! Мы будем использовать их, чтобы передать нашу любовь и объятия. Использование примера EchoBot - простой способ увидеть, как боты читают ваши смайлы.

К сожалению, бот получает смайлы по-другому. Чтобы отправить смайлик, нам понадобится UNICODE . персонажей.

Например, чтобы отправить смайлик в виде сердца, мы будем использовать: \ U00002764

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

  void loop () {message m =bot.getUpdates (); // Чтение новых сообщений if (m.chat_id! =0) {// Проверяем, есть ли обновления Serial.println (m.text); // выводим полученное сообщение if (m.text =="u2764ufe0f") {// проверяем, получено ли оно эмодзи-сердечком bot.sendMessage (m.chat_id, "\ U00002764"); // Ответим в том же чате смайликом в виде сердца}}}  

Результатом будет:

Емкостной датчик

Хватит Telegram, приступим к созданию собственного емкостного датчика!

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

При максимальной чувствительности датчик начинает ощущать руку или тело в нескольких дюймах от датчика через различные материалы . Спрячем сенсор внутрь подушки!

Загрузите пример эскиза, подключите провода и посмотрите результат на консоли:

  #include  CapacitiveSensor foil =CapacitiveSensor (5,4); // Резистор 10M между контактами 5 и 4, контакт 4 - это контакт датчика, добавьте провод или фольгу setup () {foil.set_CS_AutocaL_Millis (0xFFFFFFFF); // отключение автокалибровки Serial.begin (9600); } void loop () {длинный старт =millis (); long sensor_value =foil.capacitiveSensor (30); Serial.print (millis () - начало); // проверка производительности в миллисекундах Serial.print ("\ t"); // символ табуляции для отладки интервала окон Serial.print (sensor_value); // вывод данных датчика печати Serial.println ("\ t"); // выводим датчик output 3 delay (500); // произвольная задержка для ограничения передачи данных через последовательный порт}  

Подключение и результаты

Мы будем использовать sensor_value как порог для обнаружения объятий!

Сердцебиение

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

Мы будем имитировать сердцебиение с помощью зуммера и нескольких простых строк кода.

  int Buzzer =8; // Пин, прикрепленный к зуммеру void setup () {} void loop () {HeartBeat (); задержка (1000); } void HeartBeat () {тон (Зуммер, 31, 200); // тон (Pin, Note, Duration); задержка (200); тон (зуммер, 31, 400); задержка (200); noTone (зуммер); задержка (1000); }  

Для более сложного использования зуммера и функции тонального сигнала просмотрите примеры раскрывающегося меню и найдите Digital> ToneMelody .

#ProTip:идентификатор чата и групповой чат

Для отправки сообщений боту нужен идентификатор чата.

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

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

Боты общедоступны, все могут отправлять сообщения боту!

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

#ProTip:Рекомендации по использованию Wi-Fi

Wi-Fi может быть сложной задачей. Иногда он просто отключается на несколько секунд без всякой причины. Это может быть проблемой для вашего Arduino, поскольку большую часть времени мы запускаем функцию подключения Wi-Fi только в начале скетча.

Онлайн-сервисы также могут быть сложными:когда Arduino отправляет запрос на сервер (в данном случае Telegram), он ждет ответа. По сотням причин ответ может не прийти, в результате чего Arduino будет зависать в бесконечном цикле.

Чтобы сделать ваш проект более стабильным, вы можете добавить сторожевой таймер .

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

Вы можете использовать эти две библиотеки для добавления сторожевого таймера в свой проект:

  • Адафрут SleepyDog
  • Adafruit ASF Core // необходимо загрузить и установить вручную с Github

Тогда пример EchoBot будет выглядеть так:

  #include  #include  #include  #include  // Инициализируем Wi-Fi-соединение с маршрутизатором char ssid [] ="xxxx"; // SSID вашей сети (имя) char pass [] ="yyyy"; // ваш сетевой ключ // Инициализируем Telegram BOT const char BotToken [] ="xxxx"; Клиент WiFiSSLClient; Бот TelegramBot (BotToken, клиент); void setup () {Serial.begin (115200); while (! Serial) {} delay (3000); // пытаемся подключиться к сети Wi-Fi:Serial.print ("Подключение к Wi-Fi:"); Serial.println (ssid); while (WiFi.begin (ssid, pass)! =WL_CONNECTED) {Serial.print ("."); задержка (500); } Serial.println (""); Serial.println («WiFi подключен»); bot.begin (); Watchdog.enable (10000); // устанавливаем таймер на 10 секунд} void loop () {Watchdog.reset (); // если эта функция не будет вызвана в течение 10 секунд, плата сбросит себя message m =bot.getUpdates (); // Чтение новых сообщений if (m.chat_id! =0) {// Проверяет наличие обновлений Serial.println (m.text); bot.sendMessage (m.chat_id, m.text); // Ответ в том же чате с тем же текстом} else {Serial.println ("нет нового сообщения"); }}  

Код

Полный набросок

Схема


Производственный процесс

  1. 9 шагов к ковке ножа:все, что вам нужно знать
  2. Как вы планируете спецификацию материалов (BOM)?
  3. Где строить?
  4. 3 лучших способа маркировки деталей, которые вы должны знать
  5. Что такое Микрометр? | Как вы читаете микрометр
  6. Горизонтальное обрабатывающее оборудование, которое может вам понадобиться
  7. Зачем нужен слесарь-механик?
  8. Все виды устройств для удаления заусенцев для вас
  9. Вы слышали о белом чугуне?
  10. Все, что вам нужно знать о Plunge EDM