我的设置:
基于Pi(A)的DHT 11传感器,我想直接从Pi(B)访问传感器。
DHT11传感器<-> AAAAAA <-> BBBBB
我所做的:
利用Adafruit库,我可以成功地从Pi(A)中获取传感器的数据。(或者通过在node -Red上运行带有"exe“节点的python脚本)
问题是:
因此,如何从Pi(B)直接访问Pi(A) 的GPIO上的传感器。我已经搜索了一整天,我发现的都是关于并行计算、分布式计算等。在这两个Pis之间是否可以创建一个TCP/IP隧道。
先谢谢你们大家。干杯。
发布于 2014-08-28 15:18:54
在我看来,你有两个选择:
node-dht-sensor开始(如我在第2点中提到的那样)。如果不想为此创建一个节点,可以快速而肮脏地使用自述文件中的示例,并将其添加到函数节点中:
var sensorLib =require(节点-dht-传感器);//传感器连接到GPIO 4: if (sensorLib.initialize(22,4)) { var readout = sensorLib.read();结果={温度: readout.temperature.toFixed(2)湿度: readout.humidity.toFixed(2) } msg.payload =msg.payload=结果;}readout.temperature.toFixed=‘未能初始化传感器’;}返回消息;
然后,节点-red本身将被配置为提供一个http端点,其中它接受诸如GET /sensor1之类的调用,并从RawSerial/GPIO节点返回测量值。Pi(B)可用于查询此资源。免责声明:此代码既不容错,也不处理特殊情况。也没有经过测试。
发布于 2014-09-01 23:28:31
多谢各位。我的问题已经解决了。
我在Pi(B)上运行了一个TCP节点(如果安装了Node ),否则运行一个"netcat“命令来侦听特定的端口。
在Pi(A)上,我用python编写了这个“非常基本容易出错”的脚本(从我的DHT11传感器读取数据并将数据发送给Pi(B) -
#!/usr/bin/python
import sys
import socket
import Adafruit_DHT
host = '192.168.0.28'
port = 8888
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
print ' Failed to create a socket.'
sys.exit(1);
print 'Socket Created'
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#'
print 'example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 con$
sys.exit(1)
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print 'Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidit$
s.connect((host, port))
print 'Connected to Node-Red.'
value1 = str(temperature)
value2 = str(humidity)
value3 = value1+" "+value2
s.send(value3);
s.close();
else:
s.close();
print 'Failed to Access the Sensor.Run the script again.'对于正在使用DHT22 11/DHT22 22的用户。这是Github:DHT上Adafruit的DHT代码的链接。
(如果有别的方法,请告诉我。我愿意学习所有的选择。)干杯。
https://stackoverflow.com/questions/25541026
复制相似问题