Inhaltsverzeichnis:

RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent - Gunook
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent - Gunook

Video: RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent - Gunook

Video: RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent - Gunook
Video: 👩🏼 I Am The Music Man - Singen, Tanzen und Bewegen || Kinderlieder 2024, November
Anonim
Image
Image
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent
RabbitPi - der Alexa-fähige, IFTTT-verbundene, ohrenbetäubende IoT-Assistent

Dies ist ein veralteter 2005er Nabaztag "Smart Rabbit", den ich mit einem Raspberry Pi 3 und einem Adafruit Motor HAT in einen modernen IoT-Assistenten umgebaut habe, mit einem Webcam-Mikrofon und einem Philips Soundshooter-Lautsprecher, der in der niedlichen Originalhülle enthalten ist Knopf initiierte Sprachbefehle über Amazons Sprachdienst Alexa, wobei die Antworten über den integrierten Lautsprecher vorgelesen wurden. Sprachbefehle werden auch verwendet, um IFTTT-Rezepte (If This Then That) auszulösen, um mit anderen mit dem Internet verbundenen Geräten wie Smart Sockets und Mobiltelefonen zu interagieren. Nicht genug? Es löst nicht nur IFTTT-Ereignisse aus, sondern empfängt sie auch über Gmail, indem es die Text-to-Speech-Engine von Ivona verwendet, um E-Mails, Textnachrichten und andere Benachrichtigungen vorzulesen, zum Beispiel Pollenwarnungen oder Benachrichtigungen von einer Heimüberwachungskamera Sie visuelles Feedback mit LEDs und motorisierten Ohren? Oh, und es hat eine V2-Raspberry-Pi-Kamera in seinem Bauch, um sprachaktivierte Selfies auf Twitter hochzuladen. Es ist schwer, die Niedlichkeit des RabbitPi in Worten zu beschreiben, sieh dir das Video an, um es in Aktion zu sehen!

Schritt 1: Eine kurze Geschichte von Smart Rabbits

Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen
Eine kurze Geschichte der intelligenten Kaninchen

Der ursprüngliche Nabaztag "erster intelligenter Hase" wurde 2005 veröffentlicht und als Ambient-Heimassistent in Rechnung gestellt (klingt das bekannt von Amazon & Google?) - wohl das erste "Internet der Dinge" und seiner Zeit in vielerlei Hinsicht voraus. Ich habe gleich einen gekauft. Es stand auf unserem Kaminsims und las tägliche Wettervorhersagen und gelegentliche Benachrichtigungen vor, hatte jedoch nie viel Leistung und verließ sich auf eine WEP-WLAN-Verbindung und proprietäre Software und Server, um seine Text-to-Speech (TTS)-Dienste bereitzustellen. Es ist schwer vorstellbar, aber zu der Zeit gab es nicht so viel, womit es sich verbinden konnte, soziale Medien gab es kaum, Nokia beherrschte die Smartphone-Welt und LED-Glühbirnen waren eine teure Neuheit.

In den kommenden Jahren folgten zwei weitere Versionen, der Nabaztag:Tag und der Karotz, die beide eine verbesserte Funktionalität boten, aber keine Nische auf dem Markt fanden, letztendlich im Stich gelassen durch Hardware- und Softwarebeschränkungen. Schade war, dass die vormals pfiffigen Hasen kaum mehr als Zierde waren, sobald die unterstützenden Server abgeschaltet wurden. Mehrere Community-Projekte versuchten, die Dienste der "offiziellen" Server zu ersetzen, und wir verwendeten "OpenKarotz" eine Zeit lang, aber auch dieses schien vor ein oder zwei Jahren abzusterben, und meine Kaninchen waren still und unbeweglich auf meinen Lautsprechern.

Jedenfalls ist die Geschichtsstunde vorbei! Das Ergebnis ist, dass wir uns gerne an die Präsenz des Nabaztags in unserem Wohnzimmer erinnern, und ich wollte ihn zurück, aber als richtiges modernes IoT-Gerät.

Schritt 2: Nabaztag 2.0

Nabaztag 2.0
Nabaztag 2.0

Inspiriert war ich, endlich den RabbitPi zu starten, als ich im März las, dass dem Raspberry Pi der Sprachdienst Amazon Alexa zur Verfügung gestellt wurde - der Schlüssel dazu war, dass eine Taste zum Aktivieren des "Hörens" benötigt wurde - das passte perfekt zum Nabaztag, da es einen Druckknopf hat, der bündig mit der Oberseite seines glänzenden kleinen Kopfes ist. Ich zerlegte mein Kaninchen und ließ bald den hervorragenden AlexaPi-Code von Sam Machin auf meinem Pi 3 laufen, der durch Drücken des Knopfes des Kaninchens aktiviert wurde. An diesem Punkt war ich vom Bau des AlexaPhone total abgelenkt, sprang aber sofort wieder in den intelligenten Kaninchenbau, als er fertig war. Ich brauchte meinen neuen verbesserten Nabaztag, um mindestens so intelligent wie das Original zu sein, also wollte ich, dass er:

Sprachsuche durchführen und Ergebnisse vorlesen

Benachrichtigungen vorlesen

Bewegen Sie die Ohren und blinken Sie die LEDs

Machen Sie Fotos und erlauben Sie die Fernüberwachung

Interagieren Sie mit intelligenten Steckdosen, Glühbirnen und so weiter

Schritt 3: Bunny Chop

Hase Chop
Hase Chop
Hase Chop
Hase Chop
Hase Chop
Hase Chop
Hase Chop
Hase Chop

Die erste Aufgabe bestand darin, den Nabaztag zu demontieren und zu sehen, welche Teile wiederverwendet werden könnten. Die Ohren sind austauschbar gestaltet und werden nur mit Magneten gehalten, so dass das einfach war, und die Hauptabdeckung wurde nur mit zwei (bizarren dreieckigen) Schrauben gehalten. Dadurch wurden alle Schaltkreise und Komponenten freigelegt, die um eine zentrale Kunststoffsäule herum gebaut waren. Eine Seite hielt den Hauptstromkreis und die LEDs, mit einem Lautsprecher auf der anderen Seite und Motoren / Taster, die oben in der Säule eingebettet sind.

Da ich nur vorhatte, die Motoren zu behalten, schnitt ich die meisten Kabel durch und fing an, Schrauben herauszunehmen. An dieser Stelle habe ich eine echte Überraschung erlebt! Hinter dem "Gehirn"-Schaltkreis des Kaninchens befand sich ein Schlitz über die gesamte Höhe der Säule, der eine PCMCIA-WLAN-Karte in voller Größe enthielt, wie man sie in alten Laptops verwenden würde. Ich schätze, es war damals ein Kompromiss bei Design oder Kompatibilität, aber der Vergleich der Größe mit einem modernen USB-Dongle hat wirklich deutlich gemacht, wie viel Technologie innerhalb von 10 Jahren geschrumpft ist.

Der Rest der Teile ließ sich leicht entfernen, so dass nur die nackte Kunststoff-Stützsäule mit sicherlich viel Platz drumherum blieb?

Schritt 4: Sprechen und Zuhören

Sprechen und Zuhören
Sprechen und Zuhören
Sprechen und Zuhören
Sprechen und Zuhören
Sprechen und Zuhören
Sprechen und Zuhören

Sie können kein sprachgesteuertes sprechendes Kaninchen ohne Lautsprecher und Mikrofon haben, also waren dies eines der ersten Dinge, die ich geklärt habe. Ich musste mich nicht wirklich anstrengen, der Pi scheint in Bezug auf USB-Mikrofone sehr flexibel zu sein und ich habe einfach eine alte MSI StarCam Clip-Webcam für die Eingabe verwendet und die Lautstärke in den Pi-Audioeinstellungen auf Max eingestellt. Um Platz zu sparen, habe ich die Webcam demontiert und das Kameraobjektiv und das Gehäuse weggeworfen. Ich bohrte ein Loch in die Basis, damit das Mikrofon hindurchstecken konnte, und schloss es an den USB des Pi an, wobei die Kabel so sauber wie möglich verlegt wurden.

Ich habe den KitSound MiniBuddy-Lautsprecher im AlexaPhone verwendet, da er sich als sehr effektiv erwiesen hat, aber als ich einen für dieses Projekt kaufte, stellte ich fest, dass das Design geändert wurde und sie nicht mehr über einen Micro-USB-Anschluss aufgeladen wurden! Ich habe mich nach etwas Ähnlichem umgesehen und bin auf den Philips SoundShooter gekommen, eine kleine handgranatenähnliche Einheit. Ich hatte gehofft, es würde ohne Demontage in das Gehäuse passen, aber es war viel zu groß, also kam der Schraubendreher heraus, um es zu demontieren. Ich habe es geschafft, die Lautsprecherkabel dabei zu schnappen, also lötete ich einige Überbrückungskabel ein, um das Wiederverbinden zu erleichtern. Dieses Lautsprecherteil wurde an der gleichen Stelle wie der Originallautsprecher mit dem Gehäuse heißgeklebt, wobei der Stromkreis und die Batterie an dem kleinen Regal darunter befestigt waren.

Im Nachhinein wünschte ich, ich hätte stattdessen nur die Eingeweide eines netzbetriebenen Lautsprecherdocks oder so verwendet, da es nicht ideal ist, den Lautsprecher aufladen zu müssen - trotzdem hält er wirklich lange und klingt großartig, und als Hauptabdeckung hebt sich leicht ab, es ist nicht wirklich ein Show-Stopp-Problem.

Schritt 5: Lesen wie Kaninchen

Lesen wie Kaninchen
Lesen wie Kaninchen
Lesen wie Kaninchen
Lesen wie Kaninchen

Nun, da der Alexa-Teil funktionierte, ging ich zur Lösung des nächsten Problems über, wie würde ich das Kaninchen dazu bringen, Benachrichtigungen vorzulesen? Der Text-to-Speech des ursprünglichen Nabaztags war überraschend gut, obwohl ich mich erinnere, dass er meine SMS-Signoffs (MM) immer als "Millimeter" und die meiner Frau (CM) als "Centimetres" vorgelesen hat - ich wollte eine moderne und natürlich klingende Engine, die Dinge wie das "&"-Symbol richtig interpretieren und einfache Emoticons wie:) verstehen würde.

Wie bei allem auf dem Raspberry Pi gibt es viele verschiedene Optionen, und ich habe mir mehrere angesehen, bevor ich mich für Ivona entschieden habe, die dieselbe zugrunde liegende Engine zu sein scheint, die vom Alexa-Dienst verwendet wird. Es war die beste Option für mich, da es eine Reihe von verfügbaren Stimmen und Konfigurationsoptionen gibt - ein großes Plus war auch, dass Zachary Bears einen praktischen Python-Wrapper für den Dienst, Pyvona, zur Verfügung gestellt hatte.

Um mit Ivona loszulegen, müssen Sie zunächst ein Entwicklerkonto einrichten, dann erhalten Sie wie beim Alexa-Setup Zugangsdaten zur Verwendung in Ihrer Anwendung, in diesem Fall ein Skript zum Auslesen von Benachrichtigungen. Sie dürfen mit einem dieser Konten monatlich 50.000 Suchanfragen durchführen, was für mich sicherlich ausreichend ist.

Das Pyvona-Setup war wirklich unkompliziert, innerhalb von Minuten hatte ich aus dem bereitgestellten Beispiel ein Python-Skript erstellt, das jeden von mir eingegebenen Satz vorliess. Aber das war natürlich nur teilweise die Lösung - ich wollte nicht, dass Ivona hartcodierte vorliest Text, aber dynamische eingehende Benachrichtigungen.

Schritt 6: Sagen Sie was?

Sag was?
Sag was?
Sag was?
Sag was?

Ich hatte jetzt also ein Kaninchen (in Stücken überall auf der Bank), das sprechen konnte, aber es brauchte einen Mechanismus, um Benachrichtigungen zu empfangen und sie zum Vorlesen an den Ivona-Dienst weiterzugeben. Ich habe mir die Möglichkeit von Textnachrichten über einen Online-Dienst oder einen SIM-Kartenadapter sowie Twitter und Dropbox für die Bereitstellung von Textstrings/Dateien angesehen, entschied mich aber schließlich für imaplib, ein Python-basiertes Mittel zur Interaktion mit IMAP-E-Mail-Konten. Ich habe mich hauptsächlich für diese Option entschieden, weil sie sich gut in den IFTTT-Dienst integriert hat. Sie können bei der Formatierung von Benachrichtigungs-E-Mails wirklich kreativ sein. Es bedeutete auch, dass ich E-Mails direkt zum Vorlesen an den RabbitPi senden konnte.

Ich habe online viele Imaplib-Python-Beispiele durchgesehen, und nachdem ich Teile und Teile kombiniert und die imaplib-Dokumentation durchgearbeitet hatte, gelang es mir, ein Skript zu erstellen, das Gmail in regelmäßigen Abständen auf ungelesene Nachrichten überprüfte und je nach Inhalt unterschiedliche Texte auf dem Bildschirm ausdruckte den Betreff der Nachricht. Das war wirklich praktisch, da ich eine "IF"-Anweisung im Code so anpassen konnte, dass sie nur funktioniert, wenn die E-Mail von mir selbst stammt, und dann die Aktion "Drucken" gegen den Code austauschen konnte, der den Ivona-Dienst aufruft.

Ich habe eine ganze Weile damit verbracht, den imaplib- und Pyvona-Code anzupassen, um den Text von E-Mails auszulesen, aber dies stellte sich als äußerst kompliziert heraus - ich lernte bald, dass die wichtigsten E-Mail-Felder (Von, An, Betreff usw.) sehr einfach formatiert sind. Dieser E-Mail-Text kann jedoch auf viele verschiedene Arten strukturiert werden. Am Ende spielte es keine Rolle, ich konnte das erreichen, was ich brauchte, indem ich den E-Mail-Betreff als Feld verwendet habe, aus dem der Benachrichtigungstext gelesen wird.

Ich habe dann das imaplib-Codebeispiel so angepasst, dass es, anstatt nach jeder E-Mail-Prüfung zu stoppen, endlos in einer Schleife läuft, ein paar Mal pro Minute nach E-Mails sucht und alle neuen so gut wie vorliest, wenn sie eintreffen. Dies war zum Testen nützlich, aber in der Praxis würde ich es wahrscheinlich etwas seltener überprüfen. Es ist auch erwähnenswert, dass das Skript das Passwort im Klartext speichert, sodass irgendwann eine Verschlüsselung hinzugefügt werden muss.

Ich bin mir zu 100% sicher, dass dies in Python viel eleganter und effizienter erreicht werden kann, aber es hat Spaß gemacht und es war eine Herausforderung, es überhaupt zum Laufen zu bringen - ich habe diese Woche "Python for Kids" aus der Bibliothek ausgeliehen, damit sich mein Code hoffentlich verbessern wird wie ich mehr lerne.

Mit dem grundlegenden Skript zum Abrufen einer E-Mail und zum Lesen habe ich die zusätzlichen Codebits hinzugefügt, die die Ohren des Kaninchens bewegen und die LEDs beim Lesen der Benachrichtigungen aufleuchten lassen. Der Code, den ich verwendet habe, befindet sich auf GitHub, aber bitte bedenken Sie meinen derzeitigen Mangel an Python-Fähigkeiten!

Schritt 7: Ein HUT für den RabbitPi

Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi
Ein HUT für den RabbitPi

Eines der ikonischsten Dinge am Nabaztag war die Art und Weise, wie er seine Ohren bewegte, wenn eine Benachrichtigung einging. Sie konnten entweder durch manuelles Verschieben oder durch Einstellen einer Position mit der Steuerungssoftware in eine bestimmte Ausrichtung gebracht werden - mein Ziel war nur damit sie sich bewegen.

Ich hatte noch keine Motoren mit dem Raspberry Pi verwendet, daher war dies ein weiteres neues Forschungsthema für mich - zuerst musste ich herausfinden, mit welcher Art von Motoren ich es zu tun hatte, ich wusste nur, dass es 2 Motoren mit jeweils 2 Drähten gab. Beim Online-Lesen kam ich zu dem Schluss, dass es sich um einfache Gleichstrommotoren und nicht um Schrittmotoren handeln muss, eine Tatsache, die durch dieses fantastisch hilfreiche anweisbare "Hack the Nabaztag" von Liana_B bestätigt wird, von dem ich wünschte, ich hätte einen Monat früher gelesen.

Auch hier gibt es dank der Flexibilität des Pi viele verschiedene Möglichkeiten, die Motoren zu steuern, aber ich entschied mich für ein Adafruit DC & Stepper Motor HAT Board. Ich habe bereits Adafruit-Bildschirme und -Schmuckstücke verwendet und liebe die detaillierten Anweisungen und Beispiele, die standardmäßig enthalten sind.

Die Verwendung einer Platine mit dem HAT-Standard (Hardware Attached on Top) bedeutete, dass der Motorcontroller sauber auf dem Pi sitzt und nur minimalen Platz benötigt, und da er die I2C-Schnittstelle verwendet, ließ er die GPIO-Pins frei, die ich für Alexa / Clap benötigte Taste und LEDs.

Wie erwartet war das Zusammenlöten des HAT wirklich einfach, und ich hatte es bald auf dem PI montiert und an die beiden Ohrmotoren angeschlossen. Ich hatte geplant, die Motoren von einer USB-Powerbank aus zu betreiben, damit ich nur einen einzigen Netzstecker benötige, aber dies stellte sich als nicht genug Grunzen heraus, es würde nicht einmal die "Working" -LED am HAT aufleuchten. Ich entschied mich stattdessen, einen Gleichstromadapter zu verwenden, um den HAT und die Ohren zu betreiben. Ich hatte praktischerweise einen dieser universellen Adapter mit austauschbaren Spitzen zur Hand. Was ich nicht hatte, war eine DC-Buchse zum Anschluss des Adapters an den HAT. Ich war kurz davor, nach Norwich Maplin (wieder) abzureisen, als ich mich vom Teardown daran erinnerte, dass das ursprüngliche Stromkabel des Nabaztags ein Standard-DC-Stecker war - daher konnte ich einfach die Original-Steckdose mit dem HAT neu verkabeln - ordentlich! Am Ende habe ich auch das original Nabaztag-Netzteil wiederverwendet, da es genau die richtige Leistung lieferte.

Nachdem alles verkabelt und eine vernünftige Spannung ausgewählt war, habe ich versuchsweise das im DC Motor Hat enthaltene Python-Beispiel ausgeführt, einen Beispielcode, der die Geschwindigkeit und Richtung des Motors ständig ändert, um die verschiedenen Steuerungsoptionen zu veranschaulichen. Ich war so aufgeregt, als es funktionierte, mein erster Pi-gesteuerter Motor! Aber dann bemerkte ich etwas - ein wirklich lautes, hohes Winseln, als würde jemand mit einem nassen Finger um ein Weinglas streichen. Das war überhaupt nicht gut, ich wollte, dass sich die Ohren bewegen, während Benachrichtigungen gelesen wurden, und obwohl das Heulen nicht ohrenbetäubend war, war es wirklich wahrnehmbar. Ich habe verschiedene Spannungen probiert, aber keine Änderung. Als ich mich an Google wandte, fand ich heraus, dass dies aufgrund von PWM (Pulsweitenmodulation) passieren kann und dass eine Abhilfe darin bestehen kann, kleine Kondensatoren über die Motorklemmen zu löten. Mit Blick auf die Motoren waren diese bereits vorhanden. Ich habe auch mit dem Ändern der PWM-Frequenz experimentiert, aber immer noch keine Änderung. Nach einigem Experimentieren stellte ich fest, dass das Heulen nur auftrat, wenn die Geschwindigkeit des Motors durch den Code von niedrig auf hoch geändert wurde - so dass das Einstellen auf eine konstante hohe Geschwindigkeit das Heulen vollständig eliminierte - puh!

Ich habe ein paar Test-Python-Skripte basierend auf den Adafruit-Beispielen erstellt, eines für die Bewegung während der Benachrichtigungen und ein weiteres, um die Ohren beim Start eine vollständige "Schaltung" ausführen zu lassen, mit dem Ziel, den Arbeitscode von diesen in die Hauptskripte zu kopieren, die verwendet werden, um die Interaktionen mit Alexa und Gmail/Ivona.

Schritt 8: Kamera und Tweaks

Kamera und Optimierungen
Kamera und Optimierungen
Kamera und Optimierungen
Kamera und Optimierungen
Kamera und Optimierungen
Kamera und Optimierungen

Vor dem Zusammenbau habe ich alles getestet. Wo immer möglich, habe ich bei diesem Build Überbrückungskabel verwendet, um die einzelnen Komponenten miteinander zu verbinden. Ich habe auch Wert darauf gelegt, ein Anschlussdiagramm zu erstellen, das zeigt, welche Kabelfarben wohin geführt haben. Überbrückungskabel sind ausgezeichnet, aber manchmal leicht zu entfernen, wenn Komponenten auf engstem Raum untergebracht werden!

Ich habe mich ziemlich weit in den Build hinein entschieden, auch ein Pi-Kamera-Modul zu integrieren, die 8MP-Version 2 war gerade veröffentlicht worden und als etwas anderes für mich neu dachte ich, es wäre eine gute Ergänzung. Die neueste Version des Karotz-Hasens hatte eine Webcam im Bauch, aber das funktionierte nie wirklich gut. Ich dachte, die Pi-Kamera würde Spaß machen für sprachaktivierte Selfies und vielleicht sogar für die Fernüberwachung, wenn der Pi den Code ausführen könnte zur gleichen Zeit wie alles andere.

Ich habe eine Halterung für die Kamera aus kunststoffummanteltem Meccano gebaut und zuerst in das Gehäuse eingebaut, dann sehr sorgfältig ausgemessen, wo ich das Senkloch im Gehäuse bohren musste. Dies war definitiv ein Fall von "zweimal geschnitten einmal messen", da ein Loch an der falschen Stelle eine Katastrophe gewesen wäre. Zum Glück kam es aus dem Totpunkt heraus und war nur ein bisschen zu hoch, so dass ich das ausgleichen konnte, indem ich Unterlegscheiben zwischen der Kamerahalterung und der Basis einfügte.

Ich habe an dieser Stelle auch ein Pimoroni Dual Micro-USB-Stromkabel hinzugefügt - dies gab mir eine schöne Micro-USB-Buchse auf der Rückseite des Gehäuses und einen zweiten Netzstecker. Ich beabsichtigte, den zusätzlichen Stecker zu verwenden, um den Akku des Lautsprechers aufzuladen, und brach ihn ein, damit ich den ursprünglichen "Stumm"-Schalter des Nabaztags anschließen konnte, um das Laden zu steuern.

Schritt 9: Was ist Cookin' Doc? IFTTT-Rezepte

Was ist Cookin' Doc? IFTTT-Rezepte!
Was ist Cookin' Doc? IFTTT-Rezepte!
Was ist Cookin' Doc? IFTTT-Rezepte!
Was ist Cookin' Doc? IFTTT-Rezepte!

Das Erstaunliche am Bau eines IoT-Geräts ist derzeit die schiere Anzahl der verfügbaren Webdienste, und der IFTTT-Dienst (If This Then That) leistet hervorragende Arbeit, um diese alle in einem einfachen und funktionalen Paket zusammenzufassen. Wenn Sie es noch nicht verwendet haben, ist es ein Online-Dienst, und sobald Sie sich angemeldet haben, können Sie all Ihre anderen webbasierten Inhalte wie Gmail, Facebook, Twitter und (Sie haben es erraten) Amazon Alexa damit verbinden. Es steht ein ganzes Sammelsurium an Diensten zur Auswahl, darunter auch Steuerungsoptionen für intelligente Geräte wie Glühbirnen, Thermostate und Steckdosen.

Die IFTTT-Regeln sind in "Rezepten" aufgebaut - ähnlich wie eine Outlook-Regel oder eine IF-Anweisung in SQL oder Visual Basic, zum Beispiel habe ich ein Rezept, das sagt "WENN mich jemand auf einem Foto auf Facebook markiert DANN schick mir eine E-Mail mit dem Betreff "Heilige Guacamole, [Name der Person markieren] hat dich gerade in einem Facebook-Foto markiert" - da mir dieses von meiner eigenen Adresse zugeschickt wird, liest der RabbitPi dann den Betreff-Text vor.

Eine weitere tolle Anwendung von IFTTT ist mit dem Alexa-Sprachdienst - für den IF-Teil eines Rezepts können Sie einen Satz erstellen, zum Beispiel "der Laser" und wenn Sie dann zu Alexa sagen "Trigger the laser", leitet sie die Anfrage an IFTTT, das den DANN-Teil des Rezepts auslöst, in diesem Fall eine Remote-Buchse aktiviert, die mit einem Disco-Laser verbunden ist.

Es geht sogar über "intelligente Dinge" hinaus - wenn Sie IFTTT auf Ihrem Telefon installiert haben (meine ist die Android-Version), können Sie in beide Richtungen damit interagieren, ein im Video verwendetes Rezept lautet: "IF I say "Trigger Chas & Dave" zu Alexa, DANN spiele das spezifische Lied "Rabbit" auf meinem Android-Handy ab. Es funktioniert auch umgekehrt - die AnyMote Universal-Fernbedienungs-App auf meinem Handy kann so angepasst werden, dass eine bestimmte Taste mit dem "IF"-Teil auslöst eines Rezepts - also habe ich eine Schaltfläche auf meinem Bildschirm, die den RabbitPi dazu veranlasst, ein Selfie zu machen und es auf Twitter hochzuladen.

Eine weitere Funktion ermöglicht es dem RabbitPi, meine Textnachrichten vorzulesen, auf meinem Handy habe ich ein Rezept "WENN ich eine neue SMS-Nachricht erhalte, DANN sende mir eine E-Mail mit folgendem Betreff "Hey! [Textabsender] sagt [Textnachricht]"

Es ist einfach zu bedienen, macht viel Spaß und funktioniert gut, Benachrichtigungen werden sehr schnell hin- und hergereicht, besonders an den WeMo Insight-Switch, den ich habe, was so ziemlich sofort ist. Mit IFTTT und dem RabbitPi ist die Verbindung von Dingen und Diensten wirklich einfach.

Schritt 10: Montage & Prüfung

Montage & Prüfung
Montage & Prüfung
Montage & Prüfung
Montage & Prüfung
Montage & Prüfung
Montage & Prüfung

Jetzt kam der knifflige Teil - alle Komponenten in das Gehäuse zu stopfen! Ich war mir ziemlich sicher, dass alles passen würde, aber der eigentliche Zusammenbau war wirklich fummelig, ich benutzte einige chirurgische Instrumente und Pinzetten, um Kabel durch winzige Lücken zu stecken.

Nachdem alles fest montiert war, habe ich noch einige selbstklebende Kabelbinderfüße angebracht, damit die vielen Drähte ordentlich zusammengezogen werden können - das war wirklich wichtig, da ich beim Zusammenbauen des Gehäuses nicht versehentlich eines davon trennen wollte.

Schritt 11: Bereit Kaninchen?

Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?
Bereit Kaninchen?

Nachdem die gesamte physische Gebäudeseite erledigt war, war es an der Zeit, "das Kabel zu durchtrennen", den RabbitPi bequem von seinem Ethernet-Kabel, Monitor und Tastatur in der Werkstatt zu entfernen, damit ich den Code an anderer Stelle über SSH beenden konnte (Das drahtlose Signal ist wirklich schwach da drin!)

Auf dem Schreibtisch in meinem Büro habe ich den Hasen hochgefahren und - überhaupt keine Wi-Fi-Verbindung, nichts. Ich wusste, dass es ein Signal geben musste, da mein Telefon einwandfrei funktionierte - gab es ein Problem mit dem Netzwerkadapter auf dem Pi 3, von dem ich noch nichts gehört hatte? Ein kurzes Googeln hat mir mitgeteilt, dass der Pi 3 nur dann ein WLAN-Signal findet, wenn der Router auf den Kanälen 1-11 sendet - meiner war auf Kanal 13 eingestellt! Ein paar Optimierungen später und wir waren verbunden, großer Seufzer der Erleichterung.

Als nächstes kam das Aussortieren der verschiedenen Skripte. Zuerst habe ich das main.py-Skript des AlexaPi-Codes modifiziert und zusätzliche Zeilen hinzugefügt, damit der RabbitPi neben dem Blinken seiner LEDs beim Start auch ein schönes Ohrwackeln ausführt. Ich habe auch die Standardnachricht "Hallo" zum Spaß durch einen verspielten "Boing"-Soundeffekt ersetzt.

Das zweite Skript heißt rabbit.py (SWIDT?) und enthält den gesamten Code zum Abrufen von Gmail-Nachrichten und zum Auslesen mit Pyvona. Ich habe auch etwas Twython-Code hinzugefügt, den ich aus einem Raspberry Pi-Tutorial "Tweeting Babbage" angepasst habe, damit der RabbitPi ein Bild aufnehmen und es auf seinen Twitter-Account (@NabazPi) hochladen kann. Ich habe einige Ohrbewegungen und LED-Blitze hinzugefügt, um Sie angemessen zu warnen, wenn das Foto aufgenommen wird, sowie ein Verschlussgeräusch und eine von Pyvona gelesene Tweet-Bestätigung.

Zuletzt habe ich dem imaplib-Gmail-Code eine IF-Anweisung hinzugefügt, so dass der RabbitPi, wenn der E-Mail-Betreff "Selfie" war, seine Selfie-Sache machen würde, aber ansonsten den E-Mail-Betreff wie gewohnt auslesen würde.

Der von mir verwendete Code ist auf GitHub verfügbar - bitte lesen Sie die ReadMe-Datei!

Als letzten Schliff habe ich ein Raspberry Pi-Logo auf Transparentpapier gedruckt und in das RabbitPi-Gehäuse geklebt, sodass die weiße Bauch-LED das Bild durch ihre durchscheinende Haut beleuchtet.

Schritt 12: Nabaztag ist zurück

Nabaztag ist zurück!
Nabaztag ist zurück!
Nabaztag ist zurück!
Nabaztag ist zurück!
Nabaztag ist zurück!
Nabaztag ist zurück!

Nachdem alles erledigt war, musste nur noch das Video gemacht werden. Es hat großen Spaß gemacht, den RabbitPi vor der Kamera auf Herz und Nieren zu testen, der einzige Nachteil war, das HD-Material später auf meinem älteren Laptop zu bearbeiten. Bei einigen Benachrichtigungen (hauptsächlich Textnachrichten aufgrund meines schrecklichen Vodafone-Signals) habe ich die Pausen zwischen Aktion und Benachrichtigung verkürzt, oder es wäre ein langes und langweiliges Video geworden, aber das meiste zeigt die wahre Reaktionsgeschwindigkeit.

Ich habe mit einem Klatschsensor experimentiert, um den Alexa-Dienst auszulösen (wie im Snap-to-it-Alexa-Video zu sehen), aber ich habe ihn aus dem endgültigen Build herausgelassen, da er bei Hintergrundgeräuschen nicht wirklich zuverlässig genug war. Ich weiß, dass andere Tüftler daran arbeiten, IR-Fernbedienungen, Wii-Controller und sogar aktives Zuhören mit dem AlexaPi-Code zu verwenden, also gibt es viele Optionen für die Zukunft.

Ich hoffe, einen Adafruit-Neopixel-Ring hinzuzufügen, um die Bauch-LED zu ersetzen, da dies für viel bessere visuelle Benachrichtigungen sorgen würde. Außerdem möchte ich die Sprachbenachrichtigungen nachts "stummschalten". Auch meine Kinder haben tolle Vorschläge gemacht, und jetzt, da ich mich mit Python etwas besser auskenne, werden wir gemeinsam den Bereich der Benachrichtigungen erweitern, zum Beispiel so, dass der Selfie-Bestätigungstext zufällig aus einer Liste von Werten entnommen wird, und so kann das Kaninchen angewiesen werden, die Macarena mit seinen Ohren und LEDs zu tanzen.

Ich habe hier zufällig noch einen anderen Nabaztag, sowie einen späteren Karotz-Hasen, also baue ich vielleicht noch etwas damit - es ist verlockend, mit Fernüberwachung und Sensoren aller Art zu experimentieren! Es ist eine ideale Hardwareplattform für den Pi mit seinem perfekt dimensionierten Gehäuse, den Motoren und dem Knopf. Ich frage mich, ob die Originalhersteller irgendwo einen Vorrat an unverkauften Nabaztags haben, wie die Atari-Deponie? Mit etwas 3D-gedruckter Güte für die Montage der Kamera und des PI und einem benutzerdefinierten HAT zum Betrieb der Motoren, LEDs und des Audios wären sie sicherlich ein ideales Raspberry Pi-Maker-Kit, jeder Codierclub sollte einen haben!

Wenn Ihnen dieses Projekt gefällt und Sie mehr sehen möchten, können Sie meine Website für laufende Projektupdates unter bit.ly/OldTechNewSpec besuchen, auf Twitter @OldTechNewSpec mitmachen oder den wachsenden YouTube-Kanal unter bit.ly/oldtechtube abonnieren - Give einige Ihrer alten Technologien eine neue Spezifikation!

Internet der Dinge Wettbewerb 2016
Internet der Dinge Wettbewerb 2016
Internet der Dinge Wettbewerb 2016
Internet der Dinge Wettbewerb 2016

Zweiter Platz beim Internet of Things-Wettbewerb 2016

Empfohlen: