Tabla de contenido:
- Paso 1: Firebase y Xcode
- Paso 2: Terminando Xcode
- Paso 3: Configuración de Raspberry Pi
- Paso 4: Recinto
Video: Luz inteligente RPi IoT con Firebase: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Esta guía le muestra cómo crear y configurar una aplicación para controlar la Raspberry Pi a través de Firebase (una base de datos en línea). Y luego imprimiendo en 3D una carcasa para la Pi Zero W, una Powerboost 1000C, una batería y una Blinkt !.
Para poder seguirlo más fácilmente, recomiendo estar familiarizado con Xcode y Raspberry Pi.
Y si te gusta lo que ves, sígueme en Instagram y Twitter (@ Anders644PI) para estar al día con lo que hago.
Necesitará:
-
Una Raspberry Pi Zero W con adaptadores y encabezados GPIO
(o el Pi Zero ordinario con un dongle WiFi)
- Un PowerBoost 1000 C
- Una batería de iones de litio - 3.7v 2000mAh
- ¡Un Blinkt! (o cualquier pHAT / HAT, que: no usa el pin 5 físico y los HAT deben estar planos en la parte inferior).
- Una tarjeta Micro SD de 8GB o superior, con Raspbian Stretch (con escritorio) en ella
- Un teclado y un mouse (pero también puede conectarse a través de ssh, si sabe cómo)
- Una conexión a un monitor o TV (¡o ssh!)
- Tornillos de desecho
- Alambres pequeños
- Un pequeño interruptor y un pequeño botón.
- Una impresora 3D y un carrete de filamento PLA de cualquier color, y un carrete de PLA transparente (o puede utilizar un servicio 3D como 3D Hubs para imprimirlo por usted)
Paso 1: Firebase y Xcode
Primero configuraremos Firebase con la aplicación, para que podamos comunicarnos desde la aplicación al Pi.
Si se confunde, puede ver este video.
1. Abra Xcode y cree un nuevo proyecto de Xcode. Elija Aplicación de vista única y llámela RPiAppControl, y asegúrese de que el idioma sea Swift. Presione Siguiente y guárdelo.
2. Copie su Identificador de paquete, porque lo necesitaremos más adelante.
3. En Firebase, inicie sesión con su cuenta de Google y haga clic en Ir a la consola.
4. Cree un nuevo proyecto y llámelo RPiAppControl.
5. Haga clic en Agregar Firebase a su aplicación IOS. Pegue su identificador de paquete y presione Registrar aplicación.
6. Descargue GoogleService-Info.plist y arrástrelo a su proyecto Xcode.
7. De vuelta en Firebase, presione Continuar. Luego abra una ventana de terminal y navegue hasta la ubicación de su proyecto Xcode.
8. Ejecute este comando:
pod init
9. ¡Abra el Podfile y bajo use_frameworks!, agregue esta línea:
pod 'Firebase / Core'
10. Vuelva a escribir el tipo de terminal: pod install y cierre Xcode.
11. En Finder, navegue hasta su proyecto Xcode y abra el archivo.xcworkspacefile recién creado.
12. Aquí, vaya a AppDelegate.swift, y en import UIKit agregue esta línea:
importar Firebase
Y en la función de la aplicación, agregue esta línea:
FIRApp.configure ().
13. De vuelta en Firebase, haga clic en Continuar y luego en Finalizar.
14. Vaya a Base de datos, luego Reglas y establezca ".read" y ".write" en verdadero. Presione PUBLICAR.
15. De vuelta en Xcode, abra el Podfile, y debajo de la primera línea que establezcamos, agregue esto:
pod 'Firebase / Database'
16. De vuelta en la terminal, ejecute pod install nuevamente.
Paso 2: Terminando Xcode
Ahora terminaremos el código y el diseño en Xcode.
Esto está usando Xcode 9 y Swift 4
Código para ViewController1. En la parte superior de ViewController, y debajo de la importación UIKit, agregue esto:
importar Firebase
importar FirebaseDatabase
2. En la parte inferior de ViewController, y debajo de la función didReceiveMemoryWarning, copie y pegue estas funciones para cada botón:
func num1 (estado: Cadena) {
let ref = FIRDatabase.database (). reference () let post: [String: Any] = ["state": state] ref.child ("num1"). setValue (post)}Recuerde cambiar el (número
3. En la función viewDidLoad, debajo de super.viewDidLoad (), inserte esta línea para cada botón (para botones múltiples, simplemente cambie el (número). Vea la imagen…):
num1 (estado: "OFF")
Disposición del panel principal y los botones
1. Vaya al Main.storyboard y coloque algunos botones. Puede diseñarlos como lo hice yo, o personalizarlos como desee.
2. Conecte los botones con ViewController. Cada botón debe estar conectado dos veces: uno como acción y UIButton llamado botón num (número), y el otro como salida predeterminada y llámalo num (número) Color. Ver imagen …
3. Luego, para todos los botones, pegue esta línea en cada una de las funciones:
if self.num1Color.backgroundColor == UIColor.lightGray {// Establece el color de fondo en lightGray
num1 (estado: "ON") // Envía el estado: "ON" a la base de fuego self.num1Color.backgroundColor = UIColor (rojo: 0,96, verde: 0,41, azul: 0,26, alfa: 1,0) // Establece el color de fondo en reddish} else {num1 (state: "OFF") // Envía el estado: "OFF" a la base de fuego self.num1Color.backgroundColor = UIColor.lightGray // Establece el color de fondo en lightGray}
Ahora debería poder probarlo, ejecutando la aplicación, y cuando presione los botones, debería ver que cambia de estado, en Realtime Database en Firebase.
Toques finales (opcional)
1. Descargue las imágenes a continuación e inserte LaunchScreen-image-j.webp
2. Vaya a Assets.xcassets y luego a AppIcon. Aquí, coloque el AppIcon -size correspondiente.
Paso 3: Configuración de Raspberry Pi
Ahora tenemos que configurar el Pi con Firebase, para que la aplicación pueda comunicarse, lanzar Firebase, al Pi.
No escribí el código, pero puedes encontrar el código original aquí.
1. En la terminal, ejecute las actualizaciones habituales:
sudo apt-get update && sudo apt-get dist-upgrade
2. Luego importaremos pyrebase (Firebase):
sudo pip instalar pyrebase
sudo pip3 install pyrebase sudo pip3 install --upgrade google-auth-oauthlib
3. Ahora descargue la biblioteca Blinkt:
curl https://get.pimoroni.com/blinkt | intento
4. Clona mi repositorio de GitHub:
clon de git https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl
5. Edite AppRPiControl_Template.py:
nano RPiAppControl_Template.py
6. Complete su Firebase ApiKey y projectId. Puede encontrarlos yendo a su Proyecto de Firebase y haciendo clic en Agregar otra aplicación y luego Agregar Firebase a su aplicación web.
7. Personalice las funciones y guarde sus cambios presionando ctrl-o (enter) y cierre con ctrl-x.
8. Ahora ejecútelo con:
sudo python3 RPiAppControl_Template.py
9. Luego, si está usando un Blinkt, puede probar el ejemplo, cuando haya completado su Firebase ApiKey y projectId:
ejemplos de cd
nano RPiAppControl_blinkt_demo.py
Ahora ejecútelo:
sudo python3 RPiAppControl_blinkt_demo.pyTenga en cuenta que después de ejecutar el script, se tarda aproximadamente un minuto en prepararse (al menos en el Pi Zero). Y el script debe ejecutarse en Python 3
10. BONUS: Si desea que el script se ejecute al arrancar, puede averiguar cómo hacerlo aquí.
Botón de apagado / encendido
Es opcional instalar un botón de encendido, pero lo recomiendo. Siga este video para configurarlo.
Tenga en cuenta que esto usa el pin físico 5 en el Pi, por lo que algunos HAT no funcionarán.
Paso 4: Recinto
Recomendado:
Luz LED de escritorio inteligente - Iluminación inteligente con Arduino - Espacio de trabajo de Neopixels: 10 pasos (con imágenes)
Luz LED de escritorio inteligente | Iluminación inteligente con Arduino | Espacio de trabajo de Neopixels: Hoy en día pasamos mucho tiempo en casa, estudiando y trabajando virtualmente, así que ¿por qué no ampliar nuestro espacio de trabajo con un sistema de iluminación personalizado e inteligente basado en Arduino y LEDs Ws2812b? Aquí te muestro cómo construir tu Smart Luz LED de escritorio que
Luz de seguridad inteligente WiFi DIY con Shelly 1: 6 pasos (con imágenes)
Luz de seguridad inteligente WiFi DIY con Shelly 1: este instructivo buscará crear una luz de seguridad inteligente DIY utilizando el relé inteligente Shelly 1 de Shelly. Hacer que una luz de seguridad sea inteligente le permitirá tener mucho más control sobre cuándo se activa y cuánto tiempo permanece encendida. Puede ser acti
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: 10 pasos (con imágenes)
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: ¿Alguna vez has querido un reloj inteligente? Si es así, ¡esta es la solución para usted! Hice Smart Alarm Clock, este es un reloj que puede cambiar la hora de la alarma de acuerdo con el sitio web. Cuando suene la alarma, habrá un sonido (zumbador) y 2 luces
Luz inteligente DIY con Raspberry Pi Zero: 4 pasos (con imágenes)
DIY Smart Light con Raspberry Pi Zero: las luces inteligentes son cada vez más populares. Estas luces suelen ser luces LED que se pueden controlar a través de WiFi o Bluetooth. Los colores, la saturación y el brillo se pueden cambiar con un teléfono inteligente. Una cosa de la que me di cuenta es que, a menudo, inteligente li
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: 4 pasos (con imágenes)
Cómo controlar el interruptor inteligente básico Sonoff basado en ESP8266 con un teléfono inteligente: Sonoff es una línea de dispositivos para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea es Sonoff Basic. Es un conmutador habilitado para Wi-Fi basado en un gran chip, ESP8266. Este artículo describe cómo configurar el Cl