——Saka DWIN Developer Forum
Kasus open source sing menang penghargaan sing disaranake dening forum DWIN bisa digunakake ing industri konstruksi kanggo ndeteksi konten komponen semen - alat ukur multi-jumlah semen adhedhasar layar cerdas T5L. Insinyur nggunakake layar pinter T5L kanggo ngontrol modul deteksi bobot elektronik, modul pangukuran suhu, modul pemanasan, sensor kelembapan, lan modul pencampur kanggo nyadari fungsi deteksi solusi padhet lan konten komponen semen cair, lan ndhukung tampilan tingkat wektu nyata, setelan suhu, cathetan sajarah, setelan paramèter Stage lan fungsi liyane.
1. Struktur Program
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2. Tampilan Material UI
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3. Tuladha Pangembangan UI
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4. Desain piranti lunak C51
Program printah initialization kanggo insinyur kanggo komunikasi karo papan kontrol nggunakake port serial T5L 2 minangka nderek:
void app_init()
{
is_testing = 0;
test_run_time = 0;
is_sec = 0;
periode1 = 0;
is_period1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
Program utama layar cerdas T5L sesambungan karo papan kontrol kanggo mujudake fungsi deteksi komposisi semen minangka nderek:
batal btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
yen (is_testing&&is_sec)
{
is_sec = 0;
test_run_time++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));
combuff[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
yen (uart2rxsta&UART2_PACKET_OK)
{
if(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
} else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(float*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
} else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
speed_val = *(float*)(uart2buf+2);
disp_val += (kacepetan_val * 2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
} else if(uart2buf[0]==0x04)
{
total_num = uart2buf[1]*256+uart2buf[2];
} else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
yen (punika_periode1)
{
is_period1 = 0;
t_sampel();
if(is_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
yen (is_btn_scan==0)
bali;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
yen(btn_val==0)
bali;
yen(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Deleng kode sumber kanggo luwih akeh.
Wektu kirim: Dec-02-2023