OneNET物联网平台09 IDEA运行java项目连接MQ接收消息

1、下载并导入demo工程

demo工程:https://open.iot.10086.cn/doc/mq/images/tools/OneNET-MQ-demo-20200119.zip

将demo工程下载并解压,然后打开IDEA,将其导入:

菜单FileOpen...打开导入弹窗,选择解压的文件夹,点击OK,出现下图所示弹窗,点击Trust Project

image-20220215163113968

等待其下载maven依赖包

2、配置demo工程

修改com.onenet.mq包下的MqClient.java类,下面两张图中的代码:

image-20220215164136456

image-20220215164156118

比如我的,根据在Onenet平台创建的消息队列MQ实例,将代码写成这种:

//用户自定义合法的UTF-8字符串,可为空
String clientID = "yuyun-mq";
String serverURI = "ssl://183.230.40.96:8883";
//MQ实例名称
String userName = "yuyun-mq-test";

//topic名称
String mqTopic = "yuyun-topic-test";
// 订阅名称
String mqSub = "yuyun-topic-data";
// MQ实例名称
String userName = "yuyun-mq-test";
// MQ实例的 access_key
String accessKey = "fFjnCBIQ5dhZg2wtI6306NoxT17oA1DWraGVhrzKf0A=";

//版本号,无需修改
String version = "2018-10-31";
//通过MQ实例名称访问MQ
String resourceName = "mqs/" + userName;
String expirationTime = System.currentTimeMillis() / 1000 + 100 * 24 * 60 * 60 + "";
//签名方法,支持md5、sha1、sha256
String signatureMethod = "md5";
String password = null;

注:如需手动回复puback,请将MqClient.java中第25行manualAcks设置为true,并在PushCallback类中的messageArrived的接口中手动回复。

private boolean manualAcks = false;

3、运行demo

项目配置完成之后,就在MqClient.java类的最后面有一个main方法,直接运行

image-20220215165724531

这个时候,运行linux平台的模拟设备,控制台就会收到设备传给MQ的数据,MQ再发送到项目控制台:

image-20220215165939188

收到的数据中有一个id字段,它就是消费位置,我们可以根据这个id去控制台修改订阅的消费位置:

image-20220215170147368

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
物联网项目实战开发是一个复杂而有挑战性的任务,使用stm32 w5500以太网rj45进行数据上传至onenet物联网平台是其中的一种常见方案。下面是一个基于该方案的代码示例: ```C #include <SPI.h> #include <Ethernet.h> byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址 IPAddress ip(192, 168, 1, 10); // 设备IP地址 EthernetClient client; void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); delay(1000); } void loop() { if (client.connect("api.heclouds.com", 80)) { // 连接onenet物联网平台 String data = "data"; // 上传的数据,可根据需求自定义 client.println("POST /devices/{设备ID}/datapoints?type=3 HTTP/1.1"); // 替换为自己的设备ID client.println("Host: api.heclouds.com"); client.println("api-key: {API鉴权KEY}"); // 替换为自己的API鉴权KEY client.println("Content-Type: application/json"); String requestBody = "{\"datastreams\": [{\"id\": \"data\",\"datapoints\":[{\"value\": \"" + data + "\"}]}]}"; client.print("Content-Length: "); client.println(requestBody.length()); client.println(); client.println(requestBody); delay(1000); client.stop(); } else { Serial.println("无法连接onenet物联网平台"); } delay(5000); // 每隔5秒上传一次数据,可根据需求调整 } ``` 以上代码通过使用Ethernet库进行以太网通信,设备连接onenet物联网平台(API地址为api.heclouds.com)。在`loop()`函数中,首先与平台进行连接,然后构造要上传的数据,通过POST请求将数据上传至onenet物联网平台。需要替换的部分包括设备ID和API鉴权KEY,确保与onenet平台的配置一致。 这段代码是一个基础框架,可以根据具体需求进行进一步的开发和扩展。希望这能帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨云21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值