esp32发送温湿度信息邮件


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

一、简介

1.背景知识

ESP32通过后在发送端邮箱请求发送权限,然后将DHT11收集到的温湿度信息,周期性的发送到接收端的邮箱。

SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
信息传输路径
esp32接线图

二、使用步骤

1、程序代码

代码如下(示例):

#include <Arduino.h>
#include <HTTPClient.h>
#include <DHT.h>
#include <WiFi.h>

// WiF主网络名称(SSID)
const char* ssid ="xinxin";
// WiFi网络密码??
const char* password = "xinxin1102";
//定义DHT22传感器连接的引脚??
#define DHTPIN 4
//传感器类型定义为DHT11
#define DHTTYPE DHT11
//创建DHT对象用于操作传感器
DHT dht(DHTPIN, DHTTYPE);
//发件人的相关SMTP邮箱配置,需替换为实际值
String smtpEmail ="zcz20053550@163.com";
const char* smtpCode="VGTRhKdRDcDTN8f2";
const char* smtpCodeType="163";
// 连接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("1799924166@qq.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


接收到的邮件

esp32发送邮件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水手勇敢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值