Open source basis T5L SMTP Mailer

masalah ieu pikeun anjeun nyorong hiji pisan praktis Diwen Pamekar Forum-unggul pangajén kasus open source - basis T5L smtp mail pangirim , insinyur ngagunakeun layar pinter T5L , ngaliwatan modul WiFi ngakses server smtp , pikeun ngahontal fungsi ngirim surelek ka administrator , operasi layar pikeun nuliskeun alamat surélék panarima, judul surelek, eusi surelek sareng inpo nu sejenna bisa jadi input dina layar.Perhatos yén eusi email ogé ngadukung téks polos, kontrol konfigurasi, netepkeun warna téks sareng metode ngedit anu sanés.

1. Arsitéktur Program

T5L layar pinter ngadalikeun modul WiFi pikeun berinteraksi sareng server smtp ngaliwatan port serial 5 pikeun ngahontal fungsi ngirim email.

ava (1)

2. Pangwangunan Interface

Parangkat lunak DGUS ngalengkepan pamekaran tampilan sareng fungsi touch ngaliwatan superposisi lapisan.Pamaké ngan ukur kedah ngamuat bahan gambar anu disiapkeun kana parangkat lunak DGUS sareng nyetél fungsi tampilan sareng rampa.

ava (2)

1. C51SofwareDesign

T5L layar pinter port serial 5 communicates kalawan modul WiFi pikeun ngalengkepan interaksi jeung server smtp.Bagian tina kode utama nyaéta kieu:

void uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

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

BODE3_DIV_L = baud & 0xff;

ES3R = 0;

ES3T = 0;

}

batal u5_send_byte(u8 byte)

{

SBUF3_TX = bait;

bari(!(SCON3T&0x01));

SCON3T & = 0xfe;

}

batal u5_send_bytes(u8 *bytes,u16 len)

{

u16 abdi;

pikeun(i=0;i

{

SBUF3_TX = bait;

bari(!(SCON3T&0x01));

SCON3T & = 0xfe;

}

}

batal get_input(u8 * val,u8 len)

{

u8 abdi;

pikeun(i=0;i

{

lamun(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

mulang;

}

}

}

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

{

u8 res=0;

rx_sta=0;

lamun(ack&&waittime&&cmd)

{

bari (--nungguan)

{

sys_delay_ms (10);

lamun(rx_sta&0X8000)

{

lamun (esp8266_check_respond(ack))

megatkeun;

}

}

lamun (waittime == 0) res = 1;

lamun (clearBuffer == 1) rx_sta = 0;

}

balik res;

}

typedef struct {

u8 cmd;

email u8[20];

u8 ngaran[20];

u8 judul[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 ngabales[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

server u8[30];

port u8[30];

ngaran pamaké u8[30];

u8 auth_code[30];

u8 rx_sta;

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

lamun (btn_val)

{

lamun(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));

lamun (rx_sta)

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

}lain lamun(btn_val==2)

{

sys_read_vp (0x3100, wifi_name, 15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input (ngaran_wifi, 30);

get_input(wifi_passwd,30);

}lain lamun(btn_val==3)

{

sys_read_vp(0x3200,server,15);

sys_read_vp(0x3220,port,15);

sys_read_vp (0x3240, ngaran pamaké, 15);

sys_read_vp(0x3260,auth_code,15);

get_input (server, 30);

get_input(port,30);

get_input (ngaran pamaké, 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);

lamun(btn_val2!=old_val)

{

lamun(btn_val2==1)

sys_write_vp(0x3060,"Ieu surelek ti T5L!\0\0",30);

lain lamun(btn_val2==2)

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

lain lamun(btn_val2==3)

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

old_val = btn_val2;

}


waktos pos: Oct-31-2023