Ашық бастапқы T5L негізіндегі SMTP Mailer

Бұл мәселе сіз үшін өте практикалық Diwen Developer Forum марапатына ие болған ашық бастапқы коды - T5L негізіндегі smtp пошта жіберушісі, инженерлер T5L смарт экранын пайдаланады, WiFi модулі арқылы smtp серверіне қол жеткізу, электрондық хаттарды жіберу функциясына қол жеткізу үшін. әкімшіге, алушының электрондық пошта мекенжайын, электрондық пошта атауын, электрондық пошта мазмұнын және басқа ақпаратты енгізу үшін экранның әрекетін экранға енгізуге болады.Электрондық пошта мазмұны қарапайым мәтінді, конфигурацияны басқару элементтерін, мәтін түсін орнатуды және басқа өңдеу әдістерін де қолдайтынын атап өткен жөн.

1. Programme Architecture

T5L смарт экраны электрондық поштаны жіберу функциясына қол жеткізу үшін 5 сериялық порт арқылы smtp серверімен өзара әрекеттесу үшін WiFi модулін басқарады.

ava (1)

2. Интерфейсті дамыту

DGUS бағдарламалық жасақтамасы қабаттардың суперпозициясы арқылы дисплей және сенсорлық функцияларды әзірлеуді аяқтайды.Пайдаланушылар тек DGUS бағдарламалық құралына дайындалған сурет материалдарын жүктеп, дисплей мен сенсорлық функцияларды орнатуы керек.

ava (2)

1. C51Sжиі емесDesign

T5L смарт экранының сериялық порты 5 smtp серверімен өзара әрекеттесуді аяқтау үшін WiFi модулімен байланысады.Негізгі кодтың бөлігі келесідей:

void uart5_init(u32 boud)

{

SCON3T = 0x80;

SCON3R = 0x80;

bod = (u32)((қос)(FOSC/8.0)/baud);

BODE3_DIV_H = (беру>>8)&0xff;

BODE3_DIV_L = жіберу&0xff;

ES3R = 0;

ES3T = 0;

}

жарамсыз u5_send_byte(u8 байт)

{

SBUF3_TX = байт;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *байт,u16 лен)

{

u16 i;

үшін(i=0;i

{

SBUF3_TX = байт;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val, u8 len)

{

u8 i;

үшін(i=0;i

{

егер(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

қайтару;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 күту уақыты, u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

егер(қабылдау&&күту уақыты&&cmd)

{

while(--күту уақыты)

{

sys_delay_ms(10);

егер(rx_sta&0X8000)

{

егер(esp8266_check_respond(ack))

үзіліс;

}

}

if(күту уақыты==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

қайтару рез;

}

typedef құрылымы{

u8 cmd;

u8 электрондық пошта[20];

u8 атауы[20];

u8 тақырыбы[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 жауап[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

u8 сервер[30];

u8 порты[30];

u8 пайдаланушы аты[30];

u8 аутентификация_коды[30];

u8 rx_sta;

sys_read_vp(0x1000,(u8*)&btn_val,1);

егер(btn_val)

{

егер(btn_val==1)

{

sys_read_vp(0x3000,email_info.name,10);

sys_read_vp(0x3020,email_info.email,10);

sys_read_vp(0x3040,email_info.title,10);

sys_read_vp(0x3060,email_info.msg,30);

get_input(email_info.name,20);

get_input(email_info.email,20);

get_input(email_info.title,20);

get_input(email_info.msg,60);

send_packet((u8*)&email_info,seof(EMAIL_INFO));

егер(rx_sta)

send_mail(email_info.email,email_info.title,email_info.msg);

}else if(btn_val==2)

{

sys_read_vp(0x3100,wifi_name,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(wifi_name,30);

get_input(wifi_passwd,30);

}else if(btn_val==3)

{

sys_read_vp(0x3200, сервер, 15);

sys_read_vp(0x3220, порт, 15);

sys_read_vp(0x3240, пайдаланушы аты, 15);

sys_read_vp(0x3260,auth_code,15);

get_input(сервер,30);

get_input(порт,30);

get_input(пайдаланушы аты,30);

алу_енгізу(авторлық_код,30);

}

 

btn_val = 0;

sys_write_vp(0x1000,(u8*)&btn_val,1);

}

sys_read_vp(0x2050,(u8*)&btn_val2,1);

егер(btn_val2!=eski_val)

{

егер(btn_val2==1)

sys_write_vp(0x3060,"Бұл T5L электрондық поштасы!\0\0",30);

басқа болса (btn_val2==2)

sys_write_vp(0x3060," \0\0",30);

басқа болса (btn_val2==3)

sys_write_vp(0x3060,"ҚалыңҚызыл\0\0",30);

old_val = btn_val2;

}


Хабарлама уақыты: 31 қазан 2023 ж