Tabla de contenido:

Luz inteligente RPi IoT con Firebase: 4 pasos (con imágenes)
Luz inteligente RPi IoT con Firebase: 4 pasos (con imágenes)

Video: Luz inteligente RPi IoT con Firebase: 4 pasos (con imágenes)

Video: Luz inteligente RPi IoT con Firebase: 4 pasos (con imágenes)
Video: Raspberry Pi IOT Con Firebase, Python y Android 2024, Noviembre
Anonim
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase
Luz inteligente RPi IoT con Firebase

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

Firebase y Xcode
Firebase y Xcode
Firebase y Xcode
Firebase y Xcode
Firebase y Xcode
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

Terminando Xcode
Terminando Xcode
Terminando Xcode
Terminando Xcode
Terminando Xcode
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

Configuración de Raspberry Pi
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: