最近在做毕业设计,网页端的话前端使用了vue3,后端是node写的数据接口,运行的话是直接在本地,作为物联网工程的毕业生,当然毕业设计是少不了传感层了,一大堆任务,前面已经完成了两个安卓app,网页的增删改查和数据的可视化(echart),接下来就是网页与硬件的对接了,硬件的话选择的是阿里云的物联网平台,之前已经在平台上创建了自己的产品了,这里具体怎么操作就不多说了,不会使用物联网平台的小伙伴可以参考一下 阿里云物联网平台的使用,这里讲得还是很详细的,没有硬件的小伙伴也不用着急,阿里云提供了设备模拟器,接下来我使用的也是模拟器(硬件还没怎么用到,懒得去连),好了,话不多说,直接开撸。

登陆阿里云平台进入到物联网控制台,选择文档与工具

 进入文档后选择物联网设备接入与管理

 进入之后选择设备接入

然后选择MQTT协议接入下的MQTT-WebSocket连接通讯

 然后在文档中你可以看到ws方式的连接域名(你也可以选择wss方式,需要其他配置,这里直接使用ws),图中的pk是指你创建好的物联网产品的ProductKey

 vue方面,需要安装mqtt库

 安装成功后即可使用,代码中的id,username,password都是你物联网平台的设备信息,不过这些信息不能直接使用,需要进行格式转化后再能进行连接,我使用的是MQTT工具(技小新),你也可以选择其他的,有需要的可以留言我发给你

import mqtt from "mqtt";
export default defineComponent({
  name: "App",
  components: {},
  setup() {
    const message = ref("连接mqtt");
    const mqttvalue = ref("mqtt接收的值");
    let options = {
      connectTimeout: 4000, //超时使者
      clientId: "你的id", //id
      username: "你的用户名", //用户名
      password: "你的密码", //密码
      cleanSession: false,
      keepAlive: 60,//心跳值,心跳值太大可能会连接不成功,这个参考文档
    };

    let client = mqtt.connect(
      "ws://pk.iot-as-mqtt.cn-shanghai.aliyuncs.com:443",//上面在文档中的连接域名
      options
    );

    const connect = () => {
      client.on("connect", (e) => {
        message.value = `连接成功${e}`;
        console.log("连接成功", e);
        client.subscribe(
          "/sys/gcnbHOHvHJr/Androidapp/thing/service/property/set",//这里是订阅的主题,这里参考我给的链接
          { qos: 0 },
          (error) => {
            console.log(error);
          }
        );
      });
    };

    const duankai = () => {
      client.end();

      console.log("断开");
    };
    // client.on("reconnect", (error: any) => {
    //   console.log("正在重连", error);
    // });
    client.on("error", (error) => {
      console.log("连接出错", error);
    });
    client.on("message", (topic, message) => {
      mqttvalue.value = message.toString();
      console.log(`接收${topic}消息:${message.toString()}`);
    });

    return {
      message,
      connect,
      duankai,
      mqttvalue,
    };
  },
});

运行代码,在阿里云使用设备模拟器进行数据发送(注意选择的是硬件的设备模拟器,直接在硬件的设备选择在线调试,去往设备模拟器),注意这里选择的是属性上报,然后发送即可

这样你就可以在vue中接收发送的数据了

 

好啦,到这里就结束了,接下来就是对数据的处理了,也已使用数据可视化美化一下,最后吐槽一下,做毕业设计是真的累,但也是提升自己的一个很好的机会,哈哈哈,加油吧!骚年

Logo

前往低代码交流专区

更多推荐