Cree una unidad de Raspberry Pi de seguridad con cámara IR secreta: 22 pasos (con fotos)

Cree una unidad de Raspberry Pi de seguridad con cámara IR secreta: 22 pasos (con fotos)

Tabla de contenido:

Anonim

¿Alguna vez quisiste saber qué sucede en tu habitación cuando no estás en casa?

¿Alguna vez quisiste saber quién está entrando a tu habitación y rebuscar en tus cosas?

¿Quería tener un amigo robot que pueda enviar mensajes y quién respondería?

Entonces tengo noticias para ti: Se puede hacer con una pi de frambuesa y solo algunas partes adicionales.

¡Vamos hagámoslo!

No tengas miedo de los muchos pasos. Algunas las puedes omitir, otras son solo informativas. Esto no es una receta de la A a la Z, sino una lista de sugerencias sobre qué se puede hacer y cómo.

Suministros:

Paso 1: Reúna las piezas

Qué necesitas: (con los precios que pagué)

  • Frambuesa pi B o B + o 2 (35.- €)
  • al menos una tarjeta SD de 8GB (espacio de lote para fotos …) (5.-)
  • La cámara de infrarrojos para el pi (25.-)
  • un wifi-stick para el pi (8.-)
  • un sensor PIR (ebay 3.-)
  • Un reflector IR-LED (5.-)
  • un transistor Darlington y dos resistencias (por ejemplo, BD649 y 10k y 2k)
  • un convertidor reductor de 12V a 5V (LM2596 DC-DC ajustable Step-Down ebay 3.-)

Eso es.

Opcionalmente puede agregar algunos otros sensores como un sensor de temperatura o algún sensor activado por ruido o una barrera de luz.

Y, por supuesto, puede comenzar sin el PIR y el reflector y luego agregarlo a la configuración. Si solo quieres un poco de chatterbot, ni siquiera necesitas la cámara.

Paso 2: Comience con una máquina virtual (opcional)

Bueno, este instructivo tiene muchos aspectos diferentes: Hardware, software, python, lua, messenger. Y estoy bastante seguro de que en algún momento olvidé mencionar algún paso importante. Entonces, tome este instructivo no como una receta sino como una recopilación de sugerencias sobre qué se puede hacer y cómo. Luego salga y descúbralo usted mismo.

Así que vamos a empezar con el software:

Para el 90% del desarrollo de software, no usé una pi frambuesa real, sino una máquina virtual raspi. Intenté configurar un raspi virtual hace algún tiempo, pero luego no supe qué hacer con él. Porque obviamente no puede acceder a la cámara en un raspi virtual, ni a los GPIO ni configurar un punto de acceso wifi virtual. Entonces, ¿qué diablos?

¡Bien para esta instructora una máquina virtual es realmente útil! Con un pi virtual, puede desarrollar todo el software solo con su computadora. No hay raspi adicional, potencia, display, teclado. Sin problemas con el wifi, la conexión, los cables de alimentación, etc. Pero, por supuesto, también puedes hacer todos los pasos con una pi frambuesa real.

Para iniciar un raspi virtual necesitas:

  • Qemu
  • una imagen de frambuesa pi
  • Un Windows-PC con algún espacio libre de GB

Aproximadamente seguí este tutorial para configurar el raspi virtual:

No es realmente difícil y encuentras muchos buenos tutoriales. Lo principal es que durante el primer arranque, el nombre de las particiones debe ajustarse, ya que el raspi no se ejecuta en una tarjeta SD sino directamente desde el archivo de imagen.

Esta es la última línea que comienza mi raspi virtual:

Los comandos -redir tcp-aseguran que el raspi virtual se conecte a la red.

Una vez que se inicia el raspi, puede iniciar sesión en la ventana de QEMU, como lo haría en un raspi externo, o puede conectarse a través de ssh. Tal vez tenga que habilitar ssh con el comando "sudo raspi-config".

Paso 3: Configura el Real Pi

Bueno, la verdadera pi seguramente tendrá que configurarse para la última cosa, así que si quieres saltarte la máquina virtual, ¡hazlo!

Debe instalar la imagen en la tarjeta sd, arrancar la frambuesa y conectarla a su red local. Esto se puede hacer por Ethernet o por wifi.

Prefiero el wifi, porque me da la libertad de mover el pi por la casa.

Para la primera configuración de wifi necesitas conectarte de alguna manera a tu pi. Esto se puede hacer agregando un teclado y una pantalla a tu pi, o conéctalo con un cable y usa ssh, si está habilitado.

Hay tantos tutoriales diferentes sobre estos pasos, que no los describo en detalle aquí.

Finalmente, debe tener una pi raspberry en ejecución y poder conectarse a ella con ssh desde su computadora.

Si planea hacer más cosas con su raspberry pi, haga una copia de seguridad del sistema actual y comience con esta imagen en lugar de la predeterminada. De esta manera no tienes que ajustar el wifi cada vez! Ya está allí.

Paso 4: Mobaxterm

Mobaxterm es uno de los mejores xterminales para windows. No requiere instalación y proporciona un servidor X y un cliente ssh con pestañas en Windows.

Cuando use una pi raspberry virtual con qemu, debe conectarse a la máquina virtual usando el parámetro "-p 5555". Aunque la máquina virtual le dice una dirección IP completamente diferente.

Y mi característica favorita de Mobaxterm realmente es la edición remota. Puede hacer clic con el botón derecho en cualquier archivo en el sistema conectado remoto y abrirlo con un editor en su PC. Hay muchos buenos editores completos en la PC con resaltado de sintaxis y código completo y muchas cosas más. De acuerdo, también podría haber esas características en la frambuesa pi, pero ahora sobre ssh. Personalmente prefiero el texto sublime para editar, porque es muy rápido y proporciona una gui perfecta. Si cambia algo y presiona guardar, Mobaxterm le pregunta si desea actualizar el archivo remoto también. Si selecciona "guardar automáticamente", el archivo se actualiza cada vez que cierra el editor.

Puedes usar tu pantalla 4k, algún tipo de estudio de desarrolladores de software y actualizar los archivos de la frambuesa con un clic y una sonrisa.:-)

O.k., trabajar con vi en una ventana ssh de 640x480 píxeles también puede ser rápido, ¡pero esto realmente aumentó mi productividad!

Paso 5: Actualizar y actualizar

Bueno, lo primero después de configurar una nueva frambuesa pi es cambiar la contraseña predeterminada para el usuario pi y actualizar el software.

La contraseña se puede restablecer con el comando:

contraseña

o vía:

sudo raspi-config

Después de eso debes actualizar el software. Prefiero eliminar el motor wolfram-alpha de la imagen original antes de hacer esto, porque libera al menos unos 500 MB y no lo necesito. Puedes eliminarlo con y luego actualizarlo:

sudo apt-get remove wolfram-engine

sudo apt-get update sudo apt-get upgrade

Paso 6: Agrega el Messenger

Esta es la clave de security-raspi: Un mensajero basado en consola para Linux: telegrama.

Bueno, este mensajero también se discute un poco controvertido, porque al igual que Whatsapp, carga todos los contactos en su teléfono y los compara con la base de datos del servidor. Entonces el mensajero te dice qué amigos también tienen al mensajero.

Por otro lado: el mensajero es completamente gratuito (mejor que Whatsapp) y proporciona chats seguros. ¡Y una instalación en la frambuesa pi seguramente no robará ninguna información de contacto!:-)

Para hacer que el telegrama se ejecute en la frambuesa, siga estas buenas instrucciones de emme shop:

www.instructables.com/id/Telegram-on-Raspberry-Pi/ o

www.instructables.com/id/Raspberry-remote-control-with-Telegram/

Y recuerdo que tuve que instalar algunas bibliotecas adicionales para hacer funcionar el script lua: sudo apt-get install lua-lgi libnotify-dev

¡Pero antes de registrar al cliente, tómese el tiempo para leer el siguiente paso!

Paso 7: Truco secreto para registrar Telegram en tu Pi

Si finalmente desea comunicarse con su seguridad-pi, entonces el mensajero de telegramas necesita su propia identidad.

Una forma de lograrlo es usar un teléfono fijo para registrar la frambuesa.

Despues de entrar

bin / telegram-cli -k tg-server.pub

cuando se le pregunte sobre su número de teléfono, simplemente ingrese su número de teléfono fijo (con el código de país y el código de ciudad) y presione Entrar.

Luego se le pide que ingrese el código o escriba call para que le llamen. Esto es lo que hacemos ahora. Escriba una llamada y reciba una llamada telefónica con una voz de computadora que le indica el código. Escríbelo o ingrésalo directamente. Ahora el ID está registrado en este número de teléfono.

Esta es la única vez que realmente necesita este número de teléfono.

La información de ID ahora se almacena en tu raspberry pi en el directorio /home/pi/.telegram-cli

Puede copiar todo este directorio y llevar el ID a otro raspi o hacer una copia de seguridad.

Paso 8: Prueba el Messenger

Si aún está conectado con su raspi, su mensajero ya debería estar activo.

Si no es así, vuelve a empezar con el comando:

bin / telegram-cli -k tg-server.pub

Luego use su teléfono con la aplicación de telegramas o instale la versión de escritorio y envíe algunos mensajes a la frambuesa.

Paso 9: Script el Messenger

El script lua es el cerebro de la instalación del telegrama pi raspberry.

El script por defecto tiene muchas funciones en él. Le sugiero que complete cada función con un comando como:

imprimir ("Hola, esta es la función (reemplazar con el nombre de la función)")

De esta manera podrás ver a qué función se llama cuando. Iniciar la versión de script con

bin / telegram-cli -k tg-server.pub -s test.lua

y ver qué está pasando.

Las funciones más importantes pueden ser:

  • función on_msg_receive (msg)

  • función on_get_difference_end ()

  • función cron ()

Obviamente, siempre se llama al primero cuando se recibe un mensaje. ¡Pero no solo esto, también se llama cuando el telegrama muestra un mensaje que enviamos! Es por eso que hay las siguientes líneas en la función:

- Si este es un mensaje de nosotros para cualquier otra persona, omita la interpretación.

if (msg.from.id == our_id) luego devuelve end

Eso significa que, si el mensaje fue enviado desde el raspi, omita el resto de la función y regrese.

El segundo se llama cuando finaliza la sincronización. Esto es especial para telegram, porque el chat se respalda en el servidor y si se conecta con otro dispositivo, todas las conversaciones se actualizan en este dispositivo.

El tercero es como linux-cronjob y se puede usar para hacer cosas de vez en cuando.

Paso 10: Ping extendido - Pong

La secuencia de comandos ya tiene instalada la función de ping-pong típica, lo que significa que si envía ping al cliente que se ejecuta en la secuencia de comandos, le enviará un ping de vuelta. Puedes hacer esto por horas …:-)

Si desea una reacción a diferentes palabras, debe agregar algunas instrucciones if.

Con unas pocas palabras más esto puede ser bastante confuso. Y no se pueden combinar palabras o comandos. El comando debe ser enviado según lo programado. Si enviara "Ping" en lugar de "Ping", no pasaría nada, ya que esta no es la misma palabra y el texto del mensaje se compara con == con la cadena "Ping".

Otra posibilidad de encontrar palabras de comando en el mensaje es hacer esto:

functionsnamen = {"help", "time", "clock", "pid", "temp", "ping", "start", "stop", "uptime"} functionen = {sendhelp, sendtime, sendtime, sendpid, sendtemperature, sendping, startsecuritycam, stopsecuritycam, senduptime} function forformand (TOID, FROMID) para i, nombre en pares (functionsnamen) do --print (i.. ""..name) if (string.find (string.lower) commandstringarray 1), name)) luego --print ("Command:"..name.. "found.") functionen i (TOID, FROMID, commandstringarray) return end end end end end

- En lua significa comentar. Para las dos líneas anteriores puede eliminar los comentarios y ver qué sucede dentro de la función.

El checkforcommand se llama desde on_msg_receive con esto:

if (msg.to.id == our_id) luego checkforcommand (msg.from.print_name, msg.from.id) fin

Hay dos matrices, una para el comando para enviar llamadas "functionsnamen" y la otra para las funciones en el lua-script que se llaman en caso de que se encuentre un comando.

Con string.lower () convertimos la matriz de comandos 1 en minúsculas y la comparamos con las funciones. De esta manera no hay diferencia si escribimos "Ping" o "pINg" o "PiNG" o algo así.

Es posible que hayas notado que existe la matriz de comandos. Esto tiene la siguiente función: después de recibir un mensaje, el texto completo se analiza en esta matriz. De esta manera puedo verificar si la primera palabra del mensaje fue "ping" y la segunda fue otra cosa, y así sucesivamente. La cadena de comandos es una matriz de cadenas. Lua es bastante fácil con los tipos de variables y tipos de matriz.

Para obtener el mensaje en esta matriz, escribí esta función, que obviamente se llama antes de verificar el comando:

commandstringarray = {} function messagetextinstringarray (msg) commandstringarray = {} leerzeichen = 1 count = 1 completestring = msg.text - print ("checkfunction llamado: msg.text ist:"..completestring) leerzeichen = (string.find (completestring, "% s")) while leerzeichen ~ = nil do commandstringarray count = string.sub (completestring, 1, leerzeichen) - print ("un espacio encontrado. Partstring:"..commandstringarray count) completestring = string.sub (completestring, leerzeichen + 1) count = count + 1 leerzeichen = (string.find (completestring, "% s")) end commandstringarray count = completestring end

el bucle está buscando un espacio que "" separa dos palabras y escribe las cadenas de partes en los índices subsiguientes de la matriz.

Paso 11: Haz que la frambuesa haga algo: envía el tiempo de actividad

Ahora no solo queremos que el lua-script nos responda. A veces incluso queremos recuperar información de otras partes del raspi.

Esto se hace principalmente por bash-scripts.

Si desea saber cuánto tiempo se está ejecutando su raspberry pi desde el último reinicio, simplemente puede ingresar

tiempo de actividad

En la consola obtendrás algunas fechas y cargas como:

10:40:47 hasta 3:33, 0 usuarios, carga promedio: 0,32, 0,13, 0,07

Entonces, si desea enviar esta información a través de un telegrama, llame a esta función:

función senduptime (TOID) local handle = io.popen ("uptime") local result = handle: read ("* a") handle: close () --print (result) send_msg (TOID, result, ok_cb, false) end

Paso 12: Comandos propios: temperatura de envío

Lo mismo se aplica si desea emitir comandos propios como enviar la temperatura.

Cuando se recibe el comando "temp", se llama a la siguiente función:

Función sendtemperature (TOID) local handle = io.popen ("/ home / pi / telegram / temp.sh") resultado local = handle: read ("* a") handle: close () - print (result) send_msg (TOID, resultado, ok_cb, falso) fin

El shell-script temp.sh en sí contiene esto:

#! / bin / sh echo "scale = 3; $ (grep 't =' / sys / bus / w1 / devices / w1_bus_master1 / 28-00044a4203ff / w1_slave | awk -F't = '' {print $ 2} ') / 1000 "| bc -l

Esta línea lee un sensor de temperatura digital DS18B20 y emite el resultado. Debido a que estamos leyendo el resultado y enviándonos como un mensaje de telegrama, finalmente recibimos la temperatura actual a través de un telegrama. Genial eh?

Paso 13: Siguiente paso: Ejecutar Telegram en una pantalla

¿Una pantalla? ¿Qué es una pantalla ahora?

Bueno, la pantalla es una buena herramienta para Linux, que le da a nuestros comandos un destino.

Hasta ahora, habíamos iniciado el mensajero de telegramas mientras estábamos conectados, ya sea directamente o vía ssh. Y pudimos enviar mensajes con el comando "msg Andy, este es mi mensaje".

Ahora me gustaría que el cronjob de linux esté haciendo esto por nosotros. Iniciar telegrama después del arranque y enviar mensajes de vez en cuando.

¿Pero cómo? El cronjob no sabe dónde escribir "msg Receipient Message" para.

Aquí es donde "pantalla" es muy útil! Si iniciamos el cliente de telegramas en una nueva sesión de pantalla, obtendremos una consola con un nombre. Y luego podemos decirle a cronjob: Enviar "msg mensaje de destinatario" a la pantalla llamada telegramsession. Y esto funciona igual que en una consola, si se inicia sesión en cronjob.

Ok, en primer lugar, esto parece bastante confuso, pero solo tienes que jugar un poco y luego es más claro.

Instale la pantalla con el siguiente comando:

pantalla de instalación de sudo apt-get

Inicie el cliente de telegramas en una nueva pantalla con el siguiente script

#! / bin / sh # Inicie Telegram en una pantalla separada. cd / home / pi / telegram / screen -m -d -L -S TGScreenSession / home / pi / tg / bin / telegram-cli -k /home/pi/tg/tg-server.pub -s / home / pi /telegram/check.lua

En mi configuración, telegram-client está instalado en / home / pi / tg, mientras que lua-script y todos los bash-scripts están en / home / pi / telegram. Solo quería separar un poco estas cosas.

El comando hace lo siguiente: inicia una nueva pantalla separada (-d) con el nombre TGScreensession (-S) y ejecuta el siguiente comando.

Cuando emites este comando, nada visible pasará. Es como siempre en Unix: ¡Ninguna noticia es una buena noticia! Pero en el fondo se está ejecutando la nueva pantalla.

Puedes verlo si escribes

pantalla -ls

Eso enumera todas las pantallas activas con PID.TGScreenSession.

Y si quieres ver lo que está pasando allí, escribe

screen -r (Your Number.TGScreensession)

y pulsa enter. Esto te lleva a la pantalla, que a su vez se "pierde". Eso significa que una vez que (-r) Vuelva a conectar una pantalla, se convierte en su consola activa y las funciones de la pantalla se pierden. Eso significa que no puedes volver a una pantalla desde allí. Luego tiene que terminar el telegrama con "salir" o "safe_quit" e iniciar una nueva pantalla.

Echa un vistazo a la captura de pantalla.

Paso 14: Enviando cualquier cosa con Telegram

Ahora estamos listos para enviar cualquier cosa desde cualquier aplicación en la frambuesa.

Tomemos el tiempo por ejemplo. Digamos que quiero un mensaje cada 15 minutos con la hora actual. De acuerdo. También podríamos hacer esto con la función cron () en el script lua, pero esta vez lo hacemos con un script bash llamado sendtime.sh:

#! / bin / sh

# Enviar mensaje usando la pantalla del servicio de mensajes de Telegram -S TGScreenSession -X eval "stuff 'msg Andy Its:` date +% H:% M`. ¡Exactamente!' 015 "

Este comando envía todo dentro de las comillas dobles a la pantalla llamada "TGScreenSession".

Las cosas '…' 015 son para la pantalla en sí, el resto va a la aplicación que se ejecuta allí, en nuestro caso: el cliente de telegram.

el `date +% H:% M` es reemplazado por el shell con la hora actual en el formato Hora: Minuto.

Con el mismo principio, también puede enviar una imagen con sendpic.sh:

#! / bin / sh

# Enviar imagen usando la pantalla del servicio de mensajes de Telegram -S TGScreenSession -X eval "stuff 'send_photo $ 1 $ 2' 015"

Aquí hice un truco, porque una imagen tiene un nombre de archivo y codificarla en el script no sería inteligente. Así que utilicé los parámetros de shell $ 1 y $ 2.

El sendpic.sh tiene que llamarse así:

sendpic.sh Andy /home/pi/pictures/mynewpicture.jpg

Esto enviaría el "mynewpicture.jpg" al usuario Andy, si hay una pantalla llamada TGScreenSession y el telegrama-cliente se está ejecutando en ella.

El siguiente paso es sobre la depuración!

Paso 15: ¿Qué pasa si no pasa nada?

Cuando se opera con scripts de pantalla y de bash que envían algo de aquí para allá, a veces sucede que no sucede nada. ¿Y ahora qué?

Aquí enumeré algunos problemas que encontré y cómo los resolví:

  1. Asegúrate de que la pantalla realmente se está ejecutando. Si ha vuelto a conectar la pantalla, es posible que no haya más pantalla. Y todos los shell-scripts automáticos que intentan enviarlo a una pantalla fallan. Normalmente no te hablan de esto.

    intente "screen -ls" para ver si hay una pantalla en ejecución.

  2. Además, si inició telegram-cli directamente desde shell, entonces no hay pantalla.

    intente "screen -ls" para ver si hay una pantalla en ejecución.

  3. Si hay una pantalla, intente volver a adjuntarla para ver si telegram-cli todavía se está ejecutando.

    con "pantalla -r (número.TGScreenSession)"

  4. Muchas veces cambié algo en el lua-script e intenté iniciar la pantalla, no funcionó, porque hice un error tipográfico en el script. Entonces, antes de intentar iniciar la pantalla, comience con telegram-cli y compruebe que el lua-script está funcionando

    intente "bin / telegram-cli -k tg-server.pub -W -s script.lua" si funciona, ingrese "safe_quit" e inicie la pantalla.

  5. Algunas veces tuve la situación de que el telegrama-cli no se conectaba correctamente. Puedes ver esto en la imagen. No sé por qué, pero si envié un mensaje a la frambuesa, este estado terminó muy rápido.
  6. Mientras jugaba con varios raspis virtuales y reales ejecutándose en el mismo ID de telegrama, si a menudo me ocurría que después del inicio del telegrama, mientras se sincronizaban los chats, el lua-script se bloqueó debido a los numerosos mensajes. Utilice "function on_get_difference_end ()" para activar el manejo del mensaje mediante un script. Esta función se llama una vez finalizada la sincronización.
  7. Si el script de lua reacciona a los mensajes que envía, podría terminar fácilmente en un punto muerto. Como "tiempo" sería el comando y "El tiempo es 12:34" es la respuesta. Luego, el comando se encuentra en los mensajes enviados y la secuencia de comandos enviaría mensajes interminables.

Paso 16: Añadiendo Hardware Real: PIR

El siguiente paso es agregar el sensor PIR. Pedí un HC-SR501 de eBay en China. Con menos de 3 € que era bastante barato y funciona perfecto!

La fuente de alimentación para este dispositivo varía de 4.5V a 20V, mientras que la salida del detector siempre tiene 3.3V. Perfecto para la frambuesa pi!

Para reaccionar en la salida, decidí escribir un script en Python, porque ya tengo algo de experiencia en eso. Y es muy fácil combinar los IO con la cámara y otras cosas.

Entonces, lo que realmente hace el script en python es:

  • esperar a que el sensor de movimiento se dispare
  • tomar una foto con la fecha y hora actual como nombre de archivo
  • enviar la imagen a través de telegrama

Paso 17: Añadir el reflector IR

¡El proyector IR es el asesino definitivo! ¡Vigilancia en cuartos oscuros absolutos sin luz notable para los humanos!

El proyector IR es el más barato que puedes conseguir en Alemania: el proyector IR y solo cuesta 4,95 € más gastos de envío. Pero, por supuesto, también puedes encontrar algo similar en ebay o amazon.

Funciona con 12V y toma aproximadamente 400mA cuando se está ejecutando. Digo cuándo, porque el sensor PIR no necesita luz para funcionar. Así que solo espero que se detecte movimiento, luego enciendo la luz (no visible para humanos), tomo una foto y apago la luz nuevamente.

Por supuesto, el proyector no puede conectarse directamente a la frambuesa pi. Necesitamos un interruptor seguro de 3.3V para 12V y 400mA. Lo primero que hay que tener en cuenta es un relevo. Pero esto es muy ruidoso y la corriente de conmutación causó caídas de voltaje y un funcionamiento inestable en mi Raspberry Pi. Debido a esto, decidí usar un transistor Darlington.

Tenía un BD649 a mano y utilicé este. Puede manejar hasta 8 A de corriente, por lo que ni siquiera se calienta un poco a 400 mA.:-)

Solo necesita dos resistencias y el transistor darlington para cambiar el proyector de forma segura.

Como quería tener solo una fuente de alimentación, también instalé un convertidor reductor de 12V a 5V. Estos dispositivos cuestan menos de 2 € en ebay. Solo busque "LM2596 DC-DC ajustable Step-Down".

Paso 18: conecta el script Python y el script Lua

Bueno, después de todo lo que se estaba ejecutando, pensé que sería bueno si de alguna manera pudiera detener el script de Python y comenzar de nuevo a través de un telegrama. Solo para asegurarse, las funciones de seguridad están inicialmente desactivadas y podrían activarse con un simple comando de "inicio". De esa manera, podría comprobar que la cámara está apuntando correctamente y luego salir de la habitación y activar la trampa fotográfica.

¿Pero cómo?

Necesitarías tener una forma en que ambos scripts puedan hablar entre sí. Y esto se puede hacer con sockets. Un zócalo es como un buzón. La secuencia de comandos espera a que alguien ponga algo en el buzón y, si es así, reacciona.

Esos zócalos pueden implementarse en python y lua y usarse para intercambiar cualquier tipo de datos.

Como solo quería una comunicación unidireccional, implementé un hilo de escucha en el script python y el remitente en el script lua. Si la secuencia de comandos de lua recuerda qué fue lo que se envió a la secuencia de comandos de python, no necesitamos una retroalimentación.

Estos son los dos sitios web para buscar ayuda:

docs.python.org/2/library/socket.html

w3.impa.br/~diego/software/luasocket/

Paso 19: empacar todo en una vivienda agradable

O hazlo como lo hice y empaca todo en una caja de cartón negra.

En una versión anterior utilicé un convertidor lineal 7805 para producir 5 V para la frambuesa, pero produjo tanto calor que después de unos minutos tenía más de 50 ° C en la caja. Con el convertidor reductor no alcanza los 40 ° C.

Pero la mayoría de las veces dejo la caja abierta de todos modos, porque los LED de la frambuesa son la única indicación de que se está ejecutando. Y son demasiado débiles para ser visibles desde el frente.

Paso 20: ¿Por qué no hay software para descargar?

Cuando comencé este proyecto, no tenía en mente que algún día haría un instructivo sobre él.

Luego creció y creció y ahora es un verdadero desastre. Hay lua, python, la cámara, la comunicación de socket desde lua a phyton, telegrama, varios problemas de hardware y muchos nombres alemanes para variables y comentarios.

Por lo tanto, no sirve de nada copiar el script lua al raspi e iniciarlo. ¡No correrá! Tiene que ajustar todas las rutas, instalar las bibliotecas para adaptarse a su configuración.

Si comienzas por ti mismo, encontrarás algunos de estos problemas y podrás resolverlos con las sugerencias que te proporcioné. Escribirlo en un asunto preciso y completo significaría hacerlo todo de nuevo y desafortunadamente no tengo tiempo para eso.

Mi software final es solo una combinación extendida del código del paso 9 al 15. Pero si tiene preguntas detalladas sobre algunas partes, no dude en preguntar. ¡Yo tratare de ayudarte!

Paso 21: Además de eso: ¿a quién le gustaría implementar un bot de aventuras de texto?

Una de mis funciones favoritas es la "respuesta grosera". Además de los comandos, el lua-script está buscando palabras "sucias" en el mensaje. Solo un for-loop que compara una matriz de cadenas con la matriz de cadenas de mensajes. Y si se encontró una palabra sucia, los scripts envían otra palabra sucia que se selecciona aleatoriamente de otra cadena de cadenas con respuestas. ¡Esto es mucho más divertido que el viejo ping-pong!:-)

Además de todas las funciones de seguridad, también puede pensar en un lua-script que proporcione una aventura de texto clásico. Y si incluye algún tipo de manejo por parte del usuario, esto podría ser jugado por diferentes jugadores simultáneamente.

¿O un cliente de chat anonymus, donde sus mensajes se transmiten a algún extraño? Pero, ¿quién usaría o necesitaría algo así?

Paso 22: Addendum: Ejemplo para Socket entre Python y Lua-Scripts

En los dos archivos de este paso, debe haber toda la información para configurar la comunicación por socket.

El lado lua es tan corto porque solo envío datos desde lua al script python.

El revés es realizado por los mensajes a la pantalla.

Espero que esto ayude a la hora de configurar el software.