Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Oreiller Connecté « I Love You » : Câlins à Distance avec Arduino MKR

Composants et fournitures

Composant Description Quantité
Arduino MKR IoT Bundle Inclut MKR1000, capteurs, actionneurs, composants passifs 1

Applications et services en ligne

À propos du projet

Note : Ce tutoriel peut être obsolète, consultez ici pour une version plus récente.

L'éloignement d'un être cher est difficile. Et si vous pouviez envoyer amour et affection à distance via Internet en serrant simplement un oreiller ? On ne peut pas vraiment envoyer de câlins, mais on peut envoyer un émoji via une application de messagerie, déclenché par l'étreinte de l'oreiller.

Quand vous serrez l'Oreiller « Je t'aime », vous entendez un battement de cœur provenant du buzzer interne. Selon la durée de l'étreinte, un émoji différent est envoyé par un Bot Telegram vers la conversation de votre choix.

Restez en contact avec vos proches grâce à cet objet câlin !

En résumé

On utilise du papier aluminium pour créer un capteur capacitif DIY détectant les étreintes.

Composants nécessaires :

Objectifs d'apprentissage

Les Pro Tips ajoutent une couche de complexité utile mais non indispensable.

En savoir plus

Ce tutoriel fait partie d'une série d'expériences pour se familiariser avec le MKR1000 et l'IoT. Tous les projets utilisent les composants du MKR IoT Bundle :

Introduction aux Bots Telegram

Telegram est une appli de messagerie populaire (mobile/desktop) qui permet de créer de puissants chat-bots. Un chat-bot est un contact avec qui on discute, mais c'est une machine qui répond selon le code programmé. La bibliothèque TelegramBot pour Arduino simplifie l'implémentation.

Créer votre Bot

C'est très simple :

  1. Ouvrir Telegram, chercher @BotFather.
  2. Envoyer /newbot, suivre les instructions (nom, nom d'utilisateur).
  3. BotFather fournit un jeton API (token) — à garder secret.
  4. Optionnel : définir description, photo, commandes.

Configurer la carte

Bibliothèques requises : WiFi101, TelegramBot, ArduinoJson, CapacitiveSensor. Installables via le gestionnaire de bibliothèques.

Pour utiliser l'API Telegram, il faut uploader les certificats sur le MKR1000 (valable pour la plupart des services en ligne). Ouvrir l'exemple Firmware Updater de WiFi101, ajouter api.telegram.org aux domaines. Non disponible sur Arduino Web Editor, utiliser l'application Desktop.

Ouvrir l'exemple EchoBot de TelegramBot, renseigner identifiants WiFi et token API, téléverser. Vous avez un bot qui répète vos messages.

EchoBot et émojis

Les émojis sont reçus sous forme de codes Unicode différents de ceux pour l'envoi. Pour envoyer un cœur : \U00002764. Liste complète des codes Unicode ici. Exemple de bot répondant à un cœur par un cœur :

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");
    }
  }
}

Capteur capacitif

La bibliothèque CapacitiveSensor transforme deux broches Arduino en capteur capacitif sensible à la capacité électrique du corps humain. Il faut une résistance moyenne/forte (5-10 MΩ) et un morceau de papier aluminium. Au maximum de sensibilité, le capteur détecte une main ou un corps à plusieurs centimètres, à travers divers matériaux. On cache le capteur dans l'oreiller.

Exemple de test :

#include <CapacitiveSensor.h>
CapacitiveSensor foil = CapacitiveSensor(5,4); // 10M entre broches 5 et 4, broche 4 = capteur
void setup() {
  foil.set_CS_AutocaL_Millis(0xFFFFFFFF);
  Serial.begin(9600);
}
void loop() {
  long start = millis();
  long sensor_value = foil.capacitiveSensor(30);
  Serial.print(millis() - start); Serial.print("\t");
  Serial.print(sensor_value); Serial.println("\t");
  delay(500);
}

La valeur sensor_value servira de seuil pour détecter les étreintes.

Le battement de cœur

Plus l'étreinte est longue, plus on entend de battements, plus on envoie d'amour (émojis différents).

Émulation d'un battement cardiaque avec buzzer :

int Buzzer = 8;
void setup() {}
void loop() { HeartBeat(); delay(1000); }
void HeartBeat() {
  tone(Buzzer, 31, 200); delay(200);
  tone(Buzzer, 31, 400); delay(200);
  noTone(Buzzer); delay(1000);
}

Pour des mélodies complexes, voir exemples Arduino Digital > ToneMelody.

#ProTip : Chat-id et discussion de groupe

Pour envoyer des messages, le bot a besoin d'un chat-id (identifiant unique d'une conversation). Il faut que la personne écrive d'abord au bot pour récupérer son chat-id. Le bot répondra au dernier interlocuteur. Les bots sont publics. Pour inclure le bot dans un groupe, désactiver le mode « privacy » (sinon il ne voit que les commandes commençant par /).

#ProTip : Bonnes pratiques WiFi

Le WiFi peut se couper brièvement. Les services en ligne peuvent ne pas répondre, bloquant l'Arduino. Pour plus de robustesse, ajouter un watchdog (minuterie qui redémarre la carte si non réinitialisée périodiquement). Bibliothèques : Adafruit SleepyDog et Adafruit ASF Core (installation manuelle depuis GitHub). Exemple EchoBot avec watchdog :

#include <WiFi101.h> #include <SPI.h> #include <TelegramBot.h> #include <Adafruit_SleepyDog.h>
char ssid[] = "xxxx"; char pass[] = "yyyy";
const char BotToken[] = "xxxx";
WiFiSSLClient client; TelegramBot bot(BotToken, client);
void setup() {
  Serial.begin(115200); while (!Serial) {} delay(3000);
  Serial.print("Connecting Wifi: "); Serial.println(ssid);
  while (WiFi.begin(ssid, pass) != WL_CONNECTED) { Serial.print("."); delay(500); }
  Serial.println(""); Serial.println("WiFi connected");
  bot.begin(); Watchdog.enable(10000);
}
void loop() {
  Watchdog.reset();
  message m = bot.getUpdates();
  if (m.chat_id != 0) { Serial.println(m.text); bot.sendMessage(m.chat_id, m.text); }
  else { Serial.println("no new message"); }
}

Code

Sketch complet

Le sketch final combine : connexion WiFi + certificats, initialisation BLE/TelegramBot, capteur capacitif (détection étreinte), buzzer (battement cœur), logique d'envoi d'émojis selon durée (seuils sur sensor_value), gestion watchdog. Le code complet est disponible dans le dépôt du projet.

Schémas

Schéma de câblage : MKR1000, résistance 5 MΩ entre broche 5 (envoi) et broche 4 (réception + papier aluminium), buzzer sur broche 8, alimentation via connecteur batterie LiPo du MKR IoT Bundle.

Processus de fabrication

  1. Maîtriser le forgeage de couteaux : 9 étapes expertes pour créer des lames durables
  2. Maîtriser la planification BOM : guide étape par étape pour optimiser vos coûts produit
  3. Choisir le bon site de développement : Makerspaces, Accélérateurs et Partenaires de production
  4. Guide essentiel du marquage de pièces : 3 méthodes éprouvées pour la qualité et la sécurité
  5. Micromètre Expliqué : Comment Lire et Utiliser un Outil de Mesure de Précision
  6. Centres d'usinage horizontaux essentiels pour la fabrication de haute précision
  7. Avantages de l'utilisation d'une cisaille poinçonneuse mécanique pour la fabrication de précision des métaux
  8. Découvrez les meilleures unités d'ébavurage pour chaque besoin de fabrication
  9. Découvrez la fonte blanche : propriétés, utilisations et avantages