Innehållsförteckning:

RPi IoT Smart Light med Firebase: 4 steg (med bilder)
RPi IoT Smart Light med Firebase: 4 steg (med bilder)

Video: RPi IoT Smart Light med Firebase: 4 steg (med bilder)

Video: RPi IoT Smart Light med Firebase: 4 steg (med bilder)
Video: Raspberry Pi IoT with Firebase Realtime database PART1 2024, November
Anonim
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase
RPi IoT Smart Light med Firebase

Den här guiden visar hur du skapar och konfigurerar en app för att styra Raspberry Pi via Firebase (en online -databas). Och sedan 3D -utskrift av ett fodral för Pi Zero W, en Powerboost 1000C, ett batteri och en Blinkt !.

För att lättast kunna följa med rekommenderar jag att du känner till Xcode och Raspberry Pi.

Och om du gillar det du ser, följ mig på Instagram och Twitter (@Anders644PI) för att hänga med i vad jag gör.

Du kommer behöva:

  • En Raspberry Pi Zero W med adaptrar och GPIO-headers

    (eller den vanliga Pi Zero med en WiFi -dongel)

  • En PowerBoost 1000 C
  • Ett litiumjonbatteri - 3,7v 2000mAh
  • En Blinkt! (eller någon pHAT/HAT, som: använder inte stift 5 fysisk och HAT: ar ska vara platta på botten.)
  • Ett 8 GB eller högre Micro SD -kort, med Raspbian Stretch (med skrivbord) på det
  • Ett tangentbord och en mus (men du kan också ansluta över ssh, om du nu hur)
  • En anslutning till en bildskärm eller TV (eller ssh!)
  • Skrotskruvar
  • Små trådar
  • En liten strömbrytare och en liten knapp
  • En 3D -skrivare och en spole av valfri PLA -filament och en spole med transparent PLA (eller så kan du använda en 3D -tjänst som 3D Hubs för att skriva ut den åt dig)

Steg 1: Firebase och Xcode

Firebase och Xcode
Firebase och Xcode
Firebase och Xcode
Firebase och Xcode
Firebase och Xcode
Firebase och Xcode

Först kommer vi att konfigurera Firebase med appen, så att vi kan kommunicera från appen till Pi.

Om du blir förvirrad kan du titta på den här videon.

1. Öppna Xcode och skapa ett nytt Xcode -projekt. Välj Single View App och kalla det RPiAppControl, och se till att språket är Swift. Tryck på Nästa och spara den.

2. Kopiera din paketidentifierare, eftersom vi kommer att behöva det senare.

3. Logga in med ditt Google -konto i Firebase och klicka på Gå till konsolen.

4. Skapa ett nytt projekt och kalla det RPiAppControl.

5. Klicka på Lägg till Firebase i din IOS -app. Klistra in ditt paketidentifierare och tryck på Registrera app.

6. Ladda ner GoogleService-Info.plist och dra den till ditt Xcode-projekt.

7. Tillbaka till Firebase, tryck på Fortsätt. Öppna sedan ett terminalfönster och navigera till platsen för ditt Xcode -projekt.

8. Kör det här kommandot:

pod init

9. Öppna podfilen och under use_frameworks!, lägg till den här raden:

pod 'Firebase/Core'

10. Tillbaka i terminalen: pod installera och stäng Xcode.

11. Navigera till ditt Xcode -projekt i Finder och öppna den nyskapade.xcworkspacefilen.

12. Gå in här till AppDelegate.swift och lägg till den här raden under import UIKit:

importera Firebase

Och i applikationsfunktionen lägger du till den här raden:

FIRApp.configure ().

13. Tillbaka i Firebase, klicka på Fortsätt och sedan på Slutför.

14. Gå till Database, sedan Regler, och ställ in ".read" och ".write" till true. Tryck på PUBLISH.

15. Tillbaka vid Xcode, öppna Podfilen, och under den första raden som vi sätter in, lägg till detta:

pod 'Firebase/Database'

16. Tillbaka i terminalen, kör pod install igen.

Steg 2: Avsluta Xcode

Avsluta Xcode
Avsluta Xcode
Avsluta Xcode
Avsluta Xcode
Avsluta Xcode
Avsluta Xcode

Vi kommer nu att slutföra koden och layouten i Xcode.

Detta använder Xcode 9 och Swift 4

Kod för ViewController 1. Högst upp i ViewController och under import UIKit, lägg till detta:

importera Firebase

importera FirebaseDatabase

2. Längst ned på ViewController och under didReceiveMemoryWarning -funktionen, kopiera in dessa funktioner för varje knapp:

func num1 (tillstånd: String) {

låt ref = FIRDatabase.database (). reference () låt posta: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Kom ihåg att ändra (nummer

3. I viewDidLoad -funktionen, under super.viewDidLoad (), sätt in den här raden för varje knapp (För flera knappar, ändra bara (nummer). Se bild …):

num1 (tillstånd: "AV")

Layout av Main.storyboard och knappar

1. Gå till Main.storyboard och sätt i några knappar. Du kan layouta dem som jag gjorde, eller anpassa dem som du vill.

2. Anslut knapparna med ViewController. Varje knapp måste anslutas två gånger: En som en åtgärd och UIButton kallas num (nummer) -knappen, och den andra som standard Outlet och kalla det num (nummer) Color. Se bild…

3. Klistra sedan in på den här raden för var och en av funktionerna för alla knappar:

if self.num1Color.backgroundColor == UIColor.lightGray {// Ställer in bakgrundsfärgen på lightGray

num1 (tillstånd: "ON") // Skickar tillståndet: "ON" till eldbas self.num1Color.backgroundColor = UIColor (röd: 0,96, grön: 0,41, blå: 0,26, alfa: 1,0) // Ställer in bakgrundsfärgen till rödaktig} else {num1 (tillstånd: "OFF") // Skickar tillståndet: "OFF" till firebase self.num1Color.backgroundColor = UIColor.lightGray // Ställer in bakgrundsfärgen till lightGray}

Nu ska du kunna testa det genom att köra appen, och när du trycker på knapparna ska du se att det ändrar tillstånd i Realtime Database i Firebase.

Finisher (tillval)

1. Ladda ner bilderna nedan och sätt in LaunchScreen-image-j.webp

2. Gå till Assets.xcassets och sedan AppIcon. Här, placera i motsvarande AppIcon -storlek.

Steg 3: Installation av Raspberry Pi

Raspberry Pi Setup
Raspberry Pi Setup

Nu måste vi konfigurera Pi med Firebase, så att appen kan kommunicera, kasta Firebase, till Pi.

Jag skrev inte koden, men du hittar den ursprungliga koden här.

1. I terminalen kör du de vanliga uppdateringarna:

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

2. Sedan importerar vi pyrebase (Firebase):

sudo pip installera pyrebase

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

3. Ladda nu ner Blinkt -biblioteket:

curl https://get.pimoroni.com/blinkt | våldsamt slag

4. Klona mitt GitHub -arkiv:

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

5. Redigera AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Fyll i din Firebase ApiKey och projectId. Du hittar dessa genom att gå till ditt Firebase -projekt och klicka på Lägg till en annan app och sedan Lägg till Firebase i din webbapp.

7. Anpassa funktionerna och spara dina ändringar genom att trycka på ctrl-o (enter) och stänga med ctrl-x.

8. Kör det nu med:

sudo python3 RPiAppControl_Template.py

9. Om du sedan använder en Blinkt kan du prova exemplet när du har fyllt i din Firebase ApiKey och projectId:

cd -exempel

nano RPiAppControl_blinkt_demo.py

Kör det nu:

sudo python3 RPiAppControl_blinkt_demo.pyTänk på att efter att du har kört manuset tar det ungefär en minut att bli redo (åtminstone på Pi Zero). Och manuset måste köras i python 3

10. BONUS: Om du vill att skriptet ska köras på start kan du ta reda på hur, här.

Avstängning/strömbrytare

Det är valfritt att installera en strömknapp, men jag rekommenderar det. Följ med den här videon för att konfigurera den.

Tänk på att detta använder fysisk pin 5 på Pi, så vissa HATs fungerar inte.

Steg 4: Kapsling

Rekommenderad: