¡Conectar nuestros proyectos a Internet ahora es mucho más fácil y económico! los $6 Frambuesa Pi Pico W, una actualización del Raspberry Pi Pico original, trajo una gran actualización: Wi-Fi. Esta actualización, junto con el precio de $6, permite a los fabricantes aprovechar la potencia del SoC RP2040 para una gran cantidad de aplicaciones de Internet de las cosas. El Pico W también encabeza la lista de nuestros mejores placas RP2040.
Ya hemos cubierto cómo pasar datos hacia y desde un Raspberry Pi Pico W a otro servicio web, Anviyo Pero, ¿qué sucede si solo desea recopilar algunos datos y enviarlos al mundo? Hay muchas formas de hacer esto, pero la más simple tiene que ser IFTTT.
IFTTT (If This Then That) es un servicio web que puede tomar datos de muchas entradas diferentes (Twitter, domótica, Google, Facebook, etc.) y enviarlos a otros servicios.
En este proyecto, utilizaremos el servicio más básico, los webhooks, para enviar una solicitud HTTP POST desde una Raspberry Pi Pico W al servicio de IFTTT. En IFTTT, crearemos un subprograma que interceptará el webhook y activará el envío de un tweet en Twitter.
Para este proyecto necesitarás
El circuito del sensor de temperatura
Nuestro circuito es simple, consiste solo en el Raspberry Pi Pico W y un sensor de temperatura. El DHT11 es un sensor de temperatura de cuatro pines de bajo costo que es omnipresente en la comunidad de fabricantes. Mirando desde el frente (la “jaula” azul), nos conectamos a la Raspberry Pi Pico W de la siguiente manera:
Alfiler 1: (Cable rojo) Conecte VCC a 3V3 (SALIDA) del Pico W.
Alfiler 2: (Cable amarillo) Conecte la salida de datos a GP4 del Pico W.
Alfiler 3: Sin conexión.
Alfiler 4: (Cable negro) Conecte GND a GND del Pico W.
Configuración de IFTTT
IFTTT (If This, Then That) es el conducto que conecta nuestra Raspberry Pi Pico W con Twitter. IFTTT es un servicio gratuito que ofrece una gran variedad de formas de conectar diferentes servicios de datos.
Vamos a crear un subprograma que reacciona a un webhook (una URL personalizada) que envía datos a IFTTT. Luego, IFTTT agregará los datos en un mensaje que se enviará a nuestros seguidores en Twitter.
1. en un navegador visita IFTTT e iniciar sesión / crear una cuenta.
2. Haga clic en Crear.
3. Haga clic en Agregar. Este es nuestro evento desencadenante. Si esto sucede, nuestro applet se inicia. En nuestro caso si se envía un webhook desde la Raspberry Pi Pico W.
4. Busque webhook y luego haga clic en el icono de webhook.
5. Haga clic en Recibir una solicitud web. Esta es nuestra petición, enviada desde el Raspberry Pi Pico W.
6. Establezca el Nombre del evento en Post_Tweet y luego haga clic en Crear disparador.
7. Haga clic en Luego que agregar. Este es el resultado de nuestro activador, en este caso se envía un Tweet.
8. Busque Twitter y luego haga clic en el icono de Twitter.
9. Seleccione Publicar un Tweet.
10 Verifique que se haya seleccionado la cuenta de Twitter correcta, es posible que deba vincular su cuenta de Twitter a IFTTT. Reemplace el texto del tweet con su propio mensaje personalizado. Vincular su cuenta de Twitter a IFTTT es un proceso automatizado, que IFTTT activará y le pedirá que confirme.
11 Haga clic en Agregar ingrediente y seleccione Valor 1. Luego termine el resto del mensaje, en este caso indicando que la temperatura está en grados Celsius. Haga clic en Crear acción para guardar. Los ingredientes son la forma que tiene IFTTT de agregar información adicional a nuestro tweet extrayendo los datos de nuestra URL personalizada.
12 Haga clic en Continuar.
13. Revise los detalles del subprograma, active la opción de notificaciones y haga clic en Finalizar cuando esté listo. Las notificaciones nos permiten depurar el subprograma, en caso de que ocurra un problema.
Se ha creado el IFTTT Applet, pero aún no tenemos la URL del webhook. Esta URL es la que envía los datos de temperatura del Raspberry Pi Pico W a nuestro servicio IFTTT. La URL requiere nuestro activador (Post_Tweet) y una clave API, lo que desbloquea el acceso IFTTT.
1.Visitar este enlace en una nueva pestaña/ventana del navegador.
2. Copie el enlace Hacer una solicitud web POST o GET en el bloc de notas o en un editor de texto. Su texto mostrará una clave API correcta, por razones de seguridad hemos editado el texto.
https://maker.ifttt.com/trigger/event/json/with/key/YOUR API KEY HERE
3. Elimina /json y cambia event a Post_Tweet.
https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR API KEY HERE
Ahora tiene una URL de webhook válida que vinculará su Raspberry Pi Pico W a Twitter a través de IFTTT.
Configuración de la Raspberry Pi Pico W
Nuestro Raspberry Pi Pico W actúa como un dispositivo de recopilación de datos. Se conecta a nuestro Wi-Fi, y cada hora toma una lectura de temperatura. Esto luego se envía a IFTTT usando una URL de webhook personalizada. IFTTT luego envía el mensaje a Twitter según el applet que acabamos de crear.
Nuestro objetivo ahora es instalar la última versión de firmware MicroPython para nuestro Raspberry Pi Pico W, luego escribir algunas líneas de código MicroPython para conectarnos a nuestro Wi-Fi, tomar una lectura de temperatura y luego enviar esos datos a IFTTT.
1. Seguir esta guía para descargar e instalar el firmware de MicroPython y configurar Thonny.
2. Abra Thonny y cree un nuevo archivo.
3. Importe tres módulos de código. Red permite que el Pico W se conecte a una red Wi-Fi. Urequests es una versión de Requests, un medio para trabajar con datos web, para MicroPython. DHT se refiere al sensor de temperatura DHT11 utilizado en el proyecto.
import network
import urequests
import dht
4. Importe dos módulos más de código. Desde el módulo de tiempo, importe la función de suspensión, la usaremos para agregar una pausa al proyecto. Desde el pin de importación del módulo Machine, esto permite que nuestro código interactúe con el GPIO.
from time import sleep
from machine import Pin
5. Cree un objeto, «sensor» que conecte nuestro código al DHT11 conectado a través del GPIO. Este objeto nos permite interactuar con el sensor conectado en el Pin 2, consultando datos de temperatura.
sensor = dht.DHT11(Pin(2))
6. Cree un objeto «wlan» y utilícelo para conectar el código al Wi-Fi en el Raspberry Pi Pico W, luego encienda el Wi-Fi.
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
7. Conecte su Pico W a su punto de acceso Wi-Fi usando su SSID y contraseña.
wlan.connect("SSID","PASSWORD")
8. Haga una pausa de cinco segundos antes de continuar. Esto no es estrictamente necesario ya que la conexión Wi-Fi anterior es una llamada de bloqueo que se conectará o fallará, luego liberará el bloqueo. Esta pausa está presente para permitir un poco más de libertad de acción.
sleep(5)
9. Imprime el estado actual de la conexión Wi-Fi. Esto será Verdadero para una conexión exitosa o Falso si no se pudo conectar.
print(wlan.isconnected())
10 Agregue un bucle para ejecutar continuamente el siguiente código. Un ciclo while True ejecutará continuamente el código hasta que se apague el Pico W. Tenga en cuenta que el código que sigue a esta línea está sangrado para mostrar que es parte del ciclo.
while True:
11 Tome una lectura con el DHT11. Necesitamos hacer esto para obtener los datos sin procesar.
sensor.measure()
12 Guarde la temperatura actual en un objeto, temperatura.
temperature = sensor.temperature()
13 Imprime la temperatura en Python Shell (REPL). Esto es útil para depurar cualquier problema. Debería mostrar la temperatura cada vez que el ciclo itera.
print(temperature)
14 Cree un objeto, mensaje, para almacenar la URL de webhook única que creamos anteriormente. Al final de la URL, agregue ?value1= y asegúrese de que esté entre comillas » «. Recuerde agregar su clave API IFTTT única.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="
15. En la misma línea, agregue la temperatura actual almacenada en el objeto «temperatura». Tenga en cuenta que necesitamos convertir la temperatura de un número entero/flotante a una cadena usando la función str(). Su línea de mensaje ahora debería decir lo siguiente.
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
dieciséis. Publique el mensaje en Twitter usando urequests.post. Básicamente, esto envía los datos a IFTTT a través de la URL del webhook, y luego IFTTT los envía a Twitter.
urequests.post(message)
17 Haga una pausa en el código durante una hora (3600 segundos) antes de permitir que se repita el bucle. IFTTT tiene un límite de frecuencia de 25 tweets por día, por lo que para tener una fuente constante de datos, debemos limitar los tweets a uno por hora. Si supera este límite, IFTTT desactiva el applet hasta el día siguiente.
sleep(3600)
18 Guarde el código en su Raspberry Pi Pico W como tweet_temp.py
Listado completo de códigos
import network
import urequests
import dht
from time import sleep
from machine import Pin
sensor = dht.DHT11(Pin(2))
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("SSID","PASSWORD")
sleep(5)
print(wlan.isconnected())
while True:
sensor.measure()
temperature = sensor.temperature()
print(temperature)
message = "https://maker.ifttt.com/trigger/Post_Tweet/with/key/YOUR IFTTT API KEY HERE?value1="+str(temperature)
urequests.post(message)
sleep(3600)
Probar y ejecutar el código
Antes de implementar correctamente el proyecto, debemos probar que el código funciona.
1. Haga clic en el botón Ejecutar, ubicado en la esquina superior izquierda de Thonny.
2. Compruebe la salida. Debería ver Verdadero, lo que confirma que estamos conectados a la red Wi-Fi. Entonces debería aparecer la temperatura.
3. Visita tu cuenta de Twitter y verifica que el mensaje haya sido publicado. Esto debería tardar entre 10 y 20 segundos en aparecer.
4. Haga clic en Detener para detener la ejecución del código.
Con el código probado con éxito, ahora podemos configurar el código para que se ejecute automáticamente cuando se inicia la Raspberry Pi Pico W.
1. Guarde como código en su Raspberry Pi Pico W como main.py. MicroPython (en cualquier dispositivo) buscará main.py cuando se encienda. Si está presente, el código dentro de este archivo se ejecuta automáticamente.
2. Desconecte el cable micro USB del Pico W, luego vuelva a insertarlo para forzar un reinicio.
3. Revisa tu cuenta de Twitter para ver el tweet correspondiente.