迪文科技论坛

 找回密码
 立即注册
搜索
查看: 21|回复: 0

【2025.03.31获奖项目】智能微波热解仪

[复制链接]

584

主题

172

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12864
发表于 4 天前 | 显示全部楼层 |阅读模式
【开源】智能微波热解仪

一、项目背景
微波热解仪是一种用于实验室样品前处理的精密设备,主要用于通过高温高压的微波加热方式快速热解有机或无机样品,它的应用场景多用于如下三种:

1.样品前处理

  • 将固体或复杂样品转化为液体形态,便于后续的色谱分析(如ICP-MS、AAS、HPLC等)。
  • 适用于重金属检测、元素分析、污染物等研究

2.加速化学反应

  • 微波直接作用于极性分子(典型的就是水),通过分子摩擦产生热量,显著加快热解速度(传统方法需数小时,微波热解仅需几分钟到半小时),效率非常的高

3.处理难溶物质
  • 可热解高温难熔材料(如合金)或顽固有机物(如塑料),这要是用传统的方式那是非常麻烦的,还得先做碎化处理


那我们现在来定位到微波热解仪本身,它的核心模块由如下几个部分构成:

    1.T5L主控制器+7寸1024*600的RGB触摸显示屏
    2.高温高压产生模块
    3.控温模块,实时监测并调节温度和压力,避免容器过压爆炸
    4.多工位并行处理模块
    5.分段式程设,预设热解方法(梯度升温、分段控压),适配不同样品类型,方法一旦创建,可以永久反复调用
    6.旋转机构等硬件




二、GUI设计

1.所有图片素材如下:



2.仪器上电后,将首先进入系统加载界面,在这里仪器做一些基本的初始化,使仪器处于就绪状态

3.加载完成后,将进入多用户,多角色选择界面,主要是分为了管理员(具有所有的权限), 组长, 实验员(只有基本的实验权限)

4.同时主界面上也可以进行网络配置,使用的是ESP8266+Airkiss配网机制

Airkiss配网界面如下:

5.若用户选择的是管理员或者组长,则需要密码验证,同时在此界面下也可以修改密码

6.验证通过后,用户将进入到热解模式选择界面,其中维护功能主要是仪器厂家调试, 数据记录等功能

7.不论是用户选择了高热量模式,还是选择了高功率模式,都将进入其对应的方法创建,调阅界面
高热量的:



高功率的:


8.用户创建了新的方法或者调用了老的已存方法后,将进入其对应的运行界面
高热量的:

高功率的:

9.然后就是前面所说的维护功能了
维护功能也是需要验证后才能进入的,密码和管理员密码一致的

下面这是调试功能


下面是记录调阅



三、代码设计

  1. 首先是在管理员验证界面需要做如下的处理,监听功率模块发过来的串口数据包
  2. void role_win_handler()
  3. {
  4.         u16 val;
  5.       
  6.         if(!is_wait_respond)
  7.                 return;
  8.         if((uart2_rx_len==0x59)&&(uart2_buf[0]==0x82))
  9.         {
  10.                 skip_cnt++;
  11.                 if(skip_cnt==12)
  12.                 {
  13.                         skip_cnt = 0;
  14.                         is_wait_respond = 0;
  15.                         if(uart2_buf[78]==0)
  16.                         {
  17.                                 method_win_init();
  18.                                 set_win(mode==GTL?3:5);
  19.                                 val = 0;
  20.                         }else
  21.                         {
  22.                                 val = (mode==GTL?59:60);
  23.                         }
  24.                         sys_write_vp(ROLE_WIN_ERR_TIP_VP,(u8*)&val,1);
  25.                 }
  26.         }
  27.       
  28. }



  29. 核心的加载对应方法

  30. void method_win_init()
  31. {
  32.         u16 val = 0;
  33.       
  34.         sys_write_vp(METHOD_WIN_TIP_VP,(u8*)&val,1);
  35.         is_method_win = 1;
  36.         sys_write_vp(METHOD_WIN_NO_VP,(u8*)&cur_method_no,1);
  37.         method_win_load(cur_method_no);

  38. }



  39. void method_win_load(u16 no)
  40. {
  41.         u16 addr = METHOD_WIN_STEP_START_VP;
  42.         u8 i,j;
  43.       
  44.         sys_write_vp(METHOD_WIN_TMP_VP,(u8*)&cool_tmp,1);
  45.         sys_write_vp(METHOD_WIN_TIME_VP,(u8*)&cool_time,1);
  46.         if(!is_cloud_method)
  47.         {
  48.                 METHOD_READ(&cur_method,no);
  49.         }
  50.         for(i=0;i<10;i++)
  51.         {
  52.                 for(j=0;j<4;j++)
  53.                 {
  54.                         sys_write_vp(addr,(u8*)&(cur_method.step[j]),1);
  55.                         addr += METHOD_WIN_OFFSET;
  56.                 }
  57.         }
  58.       
  59.         method_win_gray_invalid_step();
  60. }
  61. 下面这是读取用户创建的方法参数

  62. void method_win_read_params()
  63. {
  64.         u16 addr = METHOD_WIN_STEP_START_VP;
  65.         u8 i,j;
  66.       
  67.         sys_read_vp(METHOD_WIN_TMP_VP,(u8*)&cool_tmp,1);
  68.         sys_read_vp(METHOD_WIN_TIME_VP,(u8*)&cool_time,1);
  69.         for(i=0;i<10;i++)
  70.         {
  71.                 for(j=0;j<4;j++)
  72.                 {
  73.                         sys_read_vp(addr,(u8*)&(cur_method.step[j]),1);
  74.                         addr += METHOD_WIN_OFFSET;
  75.                 }
  76.                 if(mode==MODE_GTL)
  77.                 {
  78.                         cur_method.step[0] = 0;
  79.                 }
  80.         }
  81. }


  82. //实时监听用户方法界面的参数修改,针对修改项进行红色高亮显示

  83. void method_win_scan()
  84. {
  85.         static u16 old_tip = 0xffff;
  86.         static u8 input_pos = 0;
  87.         u16 tip;
  88.         u8 i;
  89.       
  90.         if(is_method_win==0)
  91.                 return;
  92.       
  93.         tip = 0;
  94.         for(i=0;i<43;i++)//4*10+3=43
  95.         {
  96.                 sys_read_vp(METHOD_WIN_LOAD_START_VP+METHOD_WIN_OFFSET*i,(u8*)&tip,1);
  97.                 if(tip==0xF800)
  98.                 {
  99.                         input_pos = i+1;
  100.                         if(i==0)
  101.                                 tip = 44;
  102.                         else if(i==1)
  103.                                 tip = 41;
  104.                         else if(i==2)
  105.                                 tip = 42;
  106.                         else
  107.                                 tip = i-2;
  108.                         break;
  109.                 }
  110.         }
  111.         if(input_pos&&(i==43))
  112.         {
  113.                 if(role==ROLE_GENERAL)
  114.                         method_win_load(cur_method_no);
  115.                 else
  116.                 {
  117.                         method_win_read_params();
  118.                         method_win_gray_invalid_step();
  119.                 }
  120.                 input_pos = 0;
  121.         }
  122.         if(old_tip!=tip)
  123.         {
  124.                 sys_write_vp(METHOD_WIN_TIP_VP,(u8*)&tip,1);
  125.                 old_tip = tip;
  126.         }
  127.         sys_read_vp(METHOD_WIN_NO_VP,(u8*)&cur_method_no,1);
  128.         if(old_method_no!=cur_method_no)
  129.         {
  130.                 is_cloud_method = 0;
  131.                 method_win_load(cur_method_no);
  132.                 old_method_no = cur_method_no;
  133.         }
  134.       
  135. }


  136. GUI参考:  template.rar (7.02 MB, 下载次数: 2)
  137. vs代码参考:  vs_wbrjy.rar (33.29 KB, 下载次数: 0)
复制代码

视频演示:https://b23.tv/4N54nwK










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-4-8 00:34 , Processed in 0.085684 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表