Innholdsfortegnelse:

RPi IoT Smart Light Using Firebase: 4 trinn (med bilder)
RPi IoT Smart Light Using Firebase: 4 trinn (med bilder)

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

Video: RPi IoT Smart Light Using Firebase: 4 trinn (med bilder)
Video: I built a smarter smart home 2024, November
Anonim
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase
RPi IoT Smart Light Using Firebase

Denne guiden viser deg hvordan du lager og konfigurerer en app for å kontrollere Raspberry Pi via Firebase (En online database). Og så 3D -utskrift av etui til Pi Zero W, en Powerboost 1000C, et batteri og en Blinkt !.

For å være lettest å følge med, anbefaler jeg å bli kjent med Xcode og Raspberry Pi.

Og hvis du liker det du ser, følg meg på Instagram og Twitter (@Anders644PI) for å holde tritt med det jeg lager.

Du vil trenge:

  • En Raspberry Pi Zero W med adaptere og GPIO-hoder

    (eller den vanlige Pi Zero med en WiFi -dongle)

  • En PowerBoost 1000 C.
  • Et litiumionbatteri - 3,7v 2000mAh
  • Et blikk! (eller en hvilken som helst pHAT/HAT, som: ikke bruker pin 5 fysisk og HAT skal være flat på bunnen.)
  • Et 8 GB eller høyere Micro SD -kort, med Raspbian Stretch (med skrivebord) på det
  • Et tastatur og en mus (men du kan også koble til over ssh, hvis du nå gjør det)
  • En tilkobling til en skjerm eller TV (eller ssh!)
  • Skrapskruer
  • Små ledninger
  • En liten bryter og en liten knapp
  • En 3D -skriver og en spole av hvilken som helst PLA -filament, og en spole med gjennomsiktig PLA (eller du kan bruke en 3D -tjeneste som 3D Hubs for å skrive den ut for deg)

Trinn 1: Firebase og Xcode

Firebase og Xcode
Firebase og Xcode
Firebase og Xcode
Firebase og Xcode
Firebase og Xcode
Firebase og Xcode

Først setter vi opp Firebase med appen, slik at vi kan kommunisere fra appen til Pi.

Hvis du blir forvirret, kan du se denne videoen.

1. Åpne Xcode, og lag et nytt Xcode -prosjekt. Velg Single View App og kall det RPiAppControl, og kontroller at språket er Swift. Trykk på Neste, og lagre den.

2. Kopier din Bundle Identifier, for vi trenger det senere.

3. Logg på med Firebase med Google -kontoen din, og klikk på Gå til konsoll.

4. Lag et nytt prosjekt, og kall det RPiAppControl.

5. Klikk på Legg til Firebase i IOS -appen. Lim inn pakkeidentifikatoren din, og trykk Registrer app.

6. Last ned GoogleService-Info.plist, og dra den inn i Xcode-prosjektet.

7. Trykk på Fortsett på Firebase. Åpne deretter et terminalvindu og naviger til plasseringen av Xcode -prosjektet.

8. Kjør denne kommandoen:

pod init

9. Åpne Podfilen, og under use_frameworks!, legg til denne linjen:

pod 'Firebase/Core'

10. Tilbake i terminaltypen: installasjon av pod og lukk Xcode.

11. Naviger til Xcode -prosjektet i Finder, og åpne den nyopprettede.xcworkspacefilen.

12. Her går du til AppDelegate.swift, og under import UIKit legger du til denne linjen:

importer Firebase

Og i applikasjonsfunksjonen, legg til denne linjen:

FIRApp.configure ().

13. Tilbake i Firebase, klikk Fortsett og deretter Fullfør.

14. Gå til Database, deretter Regler, og sett ".read" og ".write" til true. Trykk på PUBLISH.

15. Tilbake ved Xcode, åpne Podfilen, og legg til dette under den første linjen vi satte inn:

pod 'Firebase/Database'

16. Tilbake i terminalen, kjør pod install igjen.

Trinn 2: Fullfør Xcode

Fullfører Xcode
Fullfører Xcode
Fullfører Xcode
Fullfører Xcode
Fullfører Xcode
Fullfører Xcode

Vi vil nå fullføre koden og oppsettet i Xcode.

Dette bruker Xcode 9 og Swift 4

Kode for ViewController 1. På toppen av ViewController, og under import UIKit, legg til dette:

importer Firebase

importer FirebaseDatabase

2. På undersiden av ViewController, og under didReceiveMemoryWarning -funksjonen, kopier og lim inn disse funksjonene for hver knapp:

func num1 (tilstand: streng) {

la ref = FIRDatabase.database (). referanse () la innlegg: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Husk å endre (nummer

3. I viewDidLoad -funksjonen, under super.viewDidLoad (), sett inn denne linjen for hver knapp (For flere knapper, bare endre (nummer). Se bilde …):

num1 (tilstand: "AV")

Oppsett av hovedtastaturet og knappene

1. Gå til Main.storyboard, og legg inn noen knapper. Du kan lage dem som jeg gjorde, eller tilpasse dem slik du vil.

2. Koble til knappene med ViewController. Hver knapp må kobles til to ganger: En som en handling og UIButton kalt num (nummer) -knappen, og den andre som standard Outlet og kall den num (number) Color. Se bilde …

3. Deretter limer du inn alle linjene i hver av funksjonene for alle knappene:

if self.num1Color.backgroundColor == UIColor.lightGray {// Setter bakgrunnsfargen til lightGray

num1 (tilstand: "ON") // Sender tilstanden: "ON" til firebase self.num1Color.backgroundColor = UIColor (rød: 0,96, grønn: 0,41, blå: 0,26, alfa: 1,0) // Setter bakgrunnsfargen til rødlig} annet {num1 (tilstand: "AV") // Sender tilstanden: "AV" til firebase self.num1Color.backgroundColor = UIColor.lightGray // Setter bakgrunnsfargen til lightGray}

Nå bør du være i stand til å teste den ut, ved å kjøre appen, og når du trykker på knappene, bør du se den endre status i sanntidsdatabasen i Firebase.

Etterbehandling (valgfritt)

1. Last ned bildene nedenfor, og sett inn LaunchScreen-image-j.webp

2. Gå til Assets.xcassets og deretter AppIcon. Her, plasser i den tilsvarende AppIcon -størrelsen.

Trinn 3: Oppsett av Raspberry Pi

Oppsett av bringebær Pi
Oppsett av bringebær Pi

Nå må vi konfigurere Pi med Firebase, slik at appen kan kommunisere, kaste Firebase, til Pi.

Jeg skrev ikke koden, men du finner den originale koden her.

1. I terminalen, kjør de vanlige oppdateringene:

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

2. Så importerer vi pyrebase (Firebase):

sudo pip installer pyrebase

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

3. Last ned nå Blinkt -biblioteket:

krølle https://get.pimoroni.com/blinkt | bash

4. Klon mitt GitHub -depot:

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

5. Rediger AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Fyll ut Firebase ApiKey og projectId. Du finner disse ved å gå til Firebase -prosjektet, klikke på Legg til en annen app og deretter Legg til Firebase i nettappen din.

7. Tilpass funksjonene, og lagre endringene ved å trykke ctrl-o (enter) og lukke med ctrl-x.

8. Kjør den nå med:

sudo python3 RPiAppControl_Template.py

9. Hvis du bruker en Blinkt, kan du prøve eksemplet når du har fylt ut Firebase ApiKey og projectId:

cd -eksempler

nano RPiAppControl_blinkt_demo.py

Kjør det nå:

sudo python3 RPiAppControl_blinkt_demo.pyHusk at etter at du har kjørt skriptet, tar det omtrent et minutt å bli klar (i hvert fall på Pi Zero). Og manuset må kjøres i python 3

10. BONUS: Hvis du vil at skriptet skal kjøres på oppstart, kan du finne ut hvordan, her.

Slå av/av -knappen

Det er valgfritt å installere en strømknapp, men jeg anbefaler det. Følg med på denne videoen for å sette den opp.

Husk at dette bruker fysisk pin 5 på Pi, så noen HATer vil ikke fungere.

Trinn 4: Vedlegg

Anbefalt: