扬州大学虚拟仿真实验平台
- 学生在家可以访问学校物联网试验箱,进行实验,通过在线编程,将代码烧录到试验箱中,再在网页查看实验信息。
- 主要涉及台式机端的数据监听,上传;代码的下载编译;
- 学校服务器的数据存储,WebSocket建立连接;
- 不涉及学生网页端代码的书写提交,但html仅仅是个demo测试,也可进行代码上传和websocket连接,但很简陋,仅作测试使用。
- 试验箱 -> 客户端:
- 从机试验箱传感器采集数据,通过ZigBee将传给主机;
- 主机通过串口数据传给台式机;
- 台式机监控到串口数据,通过MQTT,数据发布(数据格式:主机+信息);代码(send.py)
- 数据发布到达学校服务器搭建的MQTT上面,服务器本地也会监听数据,并实时存储;代码(test.py)
- 学生网页端,发现数据来临,根据主机号订阅相关传感器数据。
- 客户端 -> 试验箱:
- 学生编写代码,完成后,通过Web_Socket连接到服务器;
- 服务器进行WebSocket监听(代码:server.py);建立连接后,通过http将学生写好的代码,传到服务器目录里面,通过MQTT发布信息(主机+代码文件地址)
- 台式机监控到信息发布,从服务器拷贝文件到本地,系统调用cmd指令(这个指令当时搞了好久才弄出来),对文件进行编译,成功后,可下载进试验箱中,成功后,可采集到数据;失败返回报错信息。
- 学校台式机安装python3.6,并installl相关库;本地存储好.bat指令文件,以进行代码的本地编译运行;
- 学校服务器,需搭建公告的MQTT平台,所有信息从这个平台,进出;运行test.py进行数据监控,有数据来存进数据库里。
1.接收采集数据并发布数据 2.订阅并下载学生代码,编译并下载代码,发布编译情况信息
设定网页按键发送的请求内容
订阅采集数据并存入数据表
1.建立与客户端的websocket连接(多进程实现多个客户端同时访问同一服务器) 2.保存网页上传的代码为具体文本,并发布代码,订阅学生代码的编译情况信息 3.收到正确网页请求后,发送学生代码的编译情况信息和相应数据到网页端