Soluție open source: Sistem inteligent de gestionare a dulapurilor bazat pe ecranul DWIN T5L

Folosind cipul T5L ca control principal și cipul T5L conduce servo magistrala serial pentru a controla comutatorul ușii și procesează datele senzorului colectate de controlerul auxiliar și conduce ecranul LCD pentru afișarea datelor.Are o funcție de avertizare anormală și un sistem automat de iluminare, care poate fi folosit în mod normal în situații de lumină slabă.

wps_doc_0

1. Descrierea programului

(1) Ecranul T5L este folosit ca control principal pentru a conduce direct servo magistrala serial.Folosind mecanismul de direcție din seria Feite STS, cuplul variază de la 4,5 kg la 40 kg, iar protocolul este universal.

(2) Sistemul de direcție al magistralei serial are funcții de protecție a curentului, cuplului, temperatură și tensiune, iar siguranța sa este mai mare decât cea a motoarelor convenționale;

(3) Un port serial acceptă controlul simultan a 254 de servo-uri.

2.Scheme design

(1) Schema bloc

wps_doc_1

(2) Diagrama structurii mecanice

Pentru a preveni scăderea sub control a ușii inteligentei dulapului, acest design adoptă un design dublu al mecanismului de direcție.După o pană de curent, din cauza existenței zăvorului ușii, chiar dacă servo-ul de deschidere a ușii este descărcat, dulapul inteligent este încă în starea blocat.Structura mecanică este prezentată în figură:

wps_doc_2
wps_doc_3

Diagrama structurii deschiderii

Diagrama aînchidere structura

(3) DGUS GUI Design

wps_doc_4 wps_doc_5

(4) Schema circuitului
Schema circuitului este împărțită în trei părți: placa de circuit principal (circuit servo drive + controler auxiliar + interfață), circuit coborâtor și circuit de iluminat (instalat în dulap).

wps_doc_6

Placa de circuite principale

wps_doc_7

Circuit descendente

wps_doc_8

Circuit de iluminat

5. Exemplu de program

Detectarea și reîmprospătarea temperaturii și umidității, actualizare de timp (AHT21 este condus de controlerul auxiliar, iar datele de temperatură și umiditate sunt scrise în ecranul DWIN)
/********************Actualizare temperatură și umiditate************************/
void dwin_Tempe_humi_update( void)
{
uint8_t Tempe_humi_date[20];//Comenzile trimise pe ecranul LCD
AHT20_Read_CTdata(CT_data);//Citiți temperatura și umiditatea
        
Tempe_humi_date[0]=0x5A;
Tempe_humi_date[1]=0xA5;
Tempe_humi_date[2]=0x07;
Tempe_humi_date[3]=0x82;
Tempe_humi_date[4]=(ADDR_TEMP_HUMI>>8)&0xff;
Tempe_humi_date[5]=ADDR_TEMP_HUMI&0xff;
Tempe_humi_date[6]=((CT_data[1] *200*10/1024/1024-500)>>8)&0xff;
Tempe_humi_date[7]=((CT_data[1] *200*10/1024/1024-500))&0xff;//Calculați valoarea temperaturii (mărită de 10 ori, dacă t1=245, înseamnă că temperatura este acum 24,5 °C)

Tempe_humi_date[8]=((CT_data[0]*1000/1024/1024)>>8)&0xff;
Tempe_humi_date[9]=((CT_data[0]*1000/1024/1024))&0xff;//Calculează valoarea umidității (mărită de 10 ori, dacă c1=523, înseamnă că acum umiditatea este de 52,3%)

Usart_SendString(USART_DWIN,Tempe_humi_date,10);

}


Ora postării: 08-nov-2022