Raspberry Pi-收集温度数据并将其存储在文件中
服务器-VM上的Apache托管具有某些数据图的网站(HTML,PHP + JavaScript)
我需要将数据文件从Pi安全地发送到服务器,服务器将使用该数据文件在网站上填充图形。
最简单的方法是什么?
我对与此相关的所有事物都比较陌生,已经做了很多阅读和测试,但似乎无法弄清楚如何正确地做到这一点。
我为该图提供了两套代码,一套使用SQLite数据库(理想),另一套使用JSON文件(可以,但不是最理想的)。两者都只使用当前本地存储的文件。
答案 0 :(得分:0)
在服务器B上运行HTTPS Web服务,该服务要求服务器A发送用户名/密码以及数据。
答案 1 :(得分:0)
如果可能,可以在两台计算机之间创建VPN。
取决于数据的敏感性,HTTPS可能就足够了+带有额外授权的某种API。
非常基本的实现
Apache服务器端
save.php:
<?php
$temperature = $_GET['temperature'];
$timestamp = $_GET['timestamp'];
// INSERT into database
// or
// save in the file
Pi SIDE
我不知道您在Pi端使用的是哪种语言,但是您可以执行的操作是执行HTTP GET请求,例如:https://your.server.ip.or.domain/save.php?temperature=N×tamp=999999999
如果可能的话(Pi具有固定的IP),您可以根据请求过滤请求。它将使它更加安全。
答案 2 :(得分:0)
使PI将温度数据保存到一个简单的本地文件中。 (最好在内存托管分区中,因为SD卡确实会磨损。)
在PI上配置sftp服务器。
然后在Web服务器上使用以下命令从PHP中提取文件
file_get_contents("ssh2.sftp://{$user}:{$pass}@{$pi_ip}:22{$pi_path}"))
并进行相应处理。
答案 3 :(得分:0)
正如许多其他人所讨论的,HTTPS服务器将是一个好的开始,如果您为服务器注册了域名,则可以使用https://letsencrypt.org/,它提供了一个方便的脚本 certbot ,该脚本可以您可以将现有设置转换为https。
如果您没有注册域,则可以自签名SSL证书(简单的Google会将您指向所需的资源),并使用该证书在Apache服务器上启用HTTPS。