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

Liebe dich Kissen

Komponenten und Verbrauchsmaterialien

Arduino MKR IoT Bundle
× 1

Apps und Onlinedienste

Telegramm

Über dieses Projekt

Hinweis:Dieses Tutorial könnte veraltet sein, bitte gehen Sie hier für eine aktuellere Version.

Wir alle wissen, dass es schwierig sein kann, ohne diese besondere Person in Ihrem Leben zu sein, aber was wäre, wenn Sie Liebe und Zuneigung aus der Ferne über das Internet senden könnten, indem Sie einfach ein Kissen umarmen?

Nun, wir können nicht wirklich Umarmungen senden ... aber was wir senden können, ist ein süßes Emoji über eine Messaging-App, ausgelöst durch eine Umarmung eines Kissens.

Wenn du das Ich liebe dich Kissen umarmst Sie werden einen Herzschlag hören, der aus dem Summer im Inneren kommt. Abhängig von der Länge Ihrer Umarmung wird ein anderes Emoji von einem Telegram Bot an den von Ihnen gewählten Chat gesendet.

Bleiben Sie mit diesem umarmbaren Gerät mit Ihrem Liebsten in Kontakt!

Kurz und bündig

In diesem Experiment verwenden wir Aluminiumfolie, um einen kapazitiven DIY-Sensor zu erstellen, der verwendet wird, um Umarmungen zu erkennen.

Um unser Umarmungs-Sendegerät zu erstellen, benötigen wir folgende Komponenten:

  • Summer
  • Aluminiumfolie
  • 1 Widerstand 5 M Ohm
  • Breadboard
  • Drähte

Lernziele

  • Einführung von Telegramm-Bots
  • Kapazielle Sensoren verwalten
  • Telegramm-Bots und Gruppenchats #ProTips
  • Best Practices für WLAN #ProTips

Profi-Tipps sind nützliche, aber nicht unbedingt notwendige Schritte, die das Projekt noch komplexer machen.

Möchten Sie mehr wissen?

Dieses Tutorial ist Teil einer Reihe von Experimenten, die Sie mit dem MKR1000 und dem IoT vertraut machen. Alle Experimente können mit den im MKR IoT Bundle enthaltenen Komponenten erstellt werden.

  • Ich liebe dich Kissen
  • Puzzle-Box
  • Pavlovs Katze
  • Der Nerd
  • Pflanzenkommunikator

Einführung von Telegramm-Bots

Telegram ist eine beliebte Messaging-App für Mobilgeräte und Desktops. Abgesehen davon, dass wir mit unseren Freunden chatten können, können wir damit auch praktische und leistungsstarke Chat-Bots erstellen!

Ein Chat-Bot ist nichts anderes als ein Kontakt, mit dem man chatten kann, sondern eine Person dahinter, eine Maschine, die entsprechend auf den von Ihnen geschriebenen Code antwortet.

Die TelegramBot-Bibliothek für Arduino bietet uns eine einfache Möglichkeit, die Logik hinter dem Chat-Bot zu implementieren.

Erstelle deine beiden

Einen Bot zu erstellen ist so einfach!

Folgen Sie einfach diesen wenigen einfachen Schritten oder werfen Sie einen Blick in die Dokumentation hier.

Das Board einrichten

Stellen Sie zunächst sicher, dass wir alle benötigten Bibliotheken haben.

Hier ist die Liste aller Bibliotheken, die wir benötigen:

  • WiFi101
  • TelegramBot
  • ArduinoJson
  • Kapazitiver Sensor

Sie können sie ganz einfach installieren, indem Sie diese einfache Anleitung befolgen.

Um die API von Telegram nutzen zu können, müssen wir zuerst die Zertifikate auf den MKR1000 hochladen. Dies gilt für die meisten Onlinedienste und APIs!

Laden Sie das Firmware Updater-Beispiel aus der WiFi101-Bibliothek hoch und fügen Sie api.telegram.org zu den Domänen hinzu.

Wenn Sie den Arduino Web Editor verwenden, ist diese Funktion noch nicht implementiert und Sie müssen dies über die Arduino Desktop-Anwendung.

Lass die Magie geschehen!

Öffnen Sie das EchoBot-Beispiel aus der TelegramBot-Bibliothek, geben Sie Ihre WLAN-Anmeldeinformationen und das API-Token ein, das Sie vom BotFather erhalten haben, und laden Sie es hoch!

Du hast gerade einen Bot erstellt, der alle deine Nachrichten wiedergibt.

EchoBot und Emoji

Emojis sind überall! Wir werden sie benutzen, um unsere Liebe und Umarmungen zu senden. Anhand des EchoBot-Beispiels können Sie ganz einfach sehen, wie die Bots Ihre Emojis lesen.

Leider empfängt der Bot die Emojis nicht auf dieselbe Weise wie beim Senden. Um ein Emoji zu senden, müssen wir UNICODE verwenden Zeichen.

Um beispielsweise ein Herz-Emoji zu senden, verwenden wir:\U00002764

Die vollständige Liste der Unicode-Emoji-Codes finden Sie hier. Um einen Bot zu erstellen, der auf ein Herz-Emoji mit einem anderen Herz-Emoji antwortet, verwenden wir einen Code wie diesen:

void loop() { Nachricht m =bot.getUpdates(); // Neue Nachrichten lesen if ( m.chat_id !=0 ) { // Überprüfen Sie, ob es einige Updates gibt Serial.println (m.text); // die empfangene Nachricht ausgeben if(m.text =="u2764ufe0f"){ //überprüfen, ob ein Herz-Emoji empfangen wurde bot.sendMessage(m.chat_id, "\U00002764"); // Antworten Sie auf denselben Chat mit dem Herz-Emoji } } }  

Das Ergebnis wird sein:

Kapazitiver Sensor

Genug mit Telegram, lasst uns mit dem Bau unseres kapazitiven DIY-Sensors beginnen!

Die CapacitiveSensor-Bibliothek verwandelt zwei oder mehr Arduino-Pins in einen kapazitiven Sensor, der die elektrische Kapazität des menschlichen Körpers erfassen kann. Für den Sensoraufbau sind lediglich ein mittel- bis hochohmiger Widerstand und ein Stück Aluminiumfolie erforderlich.

Bei seiner höchsten Empfindlichkeit beginnt der Sensor, eine Hand oder einen Körper nur wenige Zentimeter vom Sensor entfernt und durch verschiedene Materialien zu erkennen . Wir werden unseren Sensor im Kissen verstecken!

Laden Sie die Beispielskizze hoch, schließen Sie die Drähte an und sehen Sie sich das Ergebnis auf der Konsole an:

#include  CapacitiveSensor Folie =CapacitiveSensor(5,4); // 10M Widerstand zwischen Pins 5 &4, Pin 4 ist Sensorpin, fügen Sie einen Draht und oder ein Foilvoid-Setup hinzu () {Foil.set_CS_AutocaL_Millis (0xFFFFFFFF); // Autokalibrierung ausschalten Serial.begin (9600); aufrechtzuerhalten. Void Schleife () { langer Start =Millis (); langer sensor_value =folie.kapazitiverSensor (30); Serial.print (millis () - starten); // Leistung in Millisekunden überprüfen Serial.print ("\t"); // Tabulatorzeichen für Debug-Fensterabstand Serial.print (sensor_value); // Drucksensorausgabe Serial.println("\t"); // Drucksensorausgang 3 Verzögerung (500); // willkürliche Verzögerung, um Daten auf den seriellen Port zu beschränken}  

Verkabelung und Ergebnisse

Wir verwenden sensor_value als Schwelle, um Umarmungen zu erkennen!

Der Herzschlag

Je länger du dich umarmst, desto mehr Herzschläge hörst du. Je mehr das Herz schlägt, desto mehr Liebe sendest du (und auch verschiedene Emoji).

Wir emulieren den Klang eines Herzschlags mit einem Summer und ein paar einfachen Codezeilen.

int Summer =8; // Pin an den Summer angeschlossen Void setup () {} Void loop () { HeartBeat (); Verzögerung (1000); aufrechtzuerhalten. Void HeartBeat () { Ton (Summer, 31, 200); // Ton (Pin, Note, Dauer); Verzögerung (200); Ton (Summer, 31, 400); Verzögerung (200); kein Ton (Summer); Verzögerung (1000); }  

Für eine komplexere Verwendung des Summers und der Tone-Funktion sehen Sie sich die Dropdown-Menü-Beispiele an und suchen Sie nach Digital> ToneMelody

#ProTip:Chat-ID und Gruppenchat

Um Nachrichten zu senden, benötigt ein Bot eine Chat-ID.

Die Chat-ID ist die eindeutige Kennung eines Chats zwischen einer Person und einem Bot. Um den Bot dazu zu bringen, Nachrichten an eine bestimmte Person zu senden, muss diese Person zuerst eine SMS an den Bot senden und die Chat-ID dieses bestimmten Chats speichern.

In diesem Projekt antwortet der Bot nur der allerletzten Person, die ihm geschrieben hat, egal wer das war.

Die Bots sind öffentlich, jeder kann einem Bot eine SMS senden!

Wenn Sie den Bot in einen Gruppenchat aufnehmen möchten, müssen Sie den Datenschutzmodus deaktivieren, damit der Bot alle Nachrichten lesen kann, da er sonst nur Befehle erkennen kann, die mit /: . beginnen

#ProTip:Best Practices für WLAN

WLAN kann schwierig sein. Manchmal schaltet es sich scheinbar ohne Grund für einige Sekunden aus. Dies könnte ein Problem für Ihr Arduino sein, da wir die WiFi-Verbindungsfunktion die meiste Zeit nur am Anfang des Sketches ausführen.

Auch Online-Dienste können knifflig sein. Wenn der Arduino eine Anfrage an einen Server (in diesem Fall Telegramm) sendet, wartet er auf eine Antwort. Aus Hunderten von Gründen kann eine Antwort nicht ankommen, wodurch das Arduino in einer Endlosschleife gehalten wird.

Um Ihr Projekt stabiler zu machen, können Sie einen Watchdog hinzufügen.

Ein Watchdog ist ein Timer, der regelmäßig aktualisiert werden muss, sonst startet er das Board neu.

Sie können diese beiden Bibliotheken verwenden, um Ihrem Projekt einen Watchdog hinzuzufügen:

  • Adafruit SleepyDog
  • Adafruit ASF Core // muss manuell von Github heruntergeladen und installiert werden

Das EchoBot-Beispiel sieht dann so aus:

#include  #include  #include  #include  // Wifi-Verbindung zum Router initialisieren char ssid[] ="xxxx"; // Ihre Netzwerk-SSID (Name) char pass[] ="yyyy"; // Ihr Netzwerkschlüssel // Telegramm BOT initialisieren const char BotToken[] ="xxxx"; WiFiSSLClient-Client; TelegramBot-Bot (BotToken, Client); Void setup () { Serial.begin (115200); while (!Seriell) {} delay(3000); // Versuch, eine Verbindung zum Wifi-Netzwerk herzustellen:Serial.print ("Connecting Wifi:"); Serial.println (ssid); while (WiFi.begin(ssid, pass) !=WL_CONNECTED) {Serial.print("."); Verzögerung (500); } Serial.println(""); Serial.println ("WiFi verbunden"); bot.begin(); Watchdog.enable(10000); // setze den Timer auf 10 Sek. aufrechtzuerhalten. Void loop () { Watchdog.reset (); // Wenn diese Funktion nicht innerhalb von 10 Sekunden aufgerufen wird, setzt sich das Board selbst zurück message m =bot.getUpdates(); // Neue Nachrichten lesen if ( m.chat_id !=0 ) {// Überprüft, ob Updates vorhanden sind Serial.println (m.text); bot.sendMessage(m.chat_id, m.text); // Auf denselben Chat mit demselben Text antworten} else { Serial.println("keine neue Nachricht"); } }  

Code

Vollständige Skizze

Schaltpläne


Herstellungsprozess

  1. 9 Schritte zum Schmieden eines Messers:Alles, was Sie wissen müssen
  2. Wie plant man eine Stückliste (BOM)?
  3. Wo soll gebaut werden?
  4. Was ist Mikrometer? | Wie liest man ein Mikrometer ab
  5. Die horizontale Bearbeitungsausrüstung, die Sie möglicherweise benötigen
  6. Warum brauchen Sie einen mechanischen Hüttenarbeiter?
  7. Alle Arten von Entgrateinheiten für Sie
  8. Haben Sie schon von weißem Gusseisen gehört?
  9. Alles, was Sie über Taucherodieren wissen müssen
  10. Warum brauchen Sie eine kleine Servopresse?