sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
mosquitto_sub -t "raspi"
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CFactory;
import com.pi4j.io.i2c.I2CDevice;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import java.sql.Timestamp;
public class MQTT {
public static void main(String[] args) {
String topic = "raspi";
int qos = 2;
String broker = "tcp://192.168.2.80:1883";
String clientId = "Raspberry PI";
MemoryPersistence persistence = new MemoryPersistence();
try {
I2CBus i2cBus = I2CFactory.getInstance(I2CBus.BUS_1);
I2CDevice mcp9801 = i2cBus.getDevice(0x4f);
byte[] buffer = new byte[2];
MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
sampleClient.connect(connOpts);
int bytes = mcp9801.read(0, buffer, 0, 2);
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
String content = timestamp + "," + Double.toString((double) buffer[0] - (double) buffer[1] / 256);
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
sampleClient.publish(topic, message);
sampleClient.disconnect();
System.exit(0);
} catch (Exception me) {
System.out.println("msg " + me.getMessage());
System.out.println("cause " + me.getCause());
System.out.println("excep " + me);
me.printStackTrace();
}
}
}
{
"name": "mqtt",
"type": "record",
"fields": [
{
"name": "millis",
"type": "timestamp-millis"
},
{
"name": "temperature",
"type": "double"
}
]
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
10 | |
7 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
2 |