Open source T5L-based SMTP Mailer

Toleo hili kwako kusukuma kesi ya chanzo huria iliyoshinda tuzo ya Diwen Developer Forum - T5L-based smtp mail mtumaji , wahandisi hutumia skrini mahiri ya T5L , kupitia moduli ya WiFi kufikia seva ya smtp , ili kufikia kazi ya kutuma barua pepe. kwa msimamizi , utendakazi wa skrini kuingiza barua pepe ya mpokeaji , kichwa cha barua pepe, maudhui ya barua pepe na maelezo mengine yanaweza kuingizwa kwenye skrini.Ni vyema kutambua kwamba maudhui ya barua pepe pia yanasaidia maandishi wazi, udhibiti wa usanidi, kuweka rangi ya maandishi na mbinu nyingine za uhariri.

1.Usanifu wa Programu

Skrini mahiri ya T5L hudhibiti moduli ya WiFi ili kuingiliana na seva ya smtp kupitia lango la 5 ili kufikia utendakazi wa kutuma barua pepe.

ava (1)

2.Maendeleo ya Kiolesura

Programu ya DGUS inakamilisha uundaji wa vitendaji vya kuonyesha na kugusa kupitia uwekaji juu wa tabaka.Watumiaji wanahitaji tu kupakia nyenzo za picha zilizotayarishwa kwenye programu ya DGUS na kusanidi vitendaji vya kuonyesha na kugusa.

ava (2)

1. C51Smara kwa maraDishara

T5L skrini mahiri ya mlango wa 5 wa mfululizo huwasiliana na moduli ya WiFi ili kukamilisha mwingiliano na seva ya smtp.Sehemu ya kanuni kuu ni kama ifuatavyo:

uart5_init utupu(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

baud = (u32) ((mara mbili) (FOSC/8.0)/baud);

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

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

baiti u5_send_byte(u8 byte)

{

SBUF3_TX = baiti;

wakati(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

u5_send_baiti batili(u8 *baiti, u16 len)

{

u16 mimi;

kwa(i=0;i

{

SBUF3_TX = ka;

wakati(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

ingizo_batili (u8 * val, u8 len)

{

u8 mimi;

kwa(i=0;i

{

ikiwa(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

kurudi;

}

}

}

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

{

u8 res=0;

rx_sta=0;

ikiwa(ack&&waittime&&cmd)

{

wakati (--waittime)

{

sys_delay_ms(10);

ikiwa(rx_sta&0X8000)

{

ikiwa(esp8266_check_respond(ack))

mapumziko;

}

}

ikiwa(waittime==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

kurudi mapumziko;

}

muundo wa typedef{

U8 cmd;

u8 barua pepe [20];

u8 jina[20];

u8 cheo[20];

u8 ujumbe[60];

}EMAIL_INFO;

EMAIL_INFO barua pepe_maelezo;

u8 jibu[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

seva ya u8[30];

u8 bandari[30];

u8 jina la mtumiaji[30];

u8 auth_code[30];

u8 rx_sta;

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

ikiwa(btn_val)

{

ikiwa(btn_val==1)

{

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

sys_read_vp(0x3020,barua pepe_info.email,10);

sys_read_vp(0x3040,barua pepe_info.title,10);

sys_read_vp(0x3060,barua pepe_info.msg,30);

get_input(barua pepe_info.name,20);

get_input(barua pepe_info.email,20);

get_input(barua pepe_info.title,20);

get_input(barua pepe_info.msg,60);

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

ikiwa(rx_sta)

send_mail(barua pepe_info.email,barua pepe_info.title,barua pepe_info.msg);

}vingine ikiwa(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);

}vingine ikiwa(btn_val==3)

{

sys_read_vp(0x3200,server,15);

sys_read_vp(0x3220,bandari,15);

sys_read_vp(0x3240,jina la mtumiaji,15);

sys_read_vp(0x3260,auth_code,15);

get_input(seva,30);

get_input(bandari,30);

get_input(jina la mtumiaji,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);

ikiwa(btn_val2!=zamani_val)

{

ikiwa(btn_val2==1)

sys_write_vp(0x3060,"Hii ni barua pepe kutoka T5L!\0\0",30);

vinginevyo ikiwa(btn_val2==2)

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

vinginevyo ikiwa(btn_val2==3)

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

old_val = btn_val2;

}


Muda wa kutuma: Oct-31-2023