Ĉi tiu afero por vi puŝi tre praktikan Diwen Developer Forum premiitan malfermfontan kazon - T5L-bazita smtp poŝtsendinto , inĝenieroj uzas la T5L inteligenta ekrano , tra la WiFi-modulo por aliri la smtp servilo , por atingi la funkcion sendi retpoŝtojn . al la administranto, la funkciado de la ekrano por enigi la retpoŝtadreson de la ricevanto, retpoŝtan titolon, retpoŝtan enhavon kaj aliajn informojn povas esti enigataj sur la ekranon. Indas noti, ke la retpoŝta enhavo ankaŭ subtenas simplan tekston, agordajn kontrolojn, agordan tekstkoloron kaj aliajn redaktajn metodojn.
1.Programa Arkitekturo
T5L-inteligenta ekrano kontrolas la WiFi-modulon por interagi kun smtp-servilo per seria haveno 5 por atingi la funkcion de retpoŝta sendo.
![](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f969e7ea32035860.png)
![ava (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bc1027de84836.jpg)
2.Interfaco-Disvolviĝo
DGUS-programaro kompletigas la disvolviĝon de ekranaj kaj tuŝaj funkcioj per supermeto de tavoloj. Uzantoj nur bezonas ŝargi la pretajn bildmaterialojn en DGUS-programaron kaj agordi la ekranajn kaj tuŝajn funkciojn.
![ava (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bc23a89741572.jpg)
1. C51SoftaroDesign
T5L inteligenta ekrano seria haveno 5 komunikas kun WiFi-modulo por kompletigi la interagadon kun smtp-servilo. Parto de la ĉefa kodo estas kiel sekvas:
malplena uart5_init (u32 baŭdoj)
{
SCON3T = 0x80;
SCON3R = 0x80;
baŭdo = (u32)((duobla)(FOSC/8.0)/baŭdo);
BODE3_DIV_H = (baud>>8)&0xff;
BODE3_DIV_L = baud&0xff;
ES3R = 0;
ES3T = 0;
}
malplena u5_send_byte (u8 bajto)
{
SBUF3_TX = bajto;
dum(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
malplena u5_send_bytes (u8 *bajtoj,u16 len)
{
u16 kaj;
por(i=0;i
{
SBUF3_TX = bajtoj;
dum(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
}
malplena get_input (u8 * val, u8 len)
{
u8 i;
por(i=0;i
{
se(val==0xff)
{
val = 0x00;
val[i+1] = 0x00;
reveni;
}
}
}
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 atendotempo,u8 clearBuffer)
{
u8 res=0;
rx_restado=0;
se(ack&&atendotempo&&cmd)
{
dum(--atendotempo)
{
sys_prokrasto_ms(10);
if(rx_sta&0X8000)
{
if(esp8266_check_respond(ack))
rompi;
}
}
if(atendotempo==0)res=1;
if(clearBuffer==1)rx_sta=0;
}
reveni res;
}
typedef struktur {
u8 cmd;
u8 retpoŝto[20];
u8 nomo[20];
u8 titolo[20];
u8 msg[60];
}EMAIL_INFO;
EMAIL_INFO retpoŝto_info;
u8 respondi[80];
u8 wifi_nomo[30];
u8 wifi_passwd[30];
u8-servilo[30];
u8 haveno[30];
u8 uzantnomo[30];
u8 aŭth_code[30];
u8 rx_resti;
sys_read_vp(0x1000,(u8*)&btn_val,1);
se (btn_val)
{
if(btn_val==1)
{
sys_read_vp(0x3000,retpoŝto_info.nomo,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(retpoŝto_info.nomo,20);
get_input(retpoŝto_info.retpoŝto,20);
get_input(retpoŝto_info.titolo,20);
get_input(retpoŝto_info.msg,60);
sendi_pako((u8*)&retpoŝta_info,grandeco de(EMAIL_INFO));
se (rx_sta)
send_mail(email_info.email,email_info.title,email_info.msg);
}else if(btn_val==2)
{
sys_read_vp(0x3100,wifi_nomo,15);
sys_read_vp(0x3120,wifi_passwd,15);
get_input(wifi_nomo,30);
get_input(wifi_passwd,30);
}alie se(btn_val==3)
{
sys_read_vp(0x3200,servilo,15);
sys_read_vp(0x3220,port,15);
sys_read_vp(0x3240,uzantnomo,15);
sys_read_vp(0x3260,aŭth_code,15);
get_input(servilo,30);
get_input(porto,30);
get_input(uzantnomo,30);
get_input(aŭth_code,30);
}
btn_val = 0;
sys_write_vp(0x1000,(u8*)&btn_val,1);
}
sys_read_vp(0x2050,(u8*)&btn_val2,1);
if(btn_val2!=malnova_val)
{
if(btn_val2==1)
sys_write_vp(0x3060,"Ĉi tio estas retpoŝto de T5L!\0\0",30);
alie se(btn_val2==2)
sys_write_vp(0x3060,"
\0\0",30);
alie se(btn_val2==3)
sys_write_vp(0x3060," Aŭdaca
Ruĝa
\0\0",30);
old_val = btn_val2;
}
Afiŝtempo: Oct-31-2023