基于raspberry pi的Python机器通信

基于raspberry pi的Python机器通信,python,raspberry-pi,Python,Raspberry Pi,我有3台机器(覆盆子皮)。其中一个有一个传感器读数数据库,另外两个是读取/运行各种传感器的“从”设备。允许“主”pi访问“从”pi上的传感器读数的最佳解决方案是什么?这样它就可以将值保存到数据库中 所有的PI都在同一个内部网络上,并且永远不会在互联网上 “从”pi将整数返回给主pi,仅此而已。 它必须是python3(因为查询传感器的软件是) 最简单的方法是什么 某种web服务?到目前为止,我还没能让pysimplesoap和cherrypy在python3上工作 还有别的吗?烟火?仅仅返回2

我有3台机器(覆盆子皮)。其中一个有一个传感器读数数据库,另外两个是读取/运行各种传感器的“从”设备。允许“主”pi访问“从”pi上的传感器读数的最佳解决方案是什么?这样它就可以将值保存到数据库中

所有的PI都在同一个内部网络上,并且永远不会在互联网上 “从”pi将整数返回给主pi,仅此而已。 它必须是python3(因为查询传感器的软件是)

最简单的方法是什么

  • 某种web服务?到目前为止,我还没能让pysimplesoap和cherrypy在python3上工作
  • 还有别的吗?烟火?仅仅返回2个整数似乎有点复杂
  • 用插座滚动我自己的(这不是最简单的方法?!)
  • 放弃并在每个pi上放置一个mysql数据库,然后将“传感器价值报告网站”扩展到3个数据库/主机

我建议在从属服务器上安装简单的REST服务器,在主服务器上安装客户端

从机可以返回JSON格式的int,您可以在主机上轻松解析

请参阅简单服务器示例:

我将只在主服务器上有一个mySQL数据库,并让从属服务器使用cymysql python3模块将自己的表写入该数据库
(pip3安装cymysql)

为什么不使用自己的套接字不是最简单的?python的tcp库是否太低级,以至于看起来更像C而不简单?如果python使tcp编程变得不简单,那么我建议尝试一些类似node.js或tcl的方法。简化tcp编程的另一个方法(在任何语言中)是使用inetd(或xinetd)。然后,您的服务器只需要读取stdin并打印到stdout。这有点像普通插座的CGI。我最终使用了瓶子-。这是python3上唯一一个成功的方法。我甚至不能让SimpleHttpSocket做任何有用的事情(它可以返回目录列表!但我不能让它做任何其他事情,我有点匆忙)