编辑器版本 ×
标准版

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

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

3、支持简单的电路仿真

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

专业版

1、全新的交互和界面

2、流畅支持超3w器件或10w焊盘的设计规模

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

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

专业版 【RA】农田环境数据无线采集灌溉自律系统(基于瑞萨MCU)

简介:使用太阳能供电,可以采集农田中PM2.5、光强、大气压、海拔、温度、湿度、降雨大小、土壤湿度数据的系统,数据可以通过无线方式传输到数据中心上位机中,并附带浇水功能。无需额外布线,无需外接电源,系统自律

开源协议: GPL 3.0

发布时间:2022-04-18 18:41:23
  • 4.4k
  • 36
  • 86
描述

B站视频:https://www.bilibili.com/video/BV1XF411j7VS

-1.更新日志

0.打开工程点击右上角的【编辑器打开】按钮

1.前言

当初问什么要做这个工程呢,其实这个工程并不在我现有的开发计划中,只是有一位群友和我聊起:

当时没定MCU使用什么方案,恰好最近立创有瑞萨MCU合作训练营,因此选用瑞萨MCU做从机主控

再经过深入研究,认为主机端可以取消MCU和RTC时钟,从机端LDO换为 TPS79333的低压差LDO,更为省电。

2.简介

基于瑞萨的R7FA2E1A72DFL做从机MCU,收集农田环境的土壤湿度、空气温度、空气湿度、空气雨水量、大气压强、海拔高度、PM2.5,并且可以把这些收集到的数据通过LC12S(100米)或灵TR(1000米)传输到主机端,主机通过LabView开发的数据收集应用程序可以查看到当前(暂定30秒内传输一次数据)的环境数据,并制作成趋势图,并附带水泵灌溉,拥有太阳能充电电路,可实现自律无人管理,无需外部电源,无需外部传输线缆。可以用于小型气象站的天气预报,农业灌溉等用途。

3.框图

之前手绘了一次框图,工程制作庞大,实际做下来的话框图大致如下:

3.1分板

整个系统打算分成三块板,一块核心板,即有RA核心MCU的最小系统板,附带USB转UART的下载电路。一块接收板,插在上位机电脑上,用于接收数据。一块底板,系统供电和接插座都在上面。分板的好处是即使底板画错了或者需要更换IO也比较方便,核心板可以移到下一张底板上。

3.2系统供电

18V的太阳能板直接到太阳能充电芯片,太阳能充电芯片为一个18650充电,从电池出来查看框图知道,我使用了两颗TPS79333,一颗专门给MCU和LC12S(100米)或灵TR(1000米)供电3.3V,一颗给传感器供电,这样需要传感器的时候才给电,节省电量,值得注意的是,PM2.5传感器是需要5V供电的,它和水泵一起共用SX1308升压芯片出来的5V。蜂鸣器直接用的18650的电源。

4.核心板

4.1原理图和PCB

核心板较为简单,是RA的最小系统,主要是下载电路,电源,复位电路,晶振,USB转串口电路和引出的引脚组成

4.2焊接注意事项

4.3焊接成品

针脚可以像我这样普通IO用黄色,GND用黑色,VCC用红色,比较好区分和好看。

4.4烧录注意事项

烧录的时候还需要两个条线帽。

一个是启动脚P201,平时运行接上拉,下载时接下拉。

一个是VCC(MCU供电)电压选择,一般选择3.3即可。

5.接收板

5.1原理图和PCB

接收板也很简单,只有USB转串口电路和5V转3.3V的LDO,主要是预留了跳线。

CS脚低电平工作,高电平或悬空为休眠

SET脚低电平配置模式,高电平工作模式

关于如何配置在下面会有描述。

5.2焊接注意事项

接收模块预留了直接焊接的焊盘和2.0mm HDR母座焊盘,建议焊接2.0mm HDR。

USB-C为预留,可不焊。

5.3焊接成品

接收板还需要3个条线帽用于配置工作/配置模式和工作/休眠模式,以及收发模组的电源

6.数据采集底板

6.1原理图、PCB、LAYOUT注意事项

底板整合太阳能充电电路,升压电路,降压电路,MCU底座,传感器插座,蜂鸣器,天线等。

由于太阳能板使用18V,因此充电电路的走线都尽可能走粗点,或者直接铺铜。注意进来先进大电容,最后容值小的电容靠近芯片。

土壤传感器、雨水传感器、PM2.5VOUT端都是走的模拟信号,因此保证这三个信号先布局,这三个信号尽量不打过孔,并且这三个信号最好都被地包裹住,以减少干扰。

核心板两个引出的针脚尺寸对好,不要错位偏移。

其他信号不太重要,只要不短路就行。

6.2焊接注意事项

若需使用外接天线,灵TR焊接天线引脚到外接天线焊点

LC12-S自带板载天线,若需外置天线,需要把连接天线的磁珠断开

太阳能处电感和检流电阻只焊一个即可

6.3焊接成品

PCB颜色建议使用白色,不仅好看,在户外使用也不吸热,核心板也可以换成黑色。

7.瑞萨核心代码

本工程中使用e2 studio环境对代码进行编写和编译,代码烧录使用RA的串口烧录工具,具体操作请查看附件:RA2E1RA2L1入门指南.pdf

这里不过多赘述!

代码源码见附件:代码.zip

代码烧录见附件:PRO.hex

7.1会使用到的IO和配置IO

会使用到的IO基本都在底板上标出。

核心板上有一颗P104 GPIO控制的LED灯

P212 P213作为太阳能充电芯片充电和充电完毕的检测脚

P207作为 GPIO 控制5V升压的使能

P206 作为 GPIO 控制水泵MOS管的开关使能

P201 作为 GPIO 控制蜂鸣器的响

P208 作为GPIO 控制传感器3.3V供电的使能

P100 P101 作为串口 和无线传输模块通讯

P409作为 GPIO 控制无线传输芯片的休眠低功耗和工作模式

P001 作为 ADC 检测土壤湿度传感器的电压

P000 作为 ADC 检测雨水传感器的电压

P015 作为 ADC 检测光伏板输出的电压

P400 P401 作为 IIC 与GY-39多合一传感器的通讯

P500 作为 GPIO 控制 PM2.5传感器内置的LED灯使能,P002 作为 ADC 检测PM2.5传感器VOUT脚输出电压。

P014 作为 ADC 检测电池输出的电压

以上配置需要配置到e2 studio pin设置中:

所有GPIO默认都配置低电平默认

其中,读取太阳能充电状态的P212和P213脚输入模式都需要配置输入内部上拉。

7.2GPIO控制LED灯和蜂鸣器

7.2.1代码前准备

LED接P104。

蜂鸣器接P201。

简单的IO控制,封装成函数就行了。

7.2.2核心代码

7.3ADC读取太阳能电压和电池电源以及充电状态检测

7.3.1代码前了解

首先知道,硬件这里是有两个电阻分压检测的,否则大电压接入ADC是会弄坏MCU的。

这两个电阻已经计算好了

拿一个举例,电池最高电压4.2V,那么这样分压算下来最高也只是3.26V,那么最低3.2V时是2.489V

那么就可以用这两个电压压差反算出电池电压是多少:

(当前ADC电压*电池满电电压4.2)/满电电压时ADC电压。

不过这样算出来是线性的,真正的电池电量计算不是线性的,一般是前面4.2~3.7V比较耐用,后面3.7V以后掉电快,因此这里只算电压没有写电池电量预测了。

那么太阳能板也是同理。

7.3.2核心代码

7.4GPIO和ADC控制和读取PM2.5传感器

7.4.1传感器介绍

GP2Y1010AUOF是日本夏普公司开发的一款光学灰尘浓度检测传感器。此传感器内部成对角分布的红外发光二极管和光电晶体管,利用光敏原理来工作。用于检测特别细微的颗粒,如香烟颗粒、细微灰尘。依靠输出脉冲的高度来判断颗粒浓度。

就是说给LED亮,然后AD值返回MCU用AD值检测粉尘大小,这么个原理。

夏普GP2Y1010AU0F灰尘传感器价格较便宜,只能检测出室内空气中的灰尘和烟尘含量.并不能测出所谓的PM2.5浓度,然而现在市面上有好多红外发光二极管的传感器都称自己是PM2.5传感器,能测PM2.5的值,其实并不是,真正能测PM2.5浓度的是那种上百的激光传感器,这种红外的连PM10都测不了,只能用来玩玩,或者大概描述空气质量的等级而已,经我多次实验,发现这传感器显示的灰尘浓度与网上公布的AQI空气质量指数比较接近,跟真实的PM2.5浓度有很大的区别,这测出的灰尘浓度其实就是所有不同直径的颗粒物总和,里面包含了PM1.0,PM2.5,PM10。

不过这里呢就当PM2.5传感器使用了,下次升级版搞个真正的PM2.5传感器。

7.4.2代码前了解准备

主要我们需要了解传感器内部的结构:

然后是传感器的引脚:

接着是输出电压对应的颗粒物浓度:

还有一个电路参考图:

这个电路图要求V-LED 即1脚,需要在VCC中串一个150欧电阻以及一个220uF的电容。

脉冲时间0.32ms的要求,以及0.28ms后数值读取才会稳定,读取最小周期是10ms。

那么查看我们底板PM2.5部分电路图中便是如下:

其中需要注意的是第三脚的LED脚,在内部是这样接的:

因此我们需要给一个低电平,内部的PNP管才会导通,内部LED才会亮,而我们外部接了一个SS8050PNP二极管到地,并且加了上拉10k,那么我们在P500口的时候,实际上只需要给高电平,LED就会亮

理清楚关系后就可以写代码了。

7.4.3代码核心

还是比较简单的,首先我们把P500拉高,那么LED就是亮了,等待280us,等待VOUT数值稳定,然后启动ADC去读取VOUT电压值,等待一段时间后关闭P500,然后进行AD读取数值与颗粒物数值换算。

7.5ADC读取雨水传感器和土壤湿度传感器

7.5.1代码前了解

这两个传感器类似,原理就是带有一系列裸露铜走线的感应垫一起用作可变电阻器(就像电位计一样),其电阻值根据其表面的水量而变化。

当没遇到水的时候,他们是3.3V的高电压,有水接触后会慢慢电压变小

7.5.2核心代码

实际上就是读取ADC 然后判断是否有雨,土壤是否干燥等,比较简单

7.6IIC读取GY-39多合一环境传感器

7.6.1代码前了解

资料查看附件GY39使用说明v1.pdf

GY-39 是一款低成本,气压,温湿度,光强度传感器模块。工作电压 3-5v,功耗小,安装方便。其工作原理是,MCU 收集各种传感器数据,统一处理,直接输出计算后的结果,此模块,有两种方式读取数据,即串口 UART(TTL 电平)或者IIC(2 线)。串口的波特率有 9600bps 与115200bps,可配置,有连续,询问输出两种方式,可掉电保存设置。

我们用的是IIC模式,因此需要图中间的跳线设置:

IIC协议的信息如下

我们配置IIC地址如下

另外还需要注意,此模块速率不能超过40khz,因此还需要到IIC配置代码中设置:

把速度降到40khz或以下,模块才能正常工作。

7.6.2核心代码

IIC通讯较简单,就是发送IIC寄存器,然后要读取的位数,这里分开两部分,因为光照的长度较长。

发送0x04,读取10位,返回数值后换算出压强温湿度海拔,发送0x00,读取4位换算出光照

7.7电源控制逻辑

对应的电源IC的IO

注意的是PM2.5也是用5V,使用5V建议加延迟以等电源稳定

使用传感器前开启电源即可

7.8水泵控制逻辑

控制逻辑是:当我们雨水传感器检测到有雨就不浇水,没有雨并且土壤干燥,那么就浇水。

浇水前先打开5V电源,并且蜂鸣器提示,以免被溅湿

浇水的时候会每隔一秒检测一次土壤的ADC,如果土壤ADC值低于某一个电压(这里是1.5V),即水已经湿润土壤了,那么就停止水泵,关闭5V电源,并且跳出这个循环,那么浇水就完成了。

7.9串口输出数据

串口输出按照规定格式输出,见10.2章节中上位机的匹配字符

参数 = 数值 单位

注意空格

串口不建议发送中文,否则上位机会乱码

7.10(附加)GY-302光照传感器

7.10.1传感器介绍

GY-302实际上是BH1750FVI芯片集成的传感器模块。

BH1750FVI是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液品或者键盘背景灯的亮度。利用它的高分辨 率可以探测较大范围的光强度变化。(1lx~65535lx)。

7.10.2代码前了解准备

具体查看附件:BH1750FVI.pdf

这颗芯片最核心的内容如下三张表

我们可以看出,当ADDR高电平时,IIC地址(7bit)为1011100(0x5c),低电平为0100011(0x23),我这里使用低电平。

那么master1配置为0x23。

IIC指令中,我们需要了解一个是开机指令00000001(0x01),还有一个是一次性高精度模式00100000(0x20),此模式下看表二知道,读取数据时间需要120ms,精度为1个lx。

那么我们就知道我们的代码怎么写了。

7.10.3代码核心

打开IIC总线后先开机写入0x01,然后写入0x20模式,等待120ms后再写入0x47读取地址,然后马上读取返回的数据。

数据处理如下

则代码如上。

注意:本系统中没有使用到此传感器,有GY-39的光照传感器使用,只作为附加!

8.底板与各种元器件的接线

接线一览

亚克力另需六角铜柱 M3*25 4个

8.1核心板

直接插入pin对pin

8.2电池

18650锂电池,左负右正

8.3传感器

GY-39 pin对pin

pm2.5传感器杜邦线连接

雨水和土壤传感器杜邦线+301座连接,不分正负

8.4天线

外置天线SMA-KE座连接,无线模块插入2.0mm母座或直接焊接(推荐母座,方便拆卸)

天线焊盘需要连接到模块上

8.5水泵

上负下正,注意电源不要接反

8.6太阳能板

301座连接,上正下负,不要接反

9.LC12S(100米)无线通讯设置

本章是LC12S 100米 通讯(2.4G)的设置方法,与灵TR 1000米 通讯(433Mhz)二选一即可

9.1硬件准备

首先把收发模组插上接收器

9.2读取设置和版本

插上后电脑设备管理器中会多出一个COM口,点击工具的打开端口,如上图

我这里是COM10,因此选中COM10,确保波特率9600,USB模式A,再点击上方的【打开端口】按钮

打开可以点击【查询设置】和【版本读取】,下方出现设置参数即证明可以通讯了。

9.3设置信道、波特率、组网

右边设置如上参数,组网ID和RF信道两张模块需要相同才能互通,这里我默认设置就好了,波特率要选择9600。

选择好参数后点击右边生成命令字后下方会生成发出命令

点击右边【发送】后会返回消息,即表示设置成功,然后可以拔掉接收板了。

以上是配置一个的方法,需要两个模组都要配置。

9.4RA UART发送格式

见7.9和11.2章节

10.灵TR(1000米)无线通讯设置

本章是灵TR 1000米 通讯(433Mhz)的设置方法,与LC12S 100米 通讯(2.4G)二选一即可

10.1硬件准备

首先把收发模组插上接收器

根据规格书,附件:灵-TR无线收发模块V1.7.pdf

CS跳线接工作,SET跳线先不接,VCC跳线接3.3V

然后插上计算机

然后再把SET跳线接到配置脚

打开附件:灵-TR指令生成助手.exe

然后这里和LC12-S一样了

点击打开端口出现COM后再点一次打开端口,点击读取设置和版本,然后设置两片灵TR的组网ID和RF信道即可,波特率9600.

10.2RA UART发送格式

见7.9和11.2章节

10.3天线

灵TR和LC12-S不一样,没有板载天线,因此需要手动焊上去。

推荐一种大长天线

还有官方的弹簧天线(会送)

以及官方的PCB天线

11.上位机设计

上位机本来想使用LabWindows设计,不过看到B站@今天烧板子了吗 上恰好有LabView现成的串口工程,开源地址点我 

因此正好拿这位UP的工程魔改一下。

请注意,本工程禁止勿用于商业用途!请注意开源协议!

工程在哪?

附件:LabView农田数据无线采集系统(瑞萨MCU版).zip

工程项目名为:农田数据无线采集系统(瑞萨MCU版).lvproj

程序框图名为:__Aknice.vi

11.1串口接收

串口接收框图如上图

串口选择

在端口接收到字节大于等1,即有接收到字节

或者可以用不等于0代替

接收到第一个字节开始,延迟200ms,以接收剩下的所有字节

实际上可以计算出来,9600波特率接收这么多字节需要多少时间,这里200ms是肯定能接收完的时间,实际还可以缩短此时间。

数据接收后存在读取缓冲区

缓冲区输出到显示控件

11.2字符串匹配

将输出到显示控件的字符串进行字符串匹配

使用匹配字符串控件,路径如下

 

字符串匹配内容为正则表达式内内容,此处为 【PM2.5 = 】,注意空格

匹配到字符串后输出字符串后数值,即为子字符串之后,并输出到显示控件

然后把读取到的数值输出到图表显示控件

在如上路径中找到 【分数/指数字符串至数值转换】

这样转出来的数值才是浮点形式,选择其他转换出来是整形。

如上重复把所有接收数据整理

制作完后可以测试数据,上图为测试数据,不是实际在板上的收集数据。

11.3生成.exe可执行文件

打开工程项目后右击程序生产规范–>>新建–>>应用程序(EXE)

选择类别框中的信息,右侧红圈处为将要生产的exe的文件夹名和文件名。

选择类别框中的源文件,将软件打开的默认界面添加到启动VI项,其余添加到始终包括项。一般默认始终包括下的非VI文件会生成到data文件夹下。

这里只要把.vi文件添加到这里即可,因为只有一个vi项目。

上面的启动VI指:启动exe的时候vi会立即打开的界面。

下面的始终包括指:exe打开后该区域文件不会自动打开,需要其他vi调用才能打开。

这里可以选择生成的图标,需要.ico格式

点击右下角生成即可生成.exe可执行文件

12.上位机使用

12.1上位机在哪

由于附件巨多,因此需要找到:农田数据无线采集系统(瑞萨MCU版)上位机.rar

解压后打开【__Aknice.exe】即可。

12.2前期准备

系统对接收数据有上电顺序要求以及前期配置要求。

使用上位机前需要确认在8章节中接线正确以及9章节中无线通讯配置正确,并且RA MCU已经烧录了代码。

使用前确认发射端数据底板+核心板和接收板目视距离(中间无障碍物)不得超过LC12S(100米)或灵TR(1000米)。

确认以上步骤后请先打开底板主供电开关,此时核心板上LED灯有闪烁,证明数据底板正常工作。

接着将接收板插入计算机USB接口,此时打开计算机管理中设备管理器的端口选项卡,找到刚刚插入的接收板(如果不确定上哪个COM口可以拔掉后看看哪个COM没了再插上)

例如本人的是COM11

选择好后选择9600波特率,然后点击打开串口

12.3正常使用

上位机正常使用如下图,设计有能显示出接收板LC12S(100米)或灵TR(1000米)的串口接收数据的显示窗口、把接收的数据分类成当前(30秒内)的显示控件、能选择接收板的串口选择选项卡、选择波特率的选项卡、串口打开按钮以及各个环境变量的波形图标,可以查看变化趋势和历史记录。

13.外壳

数据底板外壳使用立创EDA专业版绘制

只有一个底壳,请查看附件:3DShell_数据采集底板_B.stl

3D打印自己打印

打印外壳实物如上

14.亚克力面板

数据底板面板使用立创EDA专业版绘制

面板打印选择嘉立创面板打印服务

面板实物图如上

15.实物图

裸板

外壳+亚克力+所有元件接入

16.实测

由于疫情和时间缘故,没有实际拿去田地中测试了,把所有功能测试一次即可

16.1系统自律测试

自律条件为:

只要在太阳下山前,太阳能充电能把电池充满即自律

测试前电池电压:3.26V 几乎没电状态

充电时电流:0.584A  检流电阻为0.06欧,因此充电电路配置的充电电流为 Ich=0.12/0.06=2A

太阳能板输出电压为:19.67V

因此可以算出电池充电功率约为10W,那么与电池端配置的充电电流2A接近

充电时,电池,充电芯片,充电电路电感,太阳能板发烫,注意散热。

约3小时后充满,此时电池电压为4.16V。

如果早上出太阳开始充,应该不到中午都可以充满了。

测试结果:系统自律。

如果想要电池充快点,把太阳能板吃满,可以再加一路检流电阻和电感,可以去到4A 20W

16.2灵TR(500米)障碍物传输数据测试

LC12S(100米)测试就不测了,直接上大家伙(1000米)把。

放在我家阳台外测试,接上所有传感器和外接设备

为保护隐私就不拍小区和自己家了

为方便分析数据,不用上位机,用串口工具查看,这里直接用arduino的串口工具了

上图1楼(阳台底下)测试数据,无遮挡30米:

无问题

上图小区某路口测试数据,树木遮挡100米:

无问题

上图小区门口,无遮挡250米:

无问题

上图小区门外江边,隔了一条马路,树木遮挡400米:

无问题

上图小区门外江边,隔了两条马路,树木、建筑、电网变压器遮挡500米:

能接收,但乱码

16.3灵TR(1000米)目视传输数据测试

见视频

16.2是有障碍500米,视频是无障碍目视1000米

测试结果:PASS

16.4灌溉测试

见视频

16.5上位机数据收集测试

见视频

17.总结

17.1工程总结

工程内容丰富充实,手把手教学,总结就是上面我写的的东西。

17.2自我总结

是本人整个2022年上半年最大的工程了,从4月11日接到任务,到5月6日需要全部完成,时间紧,任务重,在从未使用过瑞萨MCU的情况下,我(们?)攻坚小组(只有我一个人...)克服困难,迎难而上,从GPIO杀到IIC,我为我自己开发工程提供了坚实的保障。

硬件也是其中重要的环节,我(硬件)在接到我自己(软件)的需求提出后,快速落实,抓好自律性(指等不到快递在打CSGO),配合我(软件)修改出我(硬件)和我(结构)满意的外观和软件架构。

刘工充分肯定过去半个多月来本人开发的进度流程,坚定不移的白嫖jlc的PCB、面板打印券,在外观上取得了新的成效(指亚克力面板)

搞得跟写申论一样。。。

18.改进改善建议 (高情商:留给大家的作业低情商:鸽了的功能)

我给大家留了八个作业,四个是软件,四个是硬件的,起码要完成一样哦!

18.1(软件)浇水控制逻辑进一步完善

18.2(软件)天气预报功能

GY-39是一个非常强大的传感器,可以测湿度大气压等。

18.3(软件)上位机增加时间轴功能和状态LED灯

目前上位机时间是没有添加时间轴的,接收到一个数据就+1

但是可以做成按时间来做x轴

另外,土壤,雨水和充电状态是只有串口才能看到的,能否做一个LED灯或显示窗口,显示当前充电状态,下雨状态(可以放天气图片)等直观的显示当前状态。

功能很好实现,这个应该是最简单的了把。

18.4(软件)程序架构设计优化

目前代码使用的是前后台顺序执行法,即while(1){}不断循环自己的函数,也基本不考虑每个函数执行所需要的时间,大部分情况下函数中或多或少都存在毫秒级别的延时等待。

例如本次代码就是使用的前后台顺序执行法,代码如上图。

优点:对于初学者来说,这是最容易也是最直观的程序架构,逻辑简单明了

缺点:实时性低,由于每个函数或多或少存在毫秒级别的延时,即使是1ms,也会造成其他函数间隔执行时间的不同。当程序逻辑复杂度提升时,会导致后来维护人员的大脑混乱,很难理清楚该程序的运行状态。

因此需要引进时间片论法

优点:任务函数无需时刻执行,存在间隔时间(比如按键,一般情况下,都需要软件防抖,初学者的做法通常是延时10ms左右再去判断,但10ms极大浪费了CPU的资源,在这段时间内CPU完全可以处理很多其他事情)

参考(无指针):

18.5(硬件)雨滴传感器清理功能

有的时候,刚下完雨,雨滴传感器上还残留有雨滴,不会马上干掉,但是雨滴的存在会影响我们判断当前的雨量大小,虽然说只是下毛毛细雨,但是雨滴传感器上积累很多雨滴,因此需要一个清理功能,来定时清洁雨滴传感器。

18.6(硬件)光伏板清理功能

18.7(硬件)增加电流检测电路

18.8(硬件)将传输模块更换为LoRa

本工程最远只能传输1000m无障碍物,而使用LoRa传输数据可以把数据传输更远,有障碍物情况下LoRa可以传输10km+,尝试更换无线模块为LoRa

19.演示视频

B站视频:https://www.bilibili.com/video/BV1XF411j7VS

工程成员
添加到专辑 ×

加载中...

温馨提示 ×

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

  • 153 6159 2675

服务时间

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

  • 开源平台公众号

    oshwhub