A riesgo de decir lo obvio, necesita una forma de transferir los datos del PI a un servidor web. Hay muchas maneras de hacerlo, la mejor opción según la naturaleza y el volumen de los datos.
Si ayuda, tenga en cuenta que un Raspberry PI es un poco como un pequeño servidor web. Ejecuta Linux y tiene un poder de procesamiento similar al de un pequeño VPS.
Te daré algunos ejemplos, pero esto está muy lejos de ser exhaustivo.
- ¿Por qué es bueno aprender a programar en Raspberry Pi en comparación con una computadora normal?
- He visto proyectos en los que puedo usar una Raspberry Pi para funcionar como una cámara de seguridad, por lo que graba en movimiento. ¿Hay alguna manera de decirle que guarde los últimos 5 minutos de metraje basados en un sensor?
- ¿Puedo usar una Raspberry Pi para compartir Internet Wi-Fi a Wi-Fi? ¿Si es así, cómo?
- ¿Qué sistema operativo disponible para Raspberry Pi es el menos afectado por cortes de energía o caídas de tensión, y puede reiniciarse fácil y rápidamente a un estado de funcionamiento nuevamente?
- ¿Cómo se puede combinar un Arduino y una Raspberry Pi para hacer que un bot autónomo funcione con comandos de voz?
Opción 1: un script de shell en el PI que periódicamente copia datos en un directorio en el servidor web. Este script de shell podría desencadenar una rutina de importación de datos en el servidor (o el servidor podría estar ejecutando una rutina de importación programada independientemente).
Es posible que scp o rsync sean buenas maneras de lograr esto, pero creo que sería prudente que el servidor no “confíe” en el PI, es decir, solo permita que el PI “ponga” acceso al servidor, de modo que cree un usuario especialmente limitado con un límite acceso de escritura a un directorio designado y ningún otro acceso.
Opción 2: un programa en el PI que (probablemente con frecuencia) publica actualizaciones de datos en un servicio web tranquilo que se ejecuta en el servidor web.
Opción 3: cree un túnel ssh seguro desde el PI al servidor web y utilícelo para actualizar directamente una base de datos (por ejemplo, Postgresql o MySql) que se ejecute en el servidor web. (Si bien esta opción tiene algunas ventajas, me preocupaba la posibilidad de que un cliente comprometido otorgue acceso directo a la base de datos, por lo que definitivamente debe tomar medidas para restringir el acceso de los clientes a los datos mediante permisos y / o mediante el uso de procedimientos almacenados )
Una cosa muy importante sería considerar las implicaciones de seguridad de sus elecciones. No puede confiar en el cliente (ya que está fuera de su control), por lo que debe asegurarse de tratar los datos como “contaminados”. Es decir, se podría hacer que sus datos contengan fácilmente la inyección de script o el código de inyección sql a los que su aplicación web puede o no ser vulnerable.