#第五届立创电子设计大赛#借助MQTT实现P2P内网穿透的4G拍摄及DTU透传功能模块 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 #第五届立创电子设计大赛#借助MQTT实现P2P内网穿透的4G拍摄及DTU透传功能模块

  • 8.9k
  • 8
  • 46

暂无简介

开源协议: BSD

(未经作者授权,禁止转载)

创建时间: 2020-08-30 22:04:07
更新时间: 2023-03-29 16:59:59
描述
注:*为必填项。 【请在报名阶段填写 ↓】 *  1、本人电子工程师一枚,从事嵌入式开发12年,主要为stm系列及ESP系列开发和C#上位机开发 *  2、本项目主要功能有:4G通信和500万像素拍摄,TF卡存图,RS485串口总线,MQTT通信,P2P通信。借助阿里云物联网MQTT平台,连接内网主机和4G拍摄模块,并借助公网云实现UDP-NAT端口映射,从而实现P2P打洞内网透传,然后两者就能绕过MQTT平台进行图像大文件或DTU数据流的直接透传。 核心硬件主要由GD32F103CB、CPLD、SDRAM、OV5640图像sensor以及SIM7600CE全网通4G模块搭建。 软件主要为:单片机嵌入式C,CPLD的VerilogHDL,上位机用C#写,分为主控面板和打洞程序,打洞程序部署在租用的腾讯云上。 【请在竞赛阶段填写 ↓】 *  1、描述项目详情         (1)、MQTT协议以及其平台作为目前物联网应用领域的主流,在很多物联网产品上都用到了。但它通常只用在小包短报的通信应用上,并不适合于大文件或者数据流的场合。另一方面,目前关于图像视频的应用多数都采用linux或安卓的平台方案,比如海思或树莓派等,成本高功耗大,且有一定的入门门槛。同时对于视频图像的传输场合,最好的是可以使数据交流的双方能直接连通,无需中介服务器。而我这个项目就是想要用低成本低功耗低门槛的方式来实现MQTT+图像流直通的功能。         (2)本项目可以按照通信类型分为MQTT通信和P2P通信。         首先是MQTT的通信。目前MQTT-Broker服务商现在很多互联网公司都可以提供接入服务,并且费用很低。我选择了阿里云的物联网平台作为服务提供方。而在单片机上跑MQTT协议的资料和例子都可在网上找到。鉴于我开发的单片机C程序用FreeRTOS作为骨架,于是我也从FreeRTOS官网上找到了MQTT的很好的代码,很方便就移植到我的单片机上。 而MQTT是基于TCP协议的,我采用的4G模块SIM7600CE,本身就带有TCP/IP栈,通过几句串口的AT指令可以很方便快捷建立TCP连接,连接到阿里云上面。而PC主机上用C#写的控制界面程序,网上也有成熟的MQTT.NET.DLL的库方便调用。于是我用了一周左右时间就搭建起两者的MQTT通信通道。这里注意的是,由于我要采用自定义的命令格式,因此需要设置阿里云控制台的转发规则。当我要转发时,在单片机或PC程序上把转发的二进制数据经过base64转为字符串,再用json格式封装后发给MQTT服务器,服务器才会解析正确并帮我转发。         其次是P2P通信。P2P是工作在UDP上的,它的打洞原理是基于路由的锥形NAT映射。因此我需要有个公网的服务器作为映射中介。具体做法是:用C#写个回音程序,部署在公网IP的云上。回音程序会一直监听UDP端口,若有谁查询自己所属的对外NAT的IP端口号,回音程序就会返回给它。 打洞的过程为:当内网主机得知4G模块已经连上MQTT后,先向回音程序查询自己对外的NATip端口,然后通过MQTT发给4G模块,4G模块用这个IP端口尝试发UDP包给主机,若主机所在网关是锥形NAT类型,则会收到4G模块的包;若对称的NAT类型,则不能收到,此时需要互换角色,让4G先获得自己的NATIP端口,然后通过MQTT发给主机,让主机尝试打洞。这样只要双方有任一个为锥形NAT,都能打洞成功。我自己PC是两层TPLink内网,经测试联通4G卡和移动家庭宽带是锥形NAT,移动4G卡是对称NAT,其他未测试过。一旦打洞成功后要每隔一段时间要发心跳,保持路由器的NAT列表有效才能保持P2P通道的畅通。而SIm7600CE上也自带UDP协议栈,可以方便使用。         (3)综上,我的终端模块和主机程序上都分别跑了两种通信协议,其中MQTT用于控制报文,P2P用于大文件数据传输。         (4)在图像拍摄方面,由于OV5640是带JPG引擎的芯片,因此我只要设置好它的输出格式并及时接收缓存下来就可以了。由于OV5640的输出总线带宽较高,因此我这里另外采用了CPLD+SDRAM的方式来专门缓存JPG数据,然后当单片机需要图像数据的时候就又通过CPLD分包读取SDRAM缓存的数据。所以CPLD是作为中转站的角色,它的代码用到VerilogHDL来编写。         (5)从我提供的视频可见,P2P通道下图片传输的速率大概是40~50KB,对于500万像素的JPG通常可以10s传完,并且这里还加入了丢包重传的逻辑。如果以后搭建MJPG视频流,不用考虑丢包重传的话,估计可以达到70KB,那这个速度对于传输320*240分辨率的MJPG来说应该也有7帧/s。并且SIM7600自带GPS功能,以后可以做台无人驾驶遥控小车,通过地图+实时视频远程遥控,只要有4G的地方都能去哈哈。 *  2、描述项目所面临的挑战及所解决的问题         由于本项目涉及到比较多方面的技术,所以即使有些技术是有资源参考的,也要花不少时间整合和调试。并且是跨平台跨网络的项目,因此开发起来也有一定难度,也有不少乐趣的。比如其中的P2P传输,因为其工作在UDP之上,所以传输图像所需的保证数据完整性的逻辑就要我自己定义来写。这里我是参考了TCP的窗口技术和丢包重传技术,稍微简化后用在P2P传输上。 *  3、描述项目硬件、软件部分涉及到的关键点       (1)  在这个项目上我共自定义了两套协议,一套是封装在MQTT包里的控制报文协议,比如打洞,IO外设控制,串口小包转发,拍摄参数设置等;另一套是专门在P2P上的大文件或流传输协议。        (2)硬件上我自己开发的CPLD+SDRAM图像采集方案比较原创性,同时也可以引申到其他项目上解决低端单片机不能采集图像的痛点。         (3)这个项目的主要精力时间都是花在单片机代码设计和编程上,而我采用的FreeRTOS操作系统是很强大的一个工具,并且是开源免费的。 *  4、项目材料清单展示         拍摄模块 | 0.1u | C1, C2, C3, C4, C7, C8, C9, C10, C12, C15, C16, C20, C23, C24, C25, C27, C28, C29, C30, C35 | 0603-C | 风华 | | ---- | ------------------------------------------------------------------------------------------- | ------ | --- | | 10u/6.3V | C5, C11, C13, C14, C17, C22, C26, C31, C32, C34 | 0603-C | 风华 | | 22u/6.3V | C18, C33 | 0805-C | 风华 | | 10u/25v | C6, C19, C21 | 0805-C | 风华 | | SMAJ5.0CA | D1 | SMA-TVS | 长电 | | 磁珠 | L1, L2, L3, L4 | 0603-R | | | 红色贴片LED | LD1 | 0603-LED | | | 蓝色贴片LED | LD2 | 0603-LED | | | SI2301 | Q1, Q2 | SOT-23 | 长电 | | 10k | R1, R2, R3, R5, R9, R10, R11, R12, R14, R17, R23 | 0603-R | 风华 | | 1K | R4 | 0603-R | 风华 | | 51k | R6, R13, R18, R19, R20, R21 | 0603-R | 风华 | | 5k1 | R7, R8, R22 | 0603-R | 风华 | | 330 | R15, R16 | 0603-R | 风华 | | W9864G6KH | U1 | TSOP54 | 华邦 | | EPM240T100 | U2 | TQFP100 | altera | | ME6206P1V5 | U4 | SOT-23 | 长电 | | ME6206P2V8 | U5 | SOT-23 | 长电 | | GD32F103CB | U6 | LQFP48 | 兆易 | | ME6206A33P | U7, U8 | SOT-89 | 长电 | | SP485EE | U9 | SOP8 | SP | | 48M晶振 | XT1 | XTAL-5032 | | 4G模块 | Value | Designator | Footprint | 厂家 | | ----- | ---------- | --------- | --- | | ME6306 | U1, U2 | SOT-23-6P | 长电 | | 4G | U5 | SIM7600 | SIMCOM | | 0.1u | C1, C2, C7, C9, C10, C14, C17, C18, C20, C24, C25, C27, C28, C31 | 0603-C | 风华 | | 100u6V | C6, C21, C22, C26, C30, C33 | 1206-C | 三星 | | 10R | R8, R15, R17, R18 | 0603-R | 风华 | | 10u | C13, C15, C23, C29, C32 | 0603-C | 风华 | | 22u16V | C3, C4, C5, C11 | 0805-C | 风华 | | 28K 1% | R1, R4, R10 | 0603-R | 风华 | | 330 | R9 | 0603-R | 风华 | | 33p | C8, C12, C16, C19, C34, C35 | 0603-C | 风华 | | 5K1 | R2, R5, R7, R11, R12, R13, R14, R16, R19, R20 | 0603-R | 风华 | | 6.8uH2A | L3 | Pwr-Indu-0402 | | | 6.8uH6A | L2 | Pwr-Indu-0603 | | | 68R | L4 | 0603-R | 风华 | | 6K8 1% | R3, R6 | 0603-R | 风华 | | DSK34 | D1 | SOD-123 | 长电 | | GD25Q32 | U6 | SOIC8-WIDE | 兆易 | | GRE | LD2 | 0603-LED | | | ME6206P-3V3 | U3 | SOT-23 | 长电 | | SI2302 | Q1 | SOT-23 | 长电 | | SIM Card | SIM | SIM\_NANO\_FLIP | | | SP3485 | U8 | SOP8 | | | SRV05-4 | U7 | SOT-23-6P | | | TXB0102DCU | U4 | sot-70-dcu | | | LEDv | LD1 | 0603-LED | | *  5、项目图片上传           5.1、PCB上印制大赛logo图片,若无视为放弃参赛 ![IMG_20200920_202059.jpg](//image.lceda.cn/pullimage/rzRjL13f7hvjswxZ4xrhP2OCUIZh7LaHMAHekVs5.jpeg) ![fomr.jpg](//image.lceda.cn/pullimage/eeczPg0kds24ZWprI3dbymThI0pRqEHT7Xrj80vV.jpeg) ![IMG_20200920_194204.jpg](//image.lceda.cn/pullimage/wQkAhCWypgfjCmGHPWjQ41GcekDrV6GhHcop083N.jpeg) ![IMG_20200920_202050.jpg](//image.lceda.cn/pullimage/epSxRq47jBVleKbHcgzEosqMVu8CJUvC9Tz3ab7q.jpeg)           5.2、项目其它图片         PC控制台界面 ![console.png](//image.lceda.cn/pullimage/1kFCXWxvhT3Iti2bLq6s78zK9nCG4IowxgMVm1hZ.png) 4G模块原理图 ![image.png](//image.lceda.cn/pullimage/oKeofmuJBMj7OUGAs3IUeWFIa5eP1siRt1dicHAM.png) 拍摄模块原理图 ![image.png](//image.lceda.cn/pullimage/bNLIodr5KK3a7kGSHrtRQ7Mvu6ZeGfvGIYoF04Hr.png) *   6、演示您的项目并录制成视频上传           6.1、视频上传大赛官网           6.2、B站视频标题和链接 [https://www.bilibili.com/video/BV1Jz4y1Z7BU/](https://www.bilibili.com/video/BV1Jz4y1Z7BU/) 第五届立创电子设计大赛-《借助MQTT实现P2P穿透的4G拍摄及DTU透传功能模块》-之功能演示 < span class="colour" style="color:rgb(170, 170, 170)">< span class="size" style="font-size:12px">注意事项:①:视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;②:视频上传:请同步上传至大赛官网和B站([www.bilibili.com](www.bilibili.com)),B站人气TOP10项目将获得1000-5000元现金奖励,其它上传项目获得100元立创商城无门槛券;③:视频标题:第五届立创电子设计大赛:{项目名称}-{视频模块名称};如第五届立创电子设计大赛:《自动驾驶》项目-团队介绍。< /span>< /span>< br> < br> *  7、属于首次公开发布     首次公开发布 *  8、开源文档     原理图,BOM *  9、参考文献 FreeRTOS官网 CSDN官网 .NET 官网 github官网 兆易创新官网 《TCP/IP原理》 《单片机原理》 《精通C#》 点击链接了解更多详情:[https://www.szlcsc.com/go/dsxq](https://www.szlcsc.com/go/dsxq)
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP