Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

IoT Liebeskissen: Ferne Umarmungen mit Arduino MKR Bundle

Komponenten und Zubehör

Komponente Beschreibung Anzahl
Arduino MKR IoT Bundle Enthält MKR1000, Sensoren, Aktoren, Breadboard, Kabel 1

Apps und Online-Dienste

Über dieses Projekt

Hinweis: Dieses Tutorial könnte veraltet sein. Aktuellere Version hier.

Getrennt von einem geliebten Menschen zu sein ist schwer. Was, wenn man Liebe und Zuneigung per Internet senden könnte, indem man einfach ein Kissen umarmt? Echte Umarmungen lassen sich nicht übertragen, aber man kann ein süßes Emoji per Messaging-App senden, ausgelöst durch das Umarmens des Kissens.

Beim Umarmen des I Love You Pillow ertönt ein Herzschlag-Sound vom Summer im Inneren. Je nach Umarmungsdauer sendet ein Telegram-Bot ein anderes Emoji an einen gewählten Chat.

Bleiben Sie mit Ihrem Lieblingsmenschen in Kontakt durch dieses umarmbare Gerät!

Kurzfassung

Wir nutzen Alufolie als DIY-kapazitiven Sensor zur Umarmungserkennung.

Benötigte Komponenten:

Animationen und Schaltbilder sind im Originalprojekt enthalten.

Lernziele

Pro Tips sind nützlich, aber nicht zwingend nötige Schritte, die Komplexität hinzufügen.

Mehr erfahren?

Dieses Tutorial ist Teil einer Experimentreihe zum Kennenlernen von MKR1000 und IoT. Alle Experimente lassen sich mit dem MKR IoT Bundle bauen:

Telegram Bots einführen

Telegram ist eine beliebte Messaging-App für Mobil und Desktop. Neben Chats mit Freunden erlaubt es leistungsstarke Chat-Bots! Ein Bot ist ein Kontakt, der statt einer Person maschinell per Code antwortet. Die TelegramBot-Bibliothek für Arduino erleichtert die Logik-Implementierung.

Eigenen Bot erstellen

Bot-Erstellung ist einfach:

  1. Mit @BotFather chatten
  2. /newbot Befehl senden
  3. Namen und Benutzernamen vergeben
  4. API-Token erhalten und sicher aufbewahren

Screenshots der BotFather-Schritte sind im Originalprojekt enthalten.

Board einrichten

Zuerst alle nötigen Bibliotheken installieren:

Installation per Bibliotheksverwalter. Für Telegram API müssen Zertifikate auf MKR1000 hochgeladen werden (gilt für die meisten Online-Dienste/APIs). Firmware Updater Beispiel aus WiFi101 Bibliothek öffnen, api.telegram.org zu Domains hinzufügen. Im Arduino Web Editor noch nicht implementiert → Desktop-App nutzen.

Bilder zum Zertifikat-Upload sind im Originalprojekt enthalten.

EchoBot-Beispiel aus TelegramBot-Bibliothek öffnen, WLAN-Zugangsdaten und API-Token eintragen, hochladen! Bot erstellt, der alle Nachrichten echo-t.

EchoBot und Emojis

Emojis überall! Wir nutzen sie für Liebe und Umarmungen. EchoBot-Beispiel zeigt, wie Bots Emojis empfangen.

Screenshot der Emoji-Empfang ist im Originalprojekt enthalten.

Wichtig: Empfang und Senden von Emojis unterscheiden sich. Zum Senden Unicode-Zeichen nutzen. Herz-Emoji: \U00002764. Vollständige Liste: Unicode Emoji Codes.

Beispiel für Bot, der auf Herz-Emoji mit Herz antwortet:

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

Kapazitiver Sensor

Die CapacitiveSensor-Bibliothek macht zwei Arduino-Pins zu einem kapazitiven Sensor, der die elektrische Kapazität des menschlichen Körpers erfasst. Benötigt: mittelgroßer bis großer Widerstand und Alufolie. Bei maximaler Empfindlichkeit erkennt der Sensor Hand/Körper in Zentimeter-Distanz und durch Materialien hindurch. Sensor wird im Kissen versteckt!

Beispiel-Sketch hochladen, verdrahten, Serielle Ausgabe beobachten:

#include <CapacitiveSensor.h>
CapacitiveSensor foil = CapacitiveSensor(5,4); // 10M Widerstand zwischen Pin 5 & 4, Pin 4 ist Sensor
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);
}

Verdrahtung und Serielle Ausgabe sind im Originalprojekt als Bilder enthalten.

sensor_value als Schwellenwert für Umarmungserkennung nutzen.

Der Herzschlag

Länger umarmen → mehr Herzschläge hören → mehr Liebe senden (verschiedene Emojis). Herzschlag-Sound per Summer emulieren:

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

Für komplexere Buzzer-Nutzung: Beispiele → Digital → ToneMelody.

#ProTip: Chat-ID und Gruppenchat

Bot benötigt Chat-ID zum Senden. Eindeutiger Bezeichner eines Chats zwischen Person und Bot. Person muss Bot zuerst anschreiben, dann Chat-ID speichern. In diesem Projekt antwortet Bot nur der letzten Person, die ihn angeschrieben hat. Bots sind öffentlich – jeder kann sie anschreiben!

Für Gruppenchat: Privacy Mode deaktivieren, damit Bot alle Nachrichten liest (nicht nur /-Befehle).

Screenshots zur BotFather-Konfiguration sind im Originalprojekt enthalten.

#ProTip: WLAN Best Practices

WLAN kann tricky sein – kurzzeitige Ausfälle ohne Grund. Problem: WLAN-Verbindung oft nur im Setup hergestellt. Online-Dienste können antworten nicht liefern → Arduino in Endlosschleife.

Lösung: Watchdog-Timer. Muss periodisch zurückgesetzt werden, sonst Board-Reset. Bibliotheken:

EchoBot mit 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); // 10 Sek. Timer
}
void loop() {
  Watchdog.reset(); // Nicht aufrufen → Reset nach 10 Sek.
  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

Vollständiger Sketch

Der vollständige Sketch ist im Originalprojekt als Datei enthalten.

Schaltplan

Schaltplan-Bild ist im Originalprojekt enthalten.

Herstellungsprozess

  1. Messerschmieden meistern: 9 Experten-Schritte für langlebige Klingen
  2. BOM-Planung meistern: Schritt-für-Schritt zur Optimierung Ihrer Produktkosten
  3. Den richtigen Entwicklungsstandort wählen: Makerspaces, Acceleratoren, Fertigungspartner
  4. Mikrometer: Aufbau, Typen, Anwendung & Ablesen erklärt
  5. Unverzichtbare Horizontalbearbeitungszentren für hochpräzise Fertigung
  6. Vorteile mechanischer Eisenarbeiter für präzise Metallbearbeitung
  7. Entgratungsanlagen: Technologien, Auswahl & Effizienz im Fertigungsprozess
  8. Weißguss (White Cast Iron): Eigenschaften, Gefüge, Anwendungen & Herstellung
  9. Senkerodieren (Plunge EDM) meistern: Der ultimative Leitfaden zur präzisen Elektroerosion
  10. Vorteile kleiner Servopressen für präzises Metallumformen entdecken