Açık kaynak T5L tabanlı SMTP Posta Göndericisi

Bu konu sizin için çok pratik bir Diwen Geliştirici Forumu ödüllü açık kaynak vakası - T5L tabanlı smtp posta göndericisi, mühendisler e-posta gönderme işlevini gerçekleştirmek için smtp sunucusuna erişmek için WiFi modülü aracılığıyla T5L akıllı ekranı kullanıyor Yöneticiye, ekranın işleyişini girerek alıcının e-posta adresini, e-posta başlığını, e-posta içeriğini ve diğer bilgileri ekrana girebilirsiniz.E-posta içeriğinin aynı zamanda düz metni, yapılandırma kontrollerini, metin rengini ayarlamayı ve diğer düzenleme yöntemlerini de desteklediğini belirtmekte fayda var.

1.Program Mimarisi

T5L akıllı ekran, e-posta gönderme işlevini gerçekleştirmek için seri bağlantı noktası 5 üzerinden smtp sunucusuyla etkileşim kurmak üzere WiFi modülünü kontrol eder.

Ava (1)

2.Arayüz Geliştirme

DGUS yazılımı, katmanların üst üste bindirilmesi yoluyla ekran ve dokunma işlevlerinin geliştirilmesini tamamlar.Kullanıcıların sadece hazırlanan resim materyallerini DGUS yazılımına yüklemeleri ve ekran ve dokunma fonksiyonlarını ayarlamaları yeterlidir.

Ava (2)

1.C51SyazılımDe-tasarım

T5L akıllı ekran seri bağlantı noktası 5, smtp sunucusuyla etkileşimi tamamlamak için WiFi modülüyle iletişim kurar.Ana kodun bir kısmı aşağıdaki gibidir:

geçersiz uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

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

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

void u5_send_byte(u8 bayt)

{

SBUF3_TX = bayt;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *bytes,u16 len)

{

u16 ben;

for(i=0;i

{

SBUF3_TX = bayt;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 ben;

for(i=0;i

{

if(val==0xff)

{

değer = 0x00;

val[i+1] = 0x00;

geri dönmek;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 bekleme süresi,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

if(alındı&&bekleme süresi&&cmd)

{

while(--bekleme süresi)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

kırmak;

}

}

if(bekleme süresi==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

geri dönüş;

}

typedef yapısı{

u8 cmd;

u8 e-postası[20];

u8 adı[20];

u8 başlığı[20];

u8 mesajı[60];

}E MAİL BİLGİSİ;

EMAIL_INFO email_info;

u8 yanıt ver[80];

u8 wifi_adı[30];

u8 wifi_passwd[30];

u8 sunucusu[30];

u8 bağlantı noktası[30];

u8 kullanıcı adı[30];

u8 kimlik_kodu[30];

u8 rx_sta;

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

if(btn_val)

{

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

eğer(rx_sta)

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

}else if(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);

}else if(btn_val==3)

{

sys_read_vp(0x3200,sunucu,15);

sys_read_vp(0x3220,bağlantı noktası,15);

sys_read_vp(0x3240,kullanıcı adı,15);

sys_read_vp(0x3260,auth_code,15);

get_input(sunucu,30);

get_input(bağlantı noktası, 30);

get_input(kullanıcı adı,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);

if(btn_val2!=eski_val)

{

if(btn_val2==1)

sys_write_vp(0x3060,"Bu T5L!\0\0",30);

else if(btn_val2==2)

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

else if(btn_val2==3)

sys_write_vp(0x3060,"Gözü pekKırmızı\0\0",30);

eski_val = btn_val2;

}


Gönderim zamanı: 31 Ekim 2023