Sommario:
- Passaggio 1: Firebase e Xcode
- Passaggio 2: finitura di Xcode
- Passaggio 3: installazione di Raspberry Pi
- Passaggio 4: allegato
Video: RPi IoT Smart Light con Firebase: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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
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:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Bacheca LED IoT RPi: 3 passaggi (con immagini)
Bacheca LED IoT RPi: In questo Instructable, ho realizzato una bacheca LED connessa tramite Wi-Fi utilizzando un Raspberry Pi (RPi). Gli utenti si collegheranno al server web del Raspberry Pi utilizzando i propri browser per inviare brevi messaggi che verranno visualizzati sul display LED 8x8. Dal momento che l'interfa
Indicatore di eventi RPi-Zero IoT / Lampada a colori: 6 passaggi (con immagini)
Indicatore di eventi RPi-Zero IoT / Lampada a colori: nessun microcontrollore aggiuntivo, & Nessun modulo aggiuntivo HAT richiesto. RPi-Zero fa tutto. Meglio ancora utilizzare un RPi-Zero W! Esempio di utilizzo: indicatore di stato del servizio Web (ad es. monitoraggio DowJonesIndex), indicatore di stato di eventi politici o sportivi, luce d'atmosfera
Riutilizzare l'unità ottica con RPi: 6 passaggi (con immagini)
Riutilizzare l'unità ottica con RPi: questo progetto è nato dopo che l'unità ottica del mio amato laptop ha iniziato a comportarsi male. Il vassoio del CD usciva ripetutamente ogni volta che davo una spinta al mio laptop o lo spostavo in qualsiasi modo. La mia diagnosi del problema è stata che ci devono essere stati alcuni
Notifiche di eventi in tempo reale utilizzando NodeMCU (Arduino), Google Firebase e Laravel: 4 passaggi (con immagini)
Notifiche di eventi in tempo reale utilizzando NodeMCU (Arduino), Google Firebase e Laravel: hai mai desiderato essere avvisato quando viene eseguita un'azione sul tuo sito web ma l'email non è la soluzione giusta? Vuoi sentire un suono o un campanello ogni volta che fai una vendita? Oppure c'è bisogno della tua attenzione immediata a causa di un'emergenza