Tabla de contenido:

Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: 6 pasos (con imágenes)
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: 6 pasos (con imágenes)

Video: Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: 6 pasos (con imágenes)

Video: Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes !: 6 pasos (con imágenes)
Video: Locos trucos con muñecas miniatura y cambio de imagen: ¡Transformación de Muñecas de TikTok! 2024, Noviembre
Anonim
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes!
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes!
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes!
Manteniendo a tu bebé fresco este verano - ¡Controlando a los fanáticos tontos con cosas inteligentes!

Hace dos semanas, al momento de escribir esto, ¡me convertí en papá de un bebé increíble!

Con el cambio de estaciones, los días cada vez más largos y las temperaturas cada vez más cálidas, pensé que sería bueno tener algún tipo de monitor en el vivero para comprobar el calor que hacía allí.

No he jugado mucho con Python a lo largo de los años, ¡pero quería volver a hacerlo desde mi primer año en la universidad hace casi 5 años! Por eso pensé que sería mejor documentar lo que hice, para ayudarme más tarde, ¡también para ayudar a cualquiera que quiera hacer lo mismo!

Usando una Raspberry pi, Enviro pHAT y un enchufe inteligente TP-link kasa, ¡puede controlar los enchufes usando el marco IFTTT! ¡Es realmente simple de hacer e incluso puede modificar este tutorial para controlar cualquier cosa a través de diferentes sensores y diferentes dispositivos! Espero que te resulte útil. Si te gusta este instructivo, ¡no olvides votar por mi envío en el concurso de sensores!: D (perdón por preguntar), es la primera vez que hago esto y me gustaría tener la posibilidad de ganar algo por todo el tiempo que dedico a esto.

** EDITAR ** Durante los próximos días, voy a ver cómo enviar estos datos a un tablero de Grafana, si crees que esto sería bueno, ¡házmelo saber!:D

Entremos en ello …

Suministros

  1. Cualquier Raspberry pi servirá, pero elegí la Zero W, ya que era lo que tenía que entregar en mi dibujo, ¡también tiene el factor de forma más pequeño con WiFi habilitado de forma predeterminada! - Frambuesa PI Zero w
  2. Tarjeta SD, todos tienen diferentes preferencias en estos, ¡pero usé uno de estos! - Tarjeta micro SD
  3. Si está atascado, aquí está la documentación oficial admitida para tarjetas SD: tarjetas SD oficiales admitidas
  4. Cables de puente (se explicará más adelante) - Cables de puente
  5. Enviro pHAT para todos los gloriosos sensores. - Envrio-pHAT
  6. ¡Un enchufe inteligente, he optado por TP-Link ya que no necesitas ningún concentrador elegante para que funcione! - ¡Enchufe inteligente!
  7. Un ventilador tonto para controlar, puede usar cualquier ventilador, acabo de encontrar un ventilador en Amazon, pero cualquier ventilador de pared funcionará bien - Ventilador tonto
  8. Un soldador, pero si no desea utilizar un soldador, puede hacer clic en los encabezados para su PI y pHAT - GPIO-hammer-header

Para que funcione una conexión entre TP-links kasa e IFTTT, necesitará tener una cuenta TP-link kasa e IFTTT configurada antes de iniciar este instructable. Cuando reciba su enchufe inteligente TP-link, las instrucciones que se suministran con el enchufe inteligente lo guiarán a través del proceso de configuración, incluido cómo nombrar su enchufe y sus funciones básicas

Una vez que tenga toda su lista de compras, ¡es hora de comenzar a armarlo todo!

Paso 1: Configuración de su Raspberry Pi

Imágenes de su tarjeta micro-SD Obtenga la última y mejor imagen de Raspbian, la versión lite funcionará bien, ¡si no mejor para el cero w! -

Escriba esta imagen en la tarjeta SD, necesitará un lector para esto y un generador de imágenes, yo uso etcher -

Configurar Wifi (opcional) Si su PI tiene un WIFI integrado, ¿por qué no configurarlo ahora para ahorrar muchos problemas con las consolas más adelante?

Una vez que se ha creado una imagen de su pi, se ha expulsado la unidad. Desconecte y conecte la tarjeta SD para que su máquina la detecte nuevamente. Debería aparecer una partición de arranque.

Cree un archivo en blanco llamado wpa_supplicant.conf dentro de la partición de arranque de su pi, aquí coloque lo siguiente en este nuevo archivo:

red = {

ssid = "YOUR_SSID" psk = "YOUR_WIFI_PASSWORD" key_mgmt = WPA-PSK}

Habilitación de SSH en su PI de elección (opcional)

De forma predeterminada, una imagen limpia de Raspbian tendrá su ssh deshabilitado. Debería iniciar el sistema, conectar un teclado y una pantalla al Pi y luego habilitar ssh. Este paso habilitará ssh en el primer arranque. En la partición de arranque, cree un nuevo archivo llamado ssh. Un archivo vacío con exactamente ese nombre.

Después de completar estos dos pasos opcionales, su PI se conectará automáticamente a su WIFI y tendrá SSH habilitado de forma predeterminada.

Una vez que haya creado la imagen y configurado la tarjeta micro-SD, puede insertarla en su PI o elección y encenderla.

Actualización de su PI Una vez que haya arrancado su PI, puede encontrar la dirección IP de su PI dentro de la configuración de sus enrutadores inalámbricos. La mayoría de los enrutadores son diferentes, por lo que, desafortunadamente, sería difícil escribir una guía para esto.

Una vez que tenga la IP de su PI, conéctese a través de SSH e inicie sesión con lo siguiente:

Nombre de usuario: pi

Contraseña: frambuesa

Una vez que tenga una sesión SSH activa con su PI, querrá actualizarla, simplemente ejecute lo siguiente con la Y o N correspondiente durante la actualización:

sudo apt-get update

sudo apt-get upgrade

Siempre es bueno reiniciar un PI después de que se hayan instalado nuevas actualizaciones para asegurarse de que se haya ejecutado de nuevo con las últimas actualizaciones, esto se puede lograr con

sudo reboot -n

Ahora que está listo el PI, ¡es hora de pasar al siguiente paso!

Paso 2: Configuración de Enviro PHAT

Configuración de Enviro PHAT
Configuración de Enviro PHAT
Configuración de Enviro PHAT
Configuración de Enviro PHAT

Cableado de su Enviro pHAT

Una vez que tenga todo su pi actualizado, ¡puede conectar su Enviro pHAT al PI de su elección!

*** Para asegurarse de no dañar su PI o su pHAT, asegúrese de apagarlo primero ***

Aquí utilicé los cables de puente porque se puede obtener un lavado térmico de la CPU al calentarse bajo el Enviro pHAT. Este calor adicional puede alterar las lecturas de temperatura que obtendría más adelante. Debido a esto, he usado 5 cables de puente en los pines siguientes:

  • Pin 3 - GPIO2 (SDA I2C)
  • Pin 5 - GPIO3 (SCL I2C)
  • Pin 7 - GPIO4
  • Pin 6 - Tierra
  • Pin 4 - 5V

Consulte el diagrama de cableado en la parte superior de este paso para obtener una referencia visual o el siguiente enlace:

pinout.xyz/pinout/enviro_phat

(perdón por el trabajo de pintura de mala calidad)

Cuando conecte su pHAT, asegúrese de tenerlo configurado correctamente o, de lo contrario, podría dañarlo. Para hacer esto, configuré la mía para que los encabezados ANALOG IN estén hacia la ranura de la tarjeta SD, esto luego se cambió en mis imágenes para que encajara más cómodamente en mi "portador".

Instalando las dependencias

Encienda su PI y vuelva a activar SSH

Una vez de vuelta en su PI, ejecute lo siguiente para instalar los paquetes y el software necesarios para su Enviro pHAT:

curl https://get.pimoroni.com/envirophat | intento

Asegúrese de presionar S o N cuando sea necesario.

Una vez completada la instalación, asegúrese de reiniciar su PI …

sudo reboot -n

Probando el pHAT

Para asegurarse de que su pHAT esté conectado correctamente, puede ingresar a un módulo de Python y ejecutar algunos comandos volviendo a su PI y escribiendo python, una vez en un módulo de Python, escriba lo siguiente:

de envirophat import weather

imprimir (weather.temerpature ())

Esto debería mostrarle una lectura como la siguiente:

>> de envirophat import weather

>> imprimir (clima.temperatura ()) 24.0806166987

Solución de problemas

Si obtiene algo parecido a un error a continuación:

Traceback (última llamada más reciente): Archivo "", línea 1, en Archivo "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", línea 134, en temperatura self.update () Archivo " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", línea 169, en actualización if self._read_byte (REGISTER_CHIPID) == 0x58: # comprobar id del sensor 0x58 = Archivo BMP280" / usr / lib / python2.7 / dist-packages / envirophat / bmp280.py ", línea 116, en _read_byte return self.i2c_bus.read_byte_data (self.addr, register) IOError: [Errno 121] Error de E / S remota

A continuación, puede ejecutar:

sudo i2cdetect -y 1

Esto ejecutará una verificación de diagnóstico en sus conexiones / cableado y estaría buscando algo como a continuación:

pi @ raspberrypi: ~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: - - - - - - - - - - - - - 10: - - - - - - - - - - - - - 1d - - 20: - - - - - - - - - - 29 - - - - - - 30: - - - - - - - - - - - - - - - 40: - - - - - - - - - 49 - - - - - - 50: - - - - - - - - - - - - - - - - - 60: - - - - - - - - - - - - - - - - 70: - - - - - - - 77

Si no es así, tendrá que volver y comprobar el cableado de nuevo, consulte el diagrama de cableado y vuelva a intentarlo.

Instalación del script pi-baby-cooler.py

Si todo está bien y tuvo éxito en obtener una lectura de temperatura, ¡podemos continuar e instalar el paquete baby-cooler.py!

Debido a cómo instructables maneja los enlaces, he adjuntado el script.py en el encabezado del paso anterior … Para copiar esto en su PI, recomiendo usar algo como WinSCP:

winscp.net/eng/download.php

WinSCP es un popular cliente SFTP y cliente FTP para Microsoft Windows. Copie el archivo entre una computadora local y servidores remotos usando los protocolos de transferencia de archivos FTP, FTPS, SCP, SFTP, WebDAV o S3.

WinSCP es fácil de usar, simplemente conéctese a su PI usando la dirección IP de su PI, luego arrastre y suelte el archivo.py donde le gustaría ejecutarlo para mí, esto es desde / home / pi.

Ahora que el script.py está en su PI, es hora de pasar a configurar su cuenta / conexiones IFTTT

Paso 3: Configuración de su cuenta / conexión IFTTT

Configuración de su cuenta / conexión IFTTT
Configuración de su cuenta / conexión IFTTT
Configuración de su cuenta / conexión IFTTT
Configuración de su cuenta / conexión IFTTT
Configuración de su cuenta / conexión IFTTT
Configuración de su cuenta / conexión IFTTT

A continuación, veremos cómo obtener un token IFTTT, que se usará al llamar a la función caliente / frío dentro del script para conectarse al enchufe kasa y encender / apagar el ventilador.

Creando los Webhooks

Dirígete a https://ifttt.com/ y crea una cuenta si aún no tienes una.

Una vez que haya iniciado sesión, dentro de la barra de búsqueda, busque: TP-link kasa

Una vez que se haya cargado, haga clic en servicios y luego en TP-link kasa. Luego deberá conectar su cuenta kasa a su cuenta IFTTT, inicie sesión en su cuenta kasa a través de IFTTT para hacer una conexión.

Después de vincular su cuenta, haga clic en "Mis subprogramas", luego en un nuevo subprograma, luego haga clic en "+ esto" y busque los webhooks.

Haga clic en "Recibir una solicitud web", dentro del nombre del evento, escriba hot (esto puede ser lo que desee, pero debe actualizarlo más tarde dentro del script pi-baby-coller.py o no funcionará, he usado hot para convertir el ventilador encendido y frío para apagar el ventilador. Luego haga clic en crear gatillo.

A continuación, debemos vincular su nuevo activador a su cuenta de Kasa, haga clic en "+ eso" y busque kasa, haga clic en TP-link kasa y luego haga clic en "encender", después de esto, seleccione el dispositivo que desea encender, luego haga clic en crear acción. Revise la acción y haga clic en finalizar si es correcto.

**********

Recuerde que si ha elegido otro nombre de Evento que no sea "caliente" y "frío", deberá tomar nota de estos para más adelante y actualizar el script. De lo contrario, el script.py no funcionará

**********

Después de haber creado nuestro primer web hook, repita el proceso para "frío", pero esta vez está seleccionando apagar en lugar de encender al seleccionar + esa acción.

Una vez que tengamos dos webhooks de eventos dentro de la sección de su cuenta my applets, haga clic en services y busque webhooks y luego haga clic en eso. Dentro de aquí verá un botón de documentación (arriba a la derecha), haga clic en él. Aquí es donde encontrará su clave de token IFTTT. Mientras esté aquí, tome nota de su clave (la necesitará más adelante), he editado la mía dentro de la imagen, de lo contrario, cualquiera podría encender o apagar mis enchufes inteligentes.

Probando los webhooks

Ahora que hemos creado dos webhooks que están conectados a nuestra cuenta de kasa, ¡podemos probar si funcionan o no!

Dentro de su PI, puede ingresar lo siguiente:

curl -X POST

Donde dice "caliente", debe agregar el nombre de su evento, si lo dejó como "caliente", déjelo en paz. Donde dice / usted … necesita reemplazar esto con su clave de token IFTTT. Presiona Enter y deberías escuchar el clic del relé de tus enchufes inteligentes al encender el enchufe. Si no pudo escucharlo, puede verificar la aplicación Kasa para verificar el estado de sus enchufes.

Ahora tenemos las dependencias para nuestro Enviro pHAT instaladas y ahora tenemos la configuración de IFTTT, es hora de terminar con la modificación del código.

Paso 4: editar el guión

Editando el guión
Editando el guión

Nombre del evento e IFTTT TOKENS De vuelta en su pi, escale a la ubicación de su script pi-baby-cooler.py, para mí está en / home / pi (mi carpeta de inicio) y edite el archivo usando nano:

nano pi-baby-cooler.py

Dentro del buscador donde dice def turn_off ()

def turn_off ():

# Establezca su palabra de activación, p. Ej. "frío" - y el token IFTTT Webhook a continuación. TRIGGER_WORD = "cold" TOKEN = "TU TOKEN IFTTT VA AQUÍ" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("¡Ventilador apagado!"):

Esta es la función para apagar el ventilador. Para ello, envía un webhook a IFTTT que activa el tplink HS100 para que se apague. Si ha mantenido el funcionamiento del disparador dentro de su cuenta IFTTT igual que "frío", puede dejarlo y simplemente reemplazar el token que obtuvo de la documentación de webhooks anteriormente. Si eligió un nombre de evento diferente, reemplace esta palabra aquí.

Después de pegar su token IFTTT, vaya a la siguiente sección donde dice def turn_on ()

def turn_on (): # Establezca su palabra de activación, p. ej. "hot" - y el token de webhook IFTTT a continuación. TRIGGER_WORD = "hot" TOKEN = "TU TOKEN IFTTT VA AQUÍ" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("¡Fan encendido!")

Esta función es inversa a la de apagado, ¡enciende el enchufe inteligente TP-link!

Si ha mantenido el activador funcionando dentro de su cuenta IFTTT igual que "hot", puede dejarlo y simplemente reemplazar el token que obtuvo de la documentación de webhooks anteriormente. Si eligió un nombre de evento diferente, reemplace esta palabra aquí.

Todo lo demás ya está codificado, por lo que no debería tener que hacer ningún cambio en el código, excepto TRIGGER_WORD, TOKEN y algunos ajustes en las temperaturas, ¡lo que sigue!

Cambiar las temperaturas

A continuación, busque donde dice # Variables locales.

intente: # Variables locales. state = 0 # Establece el estado del interruptor low = 20 # Valor bajo para el nivel de temperatura (centígrados). alto = 24 # Valor alto para el nivel de temperatura (centígrados). período = 120 # Retraso, en segundos, entre llamadas.

La variable de estado es cómo el pi sabe si el enchufe está encendido o no, esto se actualiza más tarde si se calienta demasiado (24 + * c, luego el estado se cambia más tarde a 1), esto también dispararía al webhook y se encendería el enchufe inteligente encendido!

La variable baja es qué tan fría quiero que se ponga la habitación antes de que se apague el enchufe. Si desea que la habitación sea más cálida, simplemente cambie esto a un valor más alto. Si lo desea más frío, baje el valor.

La variable alta es la temperatura máxima que quiero que alcance la habitación antes de que el ventilador se active y comience a enfriar la habitación. Si desea que el ventilador se encienda antes de esto, simplemente reduzca el valor, o si desea que esté más caliente, aumente el valor.

La variable de período es la duración en segundos entre las verificaciones de temperatura, si desea que el script pi verifique con menos frecuencia y luego aumente el número si desea acortar el tiempo, baje el número.

Una vez que haya realizado los cambios, guarde y salga de nano.

CTRL + x

Paso 5: usar el script

Usando el guión
Usando el guión

Ejecutando el script localmente

Hay algunas formas en que puede ejecutar este script, puede conectarse a través de SSH y escribir lo siguiente:

sudo python /pi-baby-cooler.py

Esto ejecutará el script a pedido, esto solo funcionará mientras haya una sesión SSH activa en el PI. La otra forma es usar la pantalla, la pantalla no está instalada de forma predeterminada, no lo creo, por lo que se tendrá que usar una pantalla de instalación de sudo apt.

Aquí hay un gran tutorial sobre cómo usar la pantalla correctamente:

Screen o GNU Screen es un multiplexor de terminales. En otras palabras, significa que puede iniciar una sesión de pantalla y luego abrir cualquier cantidad de ventanas (terminales virtuales) dentro de esa sesión. Los procesos que se ejecutan en la pantalla continuarán ejecutándose cuando su ventana no sea visible, incluso si se desconecta.

Automatización para ejecutarse en el arranque

La otra forma es editar el archivo de arranque en /etc/rc.local para hacer esto, use nano.

sudo nano /etc/rc.local

La edición de este archivo hará que el script se ejecute al arrancar. lo que significa que siempre se ejecutará cuando el PI esté encendido, así es como ejecuto el 90% de mis scripts en otros PI.

Si ha utilizado rc.local, puede ejecutar el siguiente comando para comprobar qué se está ejecutando actualmente en el PI. Esto es útil para solucionar problemas más tarde para ver si el script funciona o no:

ps -aef | pitón grep

Paso 6: ¡Terminado

Bueno… ¡Gracias si sigues aquí y has llegado a este punto!

Lo siento, ha pasado bastante tiempo, este fue mi primer instructivo y no estaba muy seguro de qué escribir.

Como mencioné al principio, ¡este instructables tiene muchas aplicaciones diferentes con el uso de calor para activar un enchufe inteligente! Podrías enfriar cualquier habitación de la casa / piso / apartamento / garaje / cobertizo. Incluso puede modificar el IFTTT para activar cualquier dispositivo inteligente que sea controlable a través de IFTTT, no solo tienen que ser dispositivos TP-link kasa.

Me encantaría saber si ha probado estos instructivos o incluso si lo encontró interesante, ¡déjeme un comentario a continuación!

Si tiene alguna pregunta, asegúrese de dejarla a continuación y haré todo lo posible para responderla.

Concurso de sensores
Concurso de sensores
Concurso de sensores
Concurso de sensores

Finalista en el Concurso de Sensores

Recomendado: