ESP32发送温湿度信息邮件教程
创作时间:
作者:
@小白创作中心
ESP32发送温湿度信息邮件教程
引用
CSDN
1.
https://m.blog.csdn.net/zcz20053550/article/details/145734155
本文将介绍如何使用ESP32读取DHT11传感器的温湿度数据,并通过SMTP协议将数据发送到指定邮箱。
一、简介
1.背景知识
ESP32通过SMTP协议在发送端邮箱请求发送权限,然后将DHT11收集到的温湿度信息,周期性的发送到接收端的邮箱。
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一组用于从源地址到目的地址传输邮件的规范。SMTP服务器遵循SMTP协议,帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP认证要求必须在提供了账户名和密码之后才可以登录SMTP服务器,以防止垃圾邮件的传播。
二、使用步骤
1、程序代码
#include <Arduino.h>
#include <HTTPClient.h>
#include <DHT.h>
#include <WiFi.h>
// WiF主网络名称(SSID)
const char* ssid ="your_ssid";
// WiFi网络密码
const char* password = "your_password";
//定义DHT22传感器连接的引脚
#define DHTPIN 4
//传感器类型定义为DHT11
#define DHTTYPE DHT11
//创建DHT对象用于操作传感器
DHT dht(DHTPIN, DHTTYPE);
//发件人的相关SMTP邮箱配置,需替换为实际值
String smtpEmail ="your_email@example.com";
const char* smtpCode="your_smtp_code";
const char* smtpCodeType="your_smtp_type";
// 连接WiFi网络
void connectWiFi()
{
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED)
{
//通过循环不断检测是否连接成功
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
}
//发送邮件的函数,收件人,标腿,主题,内容
void sendEmailMessage(String recipient, String fromTitle, String subject,String messageContent)
{
if(WiFi.status() != WL_CONNECTED)
{
//首先检查WiFi是否已经连接、如果没
Serial.println("WiFi not connected");
return;
}
HTTPClient http;
//构建POST请求的数据,拼接各项参数,创建一个HTTPClient对象,用于后续发送
String postPayload = "ColaKey=ZNDuFY8bBPgJuk173993795133902c8m9wMIS&tomail=" + recipient + "&fromTitle=" + fromTitle + "&subject=" + subject + "&content=" + messageContent + "&smtpCode=" + smtpCode + "&smtpEmail=" + smtpEmail + "&smtpCodeType=" + smtpCodeType + "&isTextContent=true";
//开始连接指定的邮件发送服务URL
http.begin("https://luckycola.com.cn/tools/customMail");
//设置请求头,指定内容类型为表单数据格式,为了让邮件发送服务能正确解析接收
http.addHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST请求
int responseCode = http.POST(postPayload);
http.end();
}
void setup()
{
Serial.begin(115200);
dht.begin();
connectWiFi();
}
void loop()
{
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if(isnan(temperature)||isnan(humidity))
{
Serial.println("FAIL to read Humidity Temperature");
return;
}
String mailContent = "Temperature:"+String(temperature)+"℃,Humidity:"+String(humidity)+"%";
//接收邮箱、标题、主题、内容
sendEmailMessage("recipient_email@example.com","esp32 data","environment",mailContent);
delay(600000); //发送间隔
}
2.串口输出
正在执行任务: C:\Users\zuo\.platformio\penv\Scripts\platformio.exe device monitor
--- Terminal on COM9 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13232
load:0x40080400,len:3028
entry 0x400805e4
Connecting to WiFi...
.Connected to WiFi
热门推荐
水门桥战役:抗美援朝的经典之战
16岁男生健身指南:运动计划与营养建议全攻略
用艾森豪威尔法则规划寒假,让学习运动两不误
运动不止强身,更能健心:最新研究揭示体育活动助青少年心理健康
孙悟空大战狮驼岭:智慧与勇气的较量
狮驼岭三大妖怪竟是佛祖布局?
《孙悟空大战狮驼岭》:票房与口碑的双重考验
2024成都国际美食嘉年华熊猫美食地图攻略
从弃婴到千万富婆:张白鸽带养父环游中国的感恩之旅
成都六日游:打卡最火网红景点,玩转天府之国
王者荣耀:亚瑟打野技巧全攻略
亚瑟打野,低端局上分神器?
小米案例揭示:高效投诉处理如何提升企业竞争力
双11后遗症:1.7万消费者投诉,保价服务频现猫腻
貂蝉、张良、白起新皮肤大猜想:玩家热议三大英雄皮肤设计方向
大五棱山楂:平均24.3克大果,走红全国果汁市场
兴隆山楂选购全攻略:外观、气味、口感三步辨真
社会阶层与心理健康:你属于哪一层?
七言对联:传统文化的新宠儿
明清七言对联:传统文化的瑰宝
七言对联的技巧,让你秒变诗词达人
抑郁症自救指南:专家教你三招
青少年心理健康:学校如何打好“防抑战”
早期现代英语中oa和o、ea和e有什么区别
赵本山春晚21年:《相亲》《拜年》等经典小品全回顾
挖掘机发电机保养秘籍,让你的设备持久高效
从补钙到护眼:干秋葵的六大养生功效与食用注意事项
秋葵走红:从2008年奥运餐桌到百姓家的15年普及路
篮球运动促进身高增长,16岁男生科学增高指南
弹力带训练肌肉8个方法!一条阻力带就可训练胸肌、三头肌、背肌