Open source T5L-based SMTP Mailer

Kini nga isyu alang kanimo sa pagduso sa usa ka praktikal kaayo nga Diwen Developer Forum award-winning nga open source case - T5L-based smtp mail sender , gigamit sa mga inhenyero ang T5L smart screen, pinaagi sa WiFi module aron ma-access ang smtp server, aron makab-ot ang function sa pagpadala sa mga email sa administrador , ang operasyon sa screen aron masulod ang email address sa nakadawat, titulo sa email, sulod sa email ug uban pang impormasyon mahimong ma-input sa screen.Angay nga hinumdoman nga ang sulud sa email nagsuporta usab sa yano nga teksto, mga kontrol sa pagsumpo, pagtakda sa kolor sa teksto ug uban pang mga pamaagi sa pag-edit.

1. Arkitektura sa Programa

Ang T5L smart screen nagkontrol sa WiFi module aron makig-uban sa smtp server pinaagi sa serial port 5 aron makab-ot ang function sa pagpadala sa email.

ava (1)

2.Pagpalambo sa Interface

Ang software sa DGUS nagkompleto sa pagpalambo sa mga function sa display ug touch pinaagi sa superposition sa mga layer.Ang mga tiggamit kinahanglan lamang nga i-load ang giandam nga mga materyal sa litrato sa DGUS software ug i-set up ang display ug touch function.

ava (2)

1. C51SkasagaranDesign

Ang T5L smart screen serial port 5 nakigsulti sa module sa WiFi aron makompleto ang interaksyon sa smtp server.Bahin sa nag-unang kodigo mao ang mosunod:

void uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

baud = (u32)((doble)(FOSC/8.0)/baud);

BODE3_DIV_H = (baud>>8)&0xff;

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

walay u5_send_byte(u8 byte)

{

SBUF3_TX = byte;

samtang(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

walay u5_send_bytes(u8 *bytes,u16 len)

{

u16 ako;

kay(i=0;i

{

SBUF3_TX = bytes;

samtang(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 ako;

kay(i=0;i

{

kon(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

pagbalik;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

kung(ack&&paghulat&&cmd)

{

samtang(--paghulat)

{

sys_delay_ms(10);

kung(rx_sta&0X8000)

{

kung(esp8266_check_respond(ack))

guba;

}

}

kung(oras sa paghulat==0)res=1;

kon(clearBuffer==1)rx_sta=0;

}

pagbalik res;

}

typedef struct {

u8 cmd;

u8 email[20];

u8 ngalan[20];

u8 titulo[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 tubag[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

u8 server[30];

u8 port[30];

u8 username[30];

u8 auth_code[30];

u8 rx_sta;

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

kung(btn_val)

{

kung(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, sizeof(EMAIL_INFO));

kung(rx_sta)

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

}lain kon(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);

}lain kon(btn_val==3)

{

sys_read_vp(0x3200,server,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240,username,15);

sys_read_vp(0x3260,auth_code,15);

get_input(server,30);

get_input(port,30);

get_input(username,30);

get_input(auth_code,30);

}

 

btn_val = 0;

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

}

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

kung(btn_val2!=old_val)

{

kung(btn_val2==1)

sys_write_vp(0x3060,"Kini usa ka email gikan sa T5L!\0\0",30);

lain kung(btn_val2==2)

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

lain kung(btn_val2==3)

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

old_val = btn_val2;

}


Oras sa pag-post: Okt-31-2023