Inhaltsverzeichnis:

RPi IoT Smart Light mit Firebase - Gunook
RPi IoT Smart Light mit Firebase - Gunook

Video: RPi IoT Smart Light mit Firebase - Gunook

Video: RPi IoT Smart Light mit Firebase - Gunook
Video: IoT Home Automation Using Raspberry pi, Firebase and MIT App Inventor 2024, Juli
Anonim
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase
RPi IoT Smart Light mit Firebase

Diese Anleitung zeigt Ihnen, wie Sie eine App erstellen und einrichten, um den Raspberry Pi über Firebase (eine Online-Datenbank) zu steuern. Und dann 3D-Druck eines Gehäuses für den Pi Zero W, ein Powerboost 1000C, ein Akku und ein Blinkt!.

Um am einfachsten folgen zu können, empfehle ich, mit Xcode und Raspberry Pi vertraut zu sein.

Und wenn Ihnen gefällt, was Sie sehen, folgen Sie mir auf Instagram und Twitter (@Anders644PI), um mit meinen Produkten Schritt zu halten.

Du wirst brauchen:

  • Ein Raspberry Pi Zero W mit Adaptern und GPIO-Headern

    (oder der gewöhnliche Pi Zero mit einem WiFi-Dongle)

  • Ein PowerBoost 1000 C
  • Ein Lithium-Ionen-Akku - 3,7 V 2000 mAh
  • Ein Blinkt! (oder jeder pHAT / HAT, der Pin 5 nicht verwendet und HATs sollten auf der Unterseite flach sein.)
  • Eine 8 GB oder höhere Micro-SD-Karte mit Raspbian Stretch (mit Desktop) darauf
  • Eine Tastatur und eine Maus (kann man aber auch über ssh verbinden, wenn man jetzt wie geht)
  • Eine Verbindung zu einem Monitor oder Fernseher (oder ssh!)
  • Schrauben verschrotten
  • Kleine Drähte
  • Ein kleiner Schalter und ein kleiner Knopf
  • Ein 3D-Drucker und eine Spule eines beliebigen farbigen PLA-Filaments und eine Spule transparentes PLA (oder Sie können einen 3D-Dienst wie 3D Hubs verwenden, um es für Sie zu drucken)

Schritt 1: Firebase und Xcode

Firebase und Xcode
Firebase und Xcode
Firebase und Xcode
Firebase und Xcode
Firebase und Xcode
Firebase und Xcode

Zuerst richten wir Firebase mit der App ein, damit wir von der App mit dem Pi kommunizieren können.

Wenn Sie verwirrt sind, können Sie sich dieses Video ansehen.

1. Öffnen Sie Xcode und erstellen Sie ein neues Xcode-Projekt. Wählen Sie Single View App und nennen Sie es RPiAppControl, und stellen Sie sicher, dass die Sprache Swift ist. Drücken Sie Weiter und speichern Sie es.

2. Kopieren Sie Ihre Bundle-Kennung, da wir diese später benötigen.

3. Melden Sie sich in Firebase mit Ihrem Google-Konto an und klicken Sie auf Zur Konsole wechseln.

4. Erstellen Sie ein neues Projekt und nennen Sie es RPiAppControl.

5. Klicken Sie auf Firebase zu Ihrer IOS-App hinzufügen. Fügen Sie Ihre Bundle-Kennung ein und drücken Sie auf App registrieren.

6. Laden Sie die GoogleService-Info.plist herunter und ziehen Sie sie in Ihr Xcode-Projekt.

7. Zurück bei Firebase, drücken Sie Weiter. Öffnen Sie dann ein Terminalfenster und navigieren Sie zum Speicherort Ihres Xcode-Projekts.

8. Führen Sie diesen Befehl aus:

Pod-Initialisierung

9. Öffnen Sie das Podfile und unter use_frameworks!, füge diese Zeile hinzu:

Pod 'Firebase/Core'

10. Zurück zum Terminaltyp: pod install, und schließen Sie Xcode.

11. Navigieren Sie im Finder zu Ihrem Xcode-Projekt und öffnen Sie die neu erstellte.xcworkspace-Datei.

12. Gehen Sie hier zu AppDelegate.swift und fügen Sie unter UIKit importieren diese Zeile hinzu:

Firebase importieren

Und in der Anwendungsfunktion fügen Sie diese Zeile hinzu:

FIRApp.configure().

13. Zurück in Firebase, klicken Sie auf Weiter und dann auf Fertig stellen.

14. Gehen Sie zu Datenbank, dann zu Regeln und setzen Sie ".read" und ".write" auf true. Drücken Sie VERÖFFENTLICHEN.

15. Öffnen Sie wieder bei Xcode die Poddatei und fügen Sie unter der ersten Zeile, die wir eingeben, Folgendes hinzu:

Pod 'Firebase/Datenbank'

16. Führen Sie pod install erneut im Terminal aus.

Schritt 2: Xcode fertigstellen

Xcode fertigstellen
Xcode fertigstellen
Xcode fertigstellen
Xcode fertigstellen
Xcode fertigstellen
Xcode fertigstellen

Wir werden jetzt den Code und das Layout in Xcode fertigstellen.

Dies verwendet Xcode 9 und Swift 4

Code für den ViewController1. Fügen Sie oben im ViewController und unter dem Import UIKit Folgendes hinzu:

Firebase importieren

FirebaseDatenbank importieren

2. Kopieren Sie unten im ViewController und unter der didReceiveMemoryWarning -Funktion diese Funktionen für jede Schaltfläche:

func num1(state: String){

let ref = FIRDatabase.database().reference() let post: [String: Any] = ["state": state] ref.child("num1").setValue(post) }Denken Sie daran, die (Zahl

3. Fügen Sie in der viewDidLoad -Funktion unter super.viewDidLoad() diese Zeile für jede Schaltfläche ein (Bei mehreren Schaltflächen ändern Sie einfach die (Zahl). Siehe Bild…):

num1(Zustand: "AUS")

Layout des Main.storyboards und der Schaltflächen

1. Gehen Sie zum Main.storyboard und fügen Sie einige Schaltflächen ein. Sie können sie wie ich gestalten oder nach Belieben anpassen.

2. Verbinden Sie die Tasten mit dem ViewController. Jede Schaltfläche muss zweimal verbunden werden: Eine als Aktion und UIButton namens num(number)Button, und die andere als Standard-Outlet und als num(number)Color. Siehe Bild…

3. Fügen Sie dann für alle Schaltflächen diese Zeile in jede der Funktionen ein:

if self.num1Color.backgroundColor == UIColor.lightGray { // Setzt die Hintergrundfarbe auf lightGray

num1(state: "ON") // Sendet den Status: "ON" an Firebase self.num1Color.backgroundColor = UIColor(red:0.96, green:0.41, blue:0.26, alpha:1.0) // Setzt die Hintergrundfarbe auf rötlich } else { num1(state: "OFF") // Sendet den Zustand: "OFF" an Firebase self.num1Color.backgroundColor = UIColor.lightGray // Setzt die Hintergrundfarbe auf lightGray }

Jetzt sollten Sie in der Lage sein, es zu testen, indem Sie die App ausführen, und wenn Sie die Schaltflächen drücken, sollten Sie sehen, dass sich der Status in der Echtzeitdatenbank in Firebase ändert.

Feinschliff (optional)

1. Laden Sie die Bilder unten herunter und fügen Sie die LaunchScreen-image-j.webp

2. Gehen Sie zu Assets.xcassets und dann zu AppIcon. Platzieren Sie hier die entsprechende AppIcon-Größe.

Schritt 3: Raspberry Pi-Setup

Raspberry Pi-Setup
Raspberry Pi-Setup

Jetzt müssen wir den Pi mit Firebase einrichten, damit die App mit dem Pi kommunizieren, Firebase werfen kann.

Ich habe den Code nicht geschrieben, aber den Originalcode finden Sie hier.

1. Führen Sie im Terminal die üblichen Updates aus:

sudo apt-get update && sudo apt-get dist-upgrade

2. Dann importieren wir Pyrebase (Firebase):

sudo pip install pyrebase

sudo pip3 install pyrebase sudo pip3 install --upgrade google-auth-oauthlib

3. Laden Sie nun die Blinkt-Bibliothek herunter:

Locken https://get.pimoroni.com/blinkt | bash

4. Klonen Sie mein GitHub-Repository:

git-Klon https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl

5. Bearbeiten Sie die AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Geben Sie Ihren Firebase ApiKey und Ihre Projekt-ID ein. Sie finden diese, indem Sie zu Ihrem Firebase-Projekt gehen und auf Weitere App hinzufügen und dann Firebase zu Ihrer Web-App hinzufügen klicken.

7. Passen Sie die Funktionen an und speichern Sie Ihre Änderungen durch Drücken von Strg-O (Eingabe) und schließen Sie mit Strg-X.

8. Führen Sie es nun aus mit:

sudo python3 RPiAppControl_Template.py

9. Wenn Sie dann ein Blinkt verwenden, können Sie das Beispiel ausprobieren, wenn Sie Ihren Firebase ApiKey und Ihre ProjektId eingegeben haben:

CD-Beispiele

nano RPiAppControl_blinkt_demo.py

Führen Sie es jetzt aus:

sudo python3 RPiAppControl_blinkt_demo.pyDenken Sie daran, dass es nach dem Ausführen des Skripts etwa eine Minute dauert, bis Sie sich fertig gemacht haben (zumindest auf dem Pi Zero). Und das Skript muss in Python 3 ausgeführt werden

10. BONUS: Wenn Sie möchten, dass das Skript beim Booten ausgeführt wird, erfahren Sie hier, wie.

Shutdown/Power-Taste

Es ist optional, einen Netzschalter zu installieren, aber ich empfehle es. Folgen Sie diesem Video, um es einzurichten.

Denken Sie daran, dass dies den physischen Pin 5 auf dem Pi verwendet, sodass einige HATs nicht funktionieren.

Schritt 4: Gehäuse

Empfohlen: