Sommario:

RPi IoT Smart Light con Firebase: 4 passaggi (con immagini)
RPi IoT Smart Light con Firebase: 4 passaggi (con immagini)

Video: RPi IoT Smart Light con Firebase: 4 passaggi (con immagini)

Video: RPi IoT Smart Light con Firebase: 4 passaggi (con immagini)
Video: Raspberry Pi IoT with Firebase Realtime database PART1 2024, Dicembre
Anonim
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase
RPi IoT Smart Light con Firebase

Questa guida mostra come creare e configurare un'app per controllare il Raspberry Pi tramite Firebase (un database online). E poi la stampa 3D di una custodia per il Pi Zero W, un Powerboost 1000C, una batteria e un Blinkt!.

Per poter seguire più facilmente, consiglio di avere familiarità con Xcode e Raspberry Pi.

E se ti piace quello che vedi, seguimi su Instagram e Twitter (@Anders644PI) per stare al passo con quello che faccio.

Avrai bisogno:

  • Un Raspberry Pi Zero W con adattatori e intestazioni GPIO

    (o il normale Pi Zero con un dongle WiFi)

  • Un PowerBoost 1000 C
  • Una batteria agli ioni di litio - 3,7 V 2000 mAh
  • Un battito di ciglia! (o qualsiasi pHAT/HAT, che: non usa il pin 5 fisico e gli HAT dovrebbero essere piatti sul fondo.)
  • Una scheda Micro SD da 8 GB o superiore, con Raspbian Stretch (con desktop) su di essa
  • Una tastiera e un mouse (ma puoi anche connetterti su ssh, se ora come)
  • Una connessione a un monitor o TV (o ssh!)
  • Viti di scarto
  • Fili piccoli
  • Un piccolo interruttore e un piccolo pulsante
  • Una stampante 3D e una bobina di qualsiasi filamento di PLA a colori e una bobina di PLA trasparente (oppure potresti utilizzare un servizio 3D come 3D Hubs per stamparlo per te)

Passaggio 1: Firebase e Xcode

Firebase e Xcode
Firebase e Xcode
Firebase e Xcode
Firebase e Xcode
Firebase e Xcode
Firebase e Xcode

Per prima cosa configureremo Firebase con l'app, in modo da poter comunicare dall'app al Pi.

Se ti confondi, puoi guardare questo video.

1. Apri Xcode e crea un nuovo progetto Xcode. Scegli Single View App e chiamala RPiAppControl e assicurati che la lingua sia Swift. Premi Avanti e salvalo.

2. Copia il tuo identificatore del pacchetto, perché ne avremo bisogno in seguito.

3. In Firebase, accedi con il tuo account Google e fai clic su Vai alla console.

4. Creare un nuovo progetto e chiamarlo RPiAppControl.

5. Fare clic su Aggiungi Firebase alla tua app IOS. Incolla l'identificatore del pacchetto e premi Registra app.

6. Scarica GoogleService-Info.plist e trascinalo nel tuo progetto Xcode.

7. Tornato a Firebase, premi Continua. Quindi apri una finestra di terminale e vai alla posizione del tuo progetto Xcode.

8. Esegui questo comando:

pod init

9. Apri il Podfile e sotto use_frameworks!, aggiungi questa riga:

pod 'Firebase/Nucleo'

10. Torna nel terminale digita: pod install e chiudi Xcode.

11. In Finder, vai al tuo progetto Xcode e apri il file.xcworkspace appena creato.

12. Qui vai su AppDelegate.swift e sotto import UIKit aggiungi questa riga:

importa Firebase

E nella funzione dell'applicazione, aggiungi questa riga:

FIRApp.configure().

13. Di nuovo in Firebase, fai clic su Continua e poi su Fine.

14. Vai su Database, quindi su Regole e imposta ".read" e ".write" su true. Premere PUBBLICA.

15. Torna a Xcode, apri il Podfile e sotto la prima riga che inseriamo, aggiungi questo:

pod 'Firebase/Database'

16. Di nuovo nel terminale, esegui nuovamente l'installazione del pod.

Passaggio 2: finitura di Xcode

Finitura Xcode
Finitura Xcode
Finitura Xcode
Finitura Xcode
Finitura Xcode
Finitura Xcode

Ora finiremo il codice e il layout in Xcode.

Questo sta usando Xcode 9 e Swift 4

Codice per ViewController1. Nella parte superiore del ViewController e sotto l'importazione UIKit, aggiungi questo:

importa Firebase

import FirebaseDatabase

2. Nella parte inferiore del ViewController e sotto la funzione didReceiveMemoryWarning, copia e incolla queste funzioni per ciascun pulsante:

func num1(stato: Stringa){

let ref = FIRDatabase.database().reference() let post: [String: Any] = ["stato": stato] ref.child("num1").setValue(post) }Ricordati di cambiare il (numero

3. Nella funzione viewDidLoad, sotto la super.viewDidLoad(), inserire questa riga per ciascun pulsante (per più pulsanti, basta cambiare il (numero). Vedi immagine…):

num1(stato: "OFF")

Layout dello storyboard principale e dei pulsanti

1. Vai al Main.storyboard e inserisci alcuni pulsanti. Potresti disporli come ho fatto io o personalizzarli come preferisci.

2. Collegare i pulsanti con ViewController. Ogni pulsante deve essere connesso due volte: uno come azione e UIButton chiamato num(number)Button e l'altro come Outlet predefinito e chiamandolo num(number)Color. Guarda l'immagine…

3. Quindi, per tutti i pulsanti, incolla questa riga su ciascuna delle funzioni:

if self.num1Color.backgroundColor == UIColor.lightGray { // Imposta il colore di sfondo su lightGray

num1(state: "ON") // Invia lo stato: "ON" a firebase self.num1Color.backgroundColor = UIColor (red:0.96, green:0.41, blue:0.26, alpha:1.0) // Imposta il colore di sfondo su reddish } else { num1(state: "OFF") // Invia lo stato: "OFF" a firebase self.num1Color.backgroundColor = UIColor.lightGray // Imposta il colore di sfondo su lightGray }

Ora dovresti essere in grado di testarlo, eseguendo l'app, e quando premi i pulsanti, dovresti vederlo cambiare stato, nel database in tempo reale in Firebase.

Ritocchi finali (opzionale)

1. Scarica le immagini qui sotto e inserisci il LaunchScreen-image-j.webp

2. Vai su Assets.xcassets e poi su AppIcon. Qui, inserisci la corrispondente AppIcon -size.

Passaggio 3: installazione di Raspberry Pi

Configurazione Raspberry Pi
Configurazione Raspberry Pi

Ora dobbiamo configurare il Pi con Firebase, in modo che l'app possa comunicare, lanciare Firebase, al Pi.

Non ho scritto il codice, ma puoi trovare il codice originale qui.

1. Nel terminale, esegui i soliti aggiornamenti:

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

2. Quindi importeremo pyrebase (Firebase):

sudo pip install pyrebase

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

3. Ora scarica la libreria Blinkt:

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

4. Clona il mio repository GitHub:

git clone https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl

5. Modifica AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. Inserisci la tua ApiKey Firebase e projectId. Puoi trovarli andando al tuo progetto Firebase e facendo clic su Aggiungi un'altra app e quindi su Aggiungi Firebase alla tua app web.

7. Personalizza le funzioni e salva le modifiche premendo ctrl-o (invio) e chiudi con ctrl-x.

8. Ora eseguilo con:

sudo python3 RPiAppControl_Template.py

9. Quindi, se stai utilizzando un Blinkt, puoi provare l'esempio, dopo aver compilato Firebase ApiKey e projectId:

esempi di cd

nano RPiAppControl_blinkt_demo.py

Ora eseguilo:

sudo python3 RPiAppControl_blinkt_demo.pyTieni presente che dopo aver eseguito lo script, ci vuole circa un minuto per prepararsi (almeno sul Pi Zero). E lo script deve essere eseguito in Python 3

10. BONUS: se vuoi che lo script venga eseguito all'avvio, puoi scoprire come farlo qui.

Pulsante di spegnimento/accensione

È facoltativo installare un pulsante di accensione, ma lo consiglio. Segui questo video per configurarlo.

Tieni presente che questo utilizza il pin fisico 5 sul Pi, quindi alcuni HAT non funzioneranno.

Passaggio 4: allegato

Consigliato: