主控器件:NodeMCU-ESP32开发板
主要功能:
1. 连接blinker,通过手机WiFi控制。
2. 手机界面按键控制继电器模块。
3. 通过DHT11采集温湿度,通过PH值传感器采集PH值。
系统功能框图:
主要功能模块原理图
单片机及按键输入电路:
传感器采集电路:
资料获取地址
https://shop272529339.taobao.com
系统主要功能模块代码
系统文件包含及定义:
//使用Blinker的WIFI功能必须开启此宏定义
#define BLINKER_WIFI
//包含Blinker库的头文件
#include <Blinker.h>
//使用DHT11库读取环境温湿度
#include "DHT.h"
//此处为blinker APP生成的密钥,注意一个密钥对应一个WIFI设备
char auth[] = "81cbef6099bb";
//此处为WIFI账号名
char ssid[] = "YuanWang";
//此处为WIFI密码
char pswd[] = "A2023#1010";
//声明DHT11温湿度传感器管脚
#define DHTPIN 17 //Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 //DHT11
DHT dht(DHTPIN, DHTTYPE);
//温湿度初值
float readHumiVal = 50.0;
float readTempVal = 28.0;
//系统时间
uint32_t intervalTime = 0;
//blinker app中对应的按键定义
BlinkerButton RELAY("relay"); //开关继电器按键
//DHT11温湿度传感器定义,使用的是Adafruit的DHT-sensor-library
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
BlinkerNumber PH("ph");
//读取PH值传感器值,管脚gpio34, A6
//ad value
int adVal = 0;
//ph value
float phVal = 7.0;
采集PH值:
void ReadPH(void)
{
float tempVol = 0;
//此模块输出电压范围调整为0~3V3,调整方法如下
//需要在PH计放在9.18标准缓冲液里,调节旋转电位器,将输出调整为1.3V
//需要在PH计放在6.86标准缓冲液里,调节旋转电位器,将输出调整为1.7V
//需要在PH计放在PH4.0标准缓冲液里,调节旋转电位器,将输出调整为2.2V
//读ADC值,输出电压范围0~3V3
adVal = analogRead(A6);
// Serial.println(adVal, DEC);
tempVol = adVal*(3.3/4095.0);
phVal = -5.7541*tempVol + 16.654;
// Serial.println(phVal, DEC);
}
采集温湿度数据:
//读取DHT11温湿度值
void ReadDHT11(void)
{
static unsigned char dht11Cnt = 0;
dht11Cnt++;
if(dht11Cnt>=3)
{
dht11Cnt = 0;
float h = dht.readHumidity(); //读取湿度
float t = dht.readTemperature(); //读取温度,默认为摄氏度
if((isnan(h))||(isnan(t)))
{
;
}
else
{
readHumiVal = h;
readTempVal = t;
// Serial.println(readHumiVal, DEC);
// Serial.println(readTempVal, DEC);
}
}
}
此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。
系统各模块资料: