android通过mqtt协议连接OneNET云平台设备并传输数据

本文介绍了如何在Android应用中通过MQTT协议连接到OneNET云平台,包括在build.gradle添加依赖,配置AndroidManifest.xml,以及关键的代码实现步骤,最终实现在应用启动时进行数据传输。
摘要由CSDN通过智能技术生成

1.build.gradle(app)添加依赖

implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'

2.AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<service android:name="org.eclipse.paho.android.service.MqttService" />


3.代码

//发布订阅
    private String host = "tcp://183.230.40.39:6002";//onenet
    //这个host是固定的,不用动,下面的改成你自己的。
    private String userName = "311110";//product ID产品🆔
    private String passWord = "p3459gzsIR8=sdvjhE07cy7893=nVhg=";// APIKEY
    private String mqtt_id = "205411167"; //device ID
    private String mqtt_sub_topic = "topic_app"; //订阅主题
    private String mqtt_pub_topic = "topic_classroo1mapp"; //发布主题

    private MqttAndroidClient client;
    private MqttConnectOptions options;

 private void Mqtt_init() {
   
        try {
   
            //host为主机名,mqtt_id为clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示,
            client = new MqttAndroidClient(getBaseContext(), host, mqtt_id);
            //MQTT
  • 10
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
连接 OneNet 云平台MQTT 协议需要以下步骤: 1. 注册 OneNet 账号并创建设备,在设备管理中获取设备 ID 和 API Key。 2. 安装 ESP8266 的 MQTT 库,如 PubSubClient。 3. 在 ESP8266 中连接 Wi-Fi 网络。 4. 在 ESP8266 中连接 MQTT 服务器,并使用设备 ID 和 API Key 鉴权。 5. 订阅需要接收的主题或发布需要发送的消息。 下面是一个简单的 ESP8266 连接 OneNet MQTT 的示例代码: ```c #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "mqtt.heclouds.com"; const char* device_id = "your_DEVICE_ID"; const char* api_key = "your_API_KEY"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); client.setServer(mqtt_server, 1883); while (!client.connected()) { Serial.println("Connecting to MQTT server..."); if (client.connect(device_id, api_key, "")) { Serial.println("Connected to MQTT server"); } else { Serial.print("Failed to connect to MQTT server, rc="); Serial.println(client.state()); delay(1000); } } client.subscribe("your_topic"); } void loop() { client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Received message: "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ``` 其中,需要将 `your_SSID` 和 `your_PASSWORD` 替换为实际的 Wi-Fi SSID 和密码,将 `your_DEVICE_ID` 和 `your_API_KEY` 替换为在 OneNet 上创建的设备 ID 和 API Key,将 `your_topic` 替换为需要订阅的主题。在 `callback` 函数中可以处理收到的消息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

橘子先生z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值