చాలా ఆచరణాత్మకమైన డివెన్ డెవలపర్ ఫోరమ్ అవార్డు గెలుచుకున్న ఓపెన్ సోర్స్ కేస్ను పుష్ చేయడానికి మీ కోసం ఈ సమస్య - T5L-ఆధారిత smtp మెయిల్ పంపేవారు , ఇమెయిల్లను పంపే పనిని సాధించడానికి smtp సర్వర్ని యాక్సెస్ చేయడానికి WiFi మాడ్యూల్ ద్వారా ఇంజనీర్లు T5L స్మార్ట్ స్క్రీన్ని ఉపయోగిస్తారు నిర్వాహకునికి , స్వీకర్త యొక్క ఇమెయిల్ చిరునామా , ఇమెయిల్ శీర్షిక, ఇమెయిల్ కంటెంట్ మరియు ఇతర సమాచారాన్ని నమోదు చేయడానికి స్క్రీన్ యొక్క ఆపరేషన్ స్క్రీన్పై ఇన్పుట్ చేయబడుతుంది.ఇమెయిల్ కంటెంట్ సాదా వచనం, కాన్ఫిగరేషన్ నియంత్రణలు, టెక్స్ట్ కలర్ సెట్టింగ్ మరియు ఇతర సవరణ పద్ధతులకు కూడా మద్దతు ఇస్తుందని గమనించాలి.
1.ప్రోగ్రామ్ ఆర్కిటెక్చర్
T5L స్మార్ట్ స్క్రీన్ ఇమెయిల్ పంపే పనితీరును సాధించడానికి సీరియల్ పోర్ట్ 5 ద్వారా smtp సర్వర్తో పరస్పర చర్య చేయడానికి WiFi మాడ్యూల్ను నియంత్రిస్తుంది.
2.ఇంటర్ఫేస్ అభివృద్ధి
DGUS సాఫ్ట్వేర్ లేయర్ల సూపర్పొజిషన్ ద్వారా డిస్ప్లే మరియు టచ్ ఫంక్షన్ల అభివృద్ధిని పూర్తి చేస్తుంది.వినియోగదారులు DGUS సాఫ్ట్వేర్లోకి సిద్ధం చేసిన పిక్చర్ మెటీరియల్లను మాత్రమే లోడ్ చేయాలి మరియు డిస్ప్లే మరియు టచ్ ఫంక్షన్లను సెటప్ చేయాలి.
1. C51SతరచుగాDసంకేతం
T5L స్మార్ట్ స్క్రీన్ సీరియల్ పోర్ట్ 5 smtp సర్వర్తో పరస్పర చర్యను పూర్తి చేయడానికి WiFi మాడ్యూల్తో కమ్యూనికేట్ చేస్తుంది.ప్రధాన కోడ్ యొక్క భాగం క్రింది విధంగా ఉంది:
శూన్యం uart5_init(u32 బాడ్)
{
SCON3T = 0x80;
SCON3R = 0x80;
బాడ్ = (u32)((డబుల్)(FOSC/8.0)/బాడ్);
BODE3_DIV_H = (బాడ్>>8)&0xff;
BODE3_DIV_L = బాడ్&0xff;
ES3R = 0;
ES3T = 0;
}
శూన్యం u5_send_byte(u8 బైట్)
{
SBUF3_TX = బైట్;
అయితే(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
శూన్యం u5_send_bytes(u8 *bytes,u16 len)
{
u16 i;
కోసం (i=0;i
{
SBUF3_TX = బైట్లు;
అయితే(!(SCON3T&0x01));
SCON3T &= 0xfe;
}
}
శూన్యం get_input(u8 * val,u8 len)
{
u8 i;
కోసం (i=0;i
{
ఉంటే(val==0xff)
{
వాల్ = 0x00;
val[i+1] = 0x00;
తిరిగి;
}
}
}
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 వేచి ఉండే సమయం,u8 clearBuffer)
{
u8 res=0;
rx_sta=0;
if(ack&&వెయిట్టైమ్&&cmd)
{
అయితే (--నిరీక్షణ సమయం)
{
sys_delay_ms(10);
ఉంటే(rx_sta&0X8000)
{
if(esp8266_check_respond(ack))
బ్రేక్;
}
}
if(వెయిట్టైమ్==0)res=1;
if(clearBuffer==1)rx_sta=0;
}
రిటర్న్ రెస్;
}
టైప్డెఫ్ నిర్మాణం{
u8 cmd;
u8 ఇమెయిల్[20];
u8 పేరు[20];
u8 టైటిల్[20];
u8 msg[60];
}EMAIL_INFO;
EMAIL_INFO ఇమెయిల్_సమాచారం;
u8 ప్రతిస్పందించండి[80];
u8 wifi_name[30];
u8 wifi_passwd[30];
u8 సర్వర్[30];
u8 పోర్ట్[30];
u8 వినియోగదారు పేరు[30];
u8 auth_code[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,sizeof(EMAIL_INFO));
ఉంటే (rx_sta)
send_mail(email_info.email,email_info.title,email_info.msg);
}లేకపోతే(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);
}లేకపోతే(btn_val==3)
{
sys_read_vp(0x3200, సర్వర్,15);
sys_read_vp(0x3220,port,15);
sys_read_vp(0x3240,యూజర్ పేరు,15);
sys_read_vp(0x3260,auth_code,15);
get_input(సర్వర్,30);
get_input(పోర్ట్,30);
get_input(యూజర్ పేరు,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);
ఉంటే(btn_val2!=old_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