物联网平台网站(如何自己搭建一个物联网平台)

Mark wiens

发布时间:2022-11-13

物联网平台网站(如何自己搭建一个物联网平台)

 

一,服务器

虽然这个没什么要求,实验的话虚拟机就可以;什么淘汰笔记本,台式机也可以。由于我是狂热份子,就买了台巴掌大的小电脑做为我的实验服务器。只是个电脑,内存没有ECC功能。不过够我做实验的了。

巴掌大,可以装一块2.5英寸机械硬盘和一块NVME固态硬盘。8G内存,CPU是I5-6500t,当时价格1800元。里面装的是Ubuntu 21.04服务器系统,我的Gcc编译和服务器实验都是上面进行。

怎么装Ubuntu我就不详细说了,网上教程很多,最好装服务器版本的系统,这种系统没有界面纯命令行,稳定性非常高。

二,物联网接入平台

我选择的是开源的EMQX,百万级连接。比着商业版缺少数据固化功能,需要自己开发一套订阅系统用于存储数据。

网址是:https://www.emqx.com/zh/downloads?product=broker,记得选择开源版的Ubuntu版本,企业版只可免费试用几个月。

安装也很简单,官方给了说明,只需3行代码。

从http://你的服务器IP:18083/进入管理界面,18083是WEB管理页面端口。运行后的界面是这样的。

占用的接口是下面这些,我们常使用的是1883端口,既是mqtt:tcp接口。如果使用coap协议就是5683端口。

互联网小常识:路由器的可靠性与可用性表现在:设备冗余、热拔插组件、无故障工作时间、内部时钟精度等方面。路由器的冗余表现在:接口冗余、电源冗余、系统板冗余、时钟板冗余、整机设备冗余等方面。

三,传感器模拟(物联网设备1)

传感器模拟我使用的是树莓派,把树莓派的CPU温度用python上传到物联网平台。也可以订阅自己感兴趣的主题,用于控制个灯,风扇啥的。代码如下:

subscriber.pyimportpaho.mqtt.clientasmqttimporttime0: 连接成功1: 连接失败-不正确的协议版本2: 连接失败-无效的客户端标识符3: 连接失败-服务器不可用4: 连接失败-错误的用户名或密码5: 连接失败-未授权6-255: 未定义如果是其它问题,可以检查网络情况,或者确认是否安装了 `paho-mqtt`。defon_connect(client, userdata, flags, rc):ifrc ==0: print("\n连接成功!\n")elifrc==1: print(f"\n接失败-不正确的协议版本\n")elifrc==2: print(f"\n连接失败-无效的客户端标识符\n")elifrc==3: print(f"\n连接失败-服务器不可用\n")elifrc==4: print(f"\n连接失败-错误的用户名或密码\n")elifrc==5: print(f"\n连接失败-未授权\n")else: print(f"\n连接失败-未定义\n")订阅,需要放在 on_connect 里如果与 broker 失去连接后重连,仍然会继续订阅 raspberry/topic 主题client.subscribe("raspberry/topic")回调函数,当收到消息时,触发该函数defon_message(client, userdata, msg):print(f"{msg.topic}{msg.payload}")defget_cpu_temp():tempFile = open("/sys/class/thermal/thermal_zone0/temp") cpu_temp = tempFile.read() tempFile.close()returnfloat(cpu_temp)/1000client = mqtt.Client("数梅派终端") client.username_pw_set("你的用户名","你的密码") client.on_connect = on_connect client.on_message = on_message设置遗嘱消息,当树莓派断电,或者网络出现异常中断时,发送遗嘱消息给其他客户端client.will_set(raspberry/status,b{"status": "offline!"})创建连接,三个参数分别为 broker 地址,broker 端口号,保活时间client.connect("10.195.136.221",1883,60)设置网络循环堵塞,在调用 disconnect() 或程序崩溃前,不会主动结束程序client.loop_start()whileTrue:四个参数分别为:主题,发送内容,QoS, 是否保留消息client.publish(raspberry/topic, payload=str(get_cpu_temp()), qos=0, retain=False) print(f"send cpu temp to raspberry/topic") time.sleep(5)

Copy

这段代码每5秒钟向服务器发送一条温度信息。同时订阅了一条raspberry/topic的主题。

四,订阅设备模拟(物联网设备2)

如果没有树莓派,也可以用软件模拟,软件叫MQTTX,免费的,和服务器平台是一家,不用写任何代码,也是新手比较推荐的玩法。

和树莓派一样,可以发送消息和订阅消息,从图中可以看到订阅了树莓派所有过来的主题,当前温度不到44度。

从上次升级到现在,服务器已经运行3天接收到5万多条信息。

互联网小常识:FTP服务器配置的主要参数有:域(一个域由ip地址和端口号唯一识别)、匿名用户、命名用户和组。

互联网小常识:IEEE802.3为传统局域网的协议,IEEE802.3u为快速以太网的协议标准,IEEE802.1d为透明网桥的协议标准,IEEE802.1q为VLAN的协议标准,IEEE802.5为令牌环网络的协议标准。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186