Geschätzte Zeit: 15 MinutenVoraussetzungen:Twilio-Konto Cloudinary-KontoThinged.io-Konto ThingRaspberry Pi RPi-KameraDieses Tutorial führt Sie durch die Erstellung eines thinged.io-Teils, das ein Foto mit Ihrem Raspberry Pi aufnehmen, in Cloudinary hochladen und mit Twilio per mms senden kann.
Wir führen Sie durch die Erstellung Ihres First-Thinged-Teils und wie Sie über dessen Strukturierung nachdenken sollten, damit Sie Ihre eigenen Erweiterungen für die Thinged.io-Plattform erstellen können.0: Richten Sie Ihren Raspberry Pi mit Thinged ein.
ioSehen Sie Ihren Raspberry Pi, um ein Foto zu machenLaden Sie das Foto zu Cloudinary hochSenden Sie eine MMS mit TwilioWrap upErstellen Sie die erforderlichen Konten und erhalten Sie alle API-Schlüssel und TokenSobald Sie Ihre Twilio- und Cloudinary-Konten erstellt haben, können Sie Ihre Konto-IDs und Zugriffstoken von ihren jeweiligen Dashboards abrufen: 2. Richten Sie Ihren Raspberry Pi mit den Python-Voraussetzungen ein: Nachdem Sie Ihre Konten erstellt haben, müssen wir auf dem Raspberry Pi Anforderungen für die Kommunikation mit Cloudinary und Twilio installieren. sudo apt-get install python3-pippip3 install --user cloudinarypip3 install --user twilioDone.
2. Konfigurieren Sie Ihre Raspberry Pi-Kamera. Aktivieren Sie Ihr Raspberry Pis-Kameramodul über raspi-config:sudo raspi-config. Wählen Sie Interfacing Options , dann Camera und enable it.Starten Sie Ihren Raspberry Pi neu.
Testen Sie Ihre Kamera: raspistill -v -o test.jpg3. Testen Sie das Skript auf Ihrem Raspberry PiWeve hat einen Github-Kern erstellt, den Sie zum Aufnehmen dieser Fotos verwenden können.
Laden Sie dieses Skript auf Ihren Raspberry Pi herunter und bearbeiten Sie die folgenden Variablen:cloudinary_cloud_namecloudinary_api_keycloudinary_api_secrettwilio_account_sidtwilio_auth_tokentwilio_from_numberphone_numberDas Skript selbst ist extrem einfach und besteht aus ein paar kleinen Funktionen:take_photo(photo_name), das das Foto vom Raspberry Pi mit der standardmäßig in Raspbian installierten Raspstill-Bibliothek aufnimmt. upload_photo_to_cloudinary(photo_file_name) lädt ein Foto mit dem angegebenen Namen hoch. send_mms(to, message, media_url) sendet Ihr Foto mit Twilio.
4. Das Thinged schaffen. io PartSo wie das Python-Skript ein dünner Wrapper um Cloudinary und Twilio war, ist Thinged ein dünner Wrapper um Shell-Befehle.
Ein Ding besteht aus Teilen, die nur Zustände sind, die über Befehlszeilenbefehle abgerufen und eingestellt werden können. Der zurückgegebene Text des Befehls bildet die Grundlage für get-Teile, und Platzhalter werden verwendet, um für Argumente in set-Befehlen einzuspringen. Der Teil, den wir erstellen, sieht wie folgt aus: Es gibt dort viele verschiedene Schlüssel, aber keine Sorge – es ist eigentlich ziemlich einfach.
Ich habe die folgenden Parameter aufgeschlüsselt: humanName menschenfreundlicher Name, den Sie verwenden können, um das Teil zu identifizieren. Beschreibung menschenfreundliche Beschreibung, damit Sie herausfinden können, wie es funktioniert, und weitere Details hinzufügen können. partId Zufällig generierte Zeichenfolge, die das Ding war.
io verwendet, um das Teil zu identifizieren, und Sie verwenden es in der API, um Werte darauf festzulegen. Typ Entweder input, output oder inputOutput definiert, ob das Teil verwendet wird, um den Status von Ihrem Ding zu erhalten, den Status Ihres Dings festzulegen, oder eine Kombination davon zwei (Sie können es einstellen, aber es könnte sich an anderer Stelle ändern und sollte gelesen werden). Eingaben erfordern getCommand , Ausgaben erfordern setCommand .
setCommand Der Befehl, der beim Festlegen eines Werts gestartet wird. Hier zeigt es nur auf unser Python-Skript. Der Mehrwert dazu wird überall durch den Teilewert ersetzt, wenn Sie Befehle über die API setzen.
Das Python-Skript muss auf andere Weise in den Himbeer-Pi geladen werden. valueType Dies kann eine Zahl, eine Zeichenfolge oder ein Status sein. Wie bereits erwähnt, ist Thinged im Wesentlichen ein dünner Wrapper für Befehlszeilenbefehle, und daher wird alles in Zeichenfolgen auf der Befehlszeile übersetzt.
valueType ist wichtig für jede GUI, die Details über den Zustand eines Teils darstellen möchte. Hier ist valueType state, was impliziert, dass es eine diskrete Anzahl von Zuständen gibt, und sie können in Werte aufgezählt werden. Dadurch kann die GUI eine schöne Schaltfläche für 2 Zustandsteile und ein Dropdown-Menü für 3 oder mehr Zustandsteile darstellen.
Zustände Jeder Zustand repräsentiert eine andere diskrete Möglichkeit. Da Thinged.io nur dann einen Satz auslöst, wenn sich ein Wert ändert, sind hier die diskreten Zustände Duplikate voneinander, aber mit unterschiedlichen Werten.
Regexes Nützlich für Input- oder InputOutput-Teile, bei denen Sie die Antwort des Befehls vorverarbeiten möchten. Erstellen Sie diesen Teil entweder über das Webportal oder über die API. Von dort aus können Sie das Teil zu Ihrem Ding hinzufügen und jetzt sind Sie fertig!
Abschluss: Wenn Sie das Teil erstellt haben, sollte es jetzt auf der GUI so aussehen: Wenn Sie das Skript in Ihren Pi geladen haben, und so. io-Dienst ausgeführt wird, ist alles erledigt. Jetzt zur Auszahlung: Knopf drücken!
In diesem Tutorial haben wir mit thinged.io-Ausgabeteilen gearbeitet, um eine Spionagekamera mit einem Himbeer-Pi, Cloudinary- und Twilio-Konten und 42 Zeilen Python zu erstellen, die alles zusammenhalten. Bleiben Sie dran für weitere Tutorials zu thinged.
Io.
Shenzhen Tiger Wong Technology Co.,Ltd
Tel:86 13717037584
Email: info@sztigerwong.com
Hinzufügen: 1. Etage, Gebäude A2, Silicon Valley Power Digital Industrial Park, Nr. 22 Dafu Road, Guanlan Street, Bezirk Longhua,
Shenzhen, Provinz Guangdong, China