Table des matières:
- Étape 1: Firebase et Xcode
- Étape 2: Terminer Xcode
- Étape 3: configuration du Raspberry Pi
- Étape 4: Enceinte
Vidéo: RPi IoT Smart Light utilisant Firebase : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Ce guide vous montre comment créer et configurer une application pour contrôler le Raspberry Pi via Firebase (une base de données en ligne). Et puis imprimer en 3D un boîtier pour le Pi Zero W, un Powerboost 1000C, une batterie et un Blinkt!.
Pour pouvoir suivre plus facilement, je vous recommande de vous familiariser avec Xcode et Raspberry Pi.
Et si vous aimez ce que vous voyez, suivez-moi sur Instagram et Twitter (@Anders644PI) pour suivre ce que je fais.
Tu auras besoin de:
-
Un Raspberry Pi Zero W avec adaptateurs et en-têtes GPIO
(ou le Pi Zero ordinaire avec un dongle WiFi)
- Un PowerBoost 1000C
- Une batterie lithium-ion - 3.7v 2000mAh
- Un clin d'oeil ! (ou n'importe quel pHAT/HAT, qui: n'utilise pas la broche 5 physique et les HAT doivent être à plat sur le fond.)
- Une carte Micro SD de 8 Go ou plus, avec Raspbian Stretch (avec ordinateur de bureau) dessus
- Un clavier et une souris (mais vous pouvez également vous connecter via ssh, si vous le souhaitez maintenant)
- Une connexion à un moniteur ou un téléviseur (ou ssh !)
- Vis à rebut
- Petits fils
- Un petit interrupteur et un petit bouton
- Une imprimante 3D et une bobine de filament PLA de n'importe quelle couleur, et une bobine de PLA transparent (ou vous pouvez utiliser un service 3D comme 3D Hubs pour l'imprimer pour vous)
Étape 1: Firebase et Xcode
Nous allons d'abord configurer Firebase avec l'application, afin que nous puissions communiquer entre l'application et le Pi.
Si vous êtes confus, vous pouvez regarder cette vidéo.
1. Ouvrez Xcode et créez un nouveau projet Xcode. Choisissez Single View App et appelez-le RPiAppControl, et assurez-vous que la langue est Swift. Appuyez sur Suivant et enregistrez-le.
2. Copiez votre Identifiant de Bundle, car nous en aurons besoin plus tard.
3. Dans Firebase, connectez-vous avec votre compte Google et cliquez sur Accéder à la console.
4. Créez un nouveau projet et appelez-le RPiAppControl.
5. Cliquez sur Ajouter Firebase à votre application IOS. Collez votre identifiant de pack et appuyez sur Enregistrer l'application.
6. Téléchargez le GoogleService-Info.plist et faites-le glisser dans votre projet Xcode.
7. De retour sur Firebase, appuyez sur Continuer. Ouvrez ensuite une fenêtre de terminal et accédez à l'emplacement de votre projet Xcode.
8. Exécutez cette commande:
initialisation du pod
9. Ouvrez le fichier Podfile et sous use_frameworks !, ajoutez cette ligne:
pod 'Firebase/Core'
10. De retour dans le terminal tapez: pod install, et fermez Xcode.
11. Dans le Finder, accédez à votre projet Xcode et ouvrez le fichier.xcworkspace nouvellement créé.
12. Ici, allez dans AppDelegate.swift, et sous import UIKit, ajoutez cette ligne:
importer Firebase
Et dans la fonction application, ajoutez cette ligne:
FIRApp.configure().
13. De retour dans Firebase, cliquez sur Continuer, puis sur Terminer.
14. Allez dans Base de données, puis Règles, et définissez ".read" et ".write" sur true. Appuyez sur PUBLIER.
15. De retour à Xcode, ouvrez le fichier Podfile, et sous la première ligne que nous avons définie, ajoutez ceci:
pod 'Firebase/Base de données'
16. De retour dans le terminal, exécutez à nouveau l'installation du pod.
Étape 2: Terminer Xcode
Nous allons maintenant terminer le code et la mise en page dans Xcode.
Ceci utilise Xcode 9 et Swift 4
Code pour le ViewController1. En haut du ViewController et sous l'UIKit d'importation, ajoutez ceci:
importer Firebase
importer FirebaseDatabase
2. Au bas du ViewController et sous la fonction didReceiveMemoryWarning, copiez-collez ces fonctions pour chaque bouton:
func num1(état: chaîne){
let ref = FIRDatabase.database().reference() let post: [String: Any] = ["state": state] ref.child("num1").setValue(post) }N'oubliez pas de changer le (numéro
3. Dans la fonction viewDidLoad, sous le super.viewDidLoad(), insérez cette ligne pour chaque bouton (Pour plusieurs boutons, changez simplement le (numéro). Voir image…):
num1(état: "OFF")
Disposition du Main.storyboard et des boutons
1. Allez dans le storyboard principal et mettez quelques boutons. Vous pouvez les mettre en page comme je l'ai fait ou les personnaliser à votre guise.
2. Connectez les boutons avec le ViewController. Chaque bouton doit être connecté deux fois: l'un en tant qu'action et UIButton appelé num(number)Button, et l'autre en tant que prise par défaut et appelez-le num(number)Color. Voir l'image…
3. Puis pour tous les boutons, collez cette ligne à chacune des fonctions:
if self.num1Color.backgroundColor == UIColor.lightGray { // Définit la couleur d'arrière-plan sur lightGray
num1(state: "ON") // Envoie l'état: "ON" à firebase self.num1Color.backgroundColor = UIColor(red:0.96, green:0.41, blue:0.26, alpha:1.0) // Définit la couleur d'arrière-plan sur reddish } else { num1(state: "OFF") // Envoie l'état: "OFF" à firebase self.num1Color.backgroundColor = UIColor.lightGray // Définit la couleur d'arrière-plan sur lightGray }
Vous devriez maintenant pouvoir le tester en exécutant l'application et lorsque vous appuyez sur les boutons, vous devriez le voir changer d'état dans la base de données en temps réel de Firebase.
Touches finales (facultatif)
1. Téléchargez les images ci-dessous et insérez le LaunchScreen-image-j.webp
2. Accédez à Assets.xcassets, puis à AppIcon. Ici, placez dans la taille AppIcon correspondante.
Étape 3: configuration du Raspberry Pi
Nous devons maintenant configurer le Pi avec Firebase, afin que l'application puisse communiquer, lancer Firebase, sur le Pi.
Je n'ai pas écrit le code, mais vous pouvez trouver le code original ici.
1. Dans le terminal, exécutez les mises à jour habituelles:
sudo apt-get update && sudo apt-get dist-upgrade
2. Ensuite, nous importerons pyrebase (Firebase):
sudo pip installer pyrebase
sudo pip3 installer pyrebase sudo pip3 installer --mettre à niveau google-auth-oauthlib
3. Téléchargez maintenant la bibliothèque Blinkt:
boucle https://get.pimoroni.com/blinkt | frapper
4. Cloner mon dépôt GitHub:
git clone https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Modifiez AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Remplissez votre Firebase ApiKey et projectId. Vous pouvez les trouver en accédant à votre projet Firebase et en cliquant sur Ajouter une autre application, puis sur Ajouter Firebase à votre application Web.
7. Personnalisez les fonctions et enregistrez vos modifications en appuyant sur ctrl-o (entrée) et fermez avec ctrl-x.
8. Maintenant, lancez-le avec:
sudo python3 RPiAppControl_Template.py
9. Ensuite, si vous utilisez un Blinkt, vous pouvez essayer l'exemple, lorsque vous avez renseigné votre Firebase ApiKey et projectId:
exemples de cd
nano RPiAppControl_blinkt_demo.py
Lancez-le maintenant:
sudo python3 RPiAppControl_blinkt_demo.pyGardez à l'esprit qu'après avoir exécuté le script, il faut environ une minute pour se préparer (au moins sur le Pi Zero). Et le script doit être exécuté en python 3
10. BONUS: Si vous voulez que le script s'exécute au démarrage, vous pouvez découvrir comment, ici.
Bouton d'arrêt/d'alimentation
Il est facultatif d'installer un bouton d'alimentation, mais je le recommande. Suivez cette vidéo pour la configurer.
Gardez à l'esprit que cela utilise la broche physique 5 sur le Pi, donc certains HAT ne fonctionneront pas.
Étape 4: Enceinte
Conseillé:
Lecteur audio utilisant Arduino avec carte Micro SD : 7 étapes (avec photos)
Lecteur audio utilisant Arduino avec une carte Micro SD : veuillez vous abonner à ma chaîne pour plus de projets………. Beaucoup de gens veulent interfacer la carte SD avec arduino ou souhaitez une sortie audio via arduino. Voici donc le moyen le plus simple et le moins cher d'interfacer une carte SD avec arduino. vous pouvez nous
Restez en sécurité en utilisant cette lampe de vélo avec clignotants : 5 étapes (avec photos)
Restez en sécurité en utilisant cette lampe de vélo avec clignotants : j'adore faire du vélo, je l'utilise généralement pour me rendre à l'école. En hiver, il fait le plus souvent encore noir dehors et il est difficile pour les autres véhicules de voir mes clignotants manuels. C'est donc un grand danger car les camions peuvent ne pas voir que je veux
Alerte précoce Raspberry PI Runway Light utilisant les données de cartographie de vol : 14 étapes (avec photos)
Alerte précoce Raspberry PI Runway Light utilisant les données de cartographie de vol : Cette lampe est née de plusieurs raisons en ce que je suis toujours intéressé par les avions qui survolent et pendant l'été le week-end, il y en a souvent des assez excitants qui volent. Bien que vous n'ayez tendance à les entendre qu'au fur et à mesure qu'ils passent
Radiocommande RF 433MHZ utilisant HT12D HT12E - Faire une télécommande Rf en utilisant HT12E & HT12D avec 433mhz: 5 étapes
Radiocommande RF 433MHZ utilisant HT12D HT12E | Faire une télécommande Rf à l'aide de HT12E & HT12D avec 433 mhz : dans cette instructable, je vais vous montrer comment faire une télécommande RADIO à l'aide d'un module émetteur-récepteur 433 mhz avec encodage HT12E & Décodeur HT12D IC. Dans cette instructable, vous pourrez envoyer et recevoir des données à l'aide de COMPOSANTS très très bon marché COMME : HT
Télécommande sans fil utilisant le module 2.4Ghz NRF24L01 avec Arduino - Nrf24l01 4 canaux / 6 canaux émetteur-récepteur pour quadrirotor - Hélicoptère Rc - Avion Rc utilisant Arduino: 5 étapes (avec photos)
Télécommande sans fil utilisant le module 2.4Ghz NRF24L01 avec Arduino | Nrf24l01 4 canaux / 6 canaux émetteur-récepteur pour quadrirotor | Hélicoptère Rc | Avion Rc utilisant Arduino: Pour faire fonctionner une voiture Rc | Quadricoptère | Drone | Avion radiocommandé | Bateau RC, nous avons toujours besoin d'un récepteur et d'un émetteur, supposons que pour RC QUADCOPTER nous ayons besoin d'un émetteur et d'un récepteur à 6 canaux et que ce type de TX et RX soit trop coûteux, nous allons donc en faire un sur notre