任务:在 PC 上的程序中显示数据。
扩展任务:(解决此问题后)我最终会将数据保存到文件并将程序扩展为 GUI。
微控制器:Arduino Duemilanove
操作系统:Windows 7
语言:Java
编译器:Eclipse
Io 方法:USB type 'B'(arduino 端),USB type A(PC 端)
我在这里和其他网站上阅读了至少 30 个不同的教程/问题。我从网站上获取了示例并下载了一些库,并且不断收到红线和错误。我现在已经放弃了这一切,并决定谦虚地来这里看看是否有人愿意帮助我。
我怀疑我在我的头上,但没关系,我很高兴学习,并被称为愚蠢!
我了解其他软件(例如“处理”)已经可以为我执行此操作。我想自己做这个软件。
我看过 RXTX 和 COMM API。老实说,到目前为止,我从中得到的只是我知道它的存在,有些东西显然已经过时了,而且似乎大多数教程都假设了大量不同学科的知识。
在我写这个问题时,我还查看了这里提出的更多问题,其中大部分我以前已经看过。我挥舞着白旗!有人帮我了解我在做什么!
我想做的代码示例。
// How would I make this class read from the arduino?
class arduinoData {
static int t = (int) 72.91; //pull from arduino instead of making it up
static int temperature(){
return t;
}
}
public class example
{
public static void main(String[] args)
{
System.out.println("temp from the sensor is: "+ arduinoData.temperature()+"F");
//output:
//temp from the sensor is: 71F
}
}
编辑:Arduino 串行监视器工作正常。我将添加 arduino 代码来清除它。
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer = { 0x28, 0x56, 0xA0, 0xA5, 0x03, 0x00, 0x00, 0x7D };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(Thermometer, 10);
pinMode(13, OUTPUT);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) { Serial.print("Error."); }
else {Serial.print(DallasTemperature::toFahrenheit(tempC));Serial.print("F");}
}
void loop(void)
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
sensors.requestTemperatures();
Serial.print("temp from sensor: ");printTemperature(Thermometer);
Serial.print("\n\r");
}
Arduino输出:
传感器温度:70.25F
传感器温度:70.70F
传感器温度:70.70F
传感器温度:70.70F
更新:
好的,我想我已经通过下面提到的教程正确安装了 rxtx。但是,我在这一点上迷路了:
对于 Windows,您可以在与上述示例代码相同的目录中创建一个名为 run.bat 的批处理文件。此批处理文件可以在您的系统上使用,但您可能需要修改路径以匹配系统上 Java 和 Arduino IDE 的安装位置。
setlocal set PATH=%PATH%;C:\Program Files (x86)\arduino-0017\ "C:\Program Files (x86)\Java\jdk1.6.0_12\bin\javac" -cp "C:\Program Files (x86)\arduino-0017\lib\RXTXcomm.jar" SerialTest.java "C:\Program Files (x86)\Java\jdk1.6.0_12\bin\java" -cp "C:\Program Files (x86)\ arduino-0017\lib\RXTXcomm.jar;。” 串行测试
基本上,您需要将 RXTXcomm.jar 添加到您的类路径中,并且您需要将关联的 JNI 接口 DLL (rxtxSerial.dll) 添加到您的 PATH 中。对于其他平台,您需要将相同的 JNI 共享库添加到您的运行时路径。
当您运行 run.bat 文件时,您应该会看到与 Arduino IDE 串行监视器相同的结果。您可以使用 Ctrl+Break 停止程序。
我该怎么办???