我有来自GrovePi Zero Base Kit和Grove - PH Sensor Kit (E-201C-Blue) 的GrovePi Zero(GrovePi0)</a> 我在 Raspberry 上使用 Java(我可以使用任何版本的 JDK 8...17) Pi Zerro 2. with GrovePi-pi4j with Pi4j version 1.4(可以使用任何版本)
我下面的 GrovePHSensor 类代表 PH 传感器。
@GroveAnalogPin
public class GrovePHSensor extends GroveAnalogInputDevice<Double> {
public GrovePHSensor(GrovePi grovePi, int pin) throws IOException {
super(grovePi.getAnalogIn(pin, 4));
}
@Override
public Double get(byte[] data) {
/// WHAT TO DO HERE?
}
}
问题是那里有大量奇怪的代码会给出不同的结果,即使我认为我理解它的作用,我也不确定它是否正确。
例如,这个线程非常令人困惑https://forum.dexterindustries.com/t/grove-ph-sensor-kit-e-201c-blue-raspberry-pi-zero/7961/13
同时,Seeed 的 wiki 页面https://wiki.seeedstudio.com/Grove-PH-Sensor-kit/ 提供了具有不同公式的 Arduino 示例代码
当我读取 4 字节 [] 时,如果我读取的字节数超过 4 个字节,我会得到类似 [Pi4J IO read][0, 1, -106, -1]
很高兴有一个明确的 public Double get(byte[] data) {}
功能实现......