一、硬件设计
1. 原理图设计
主控模块:使用NodeMCU开发板。
水泵:使用DC 5V小水泵来给盆栽灌水。
土壤湿度传感器:使用淘宝上常见的土壤湿度计检测模块,模块在土壤湿度达不到设定的阈值时,DO口输出高电平,反之,DO口输出低电平。如图:
2. PCB设计
二、 软件设计
2.1 ESP8266程序编写
void setup() {
// 配置波特率为9600
Serial.begin(9600);
display.initialize();
// 配置引脚模式
pinMode(LED, OUTPUT);
pinMode(beep, OUTPUT);
pinMode(PUMP, OUTPUT);
pinMode(SENSOR_AO, INPUT); // 土壤湿度检测模块AO管脚
pinMode(SENSOR_DO, INPUT); // 土壤湿度检测模块DO管脚
// 智能配网
if (!autoConfig())
{
smartConfig();
}
// 初始化阿里云IOT SDK
AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
}
void loop() {
// OLED显示信息
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
// 通过土壤湿度传感器获取土壤湿度
int moisture = analogRead(SENSOR_AO);
Serial.print("土壤湿度:");
Serial.println(moisture);
// 将土壤湿度数据转成百分制
int value = map(moisture, 0, 1024, 100, 0);
// 将土壤湿度数据发送到阿里云物联网平台
AliyunIoTSDK::send("soilHumidity", value);
int out = digitalRead(SENSOR_DO);
Serial.print("土壤湿度检测模块输出电平");
Serial.println(out);
// 如果土壤湿度检测模块输出高电平,说明土壤缺水了。
if (digitalRead(SENSOR_DO) == HIGH)
{
// 打开水泵
digitalWrite(PUMP, HIGH);
} else {
// 关闭水泵
digitalWrite(PUMP, LOW);
}
AliyunIoTSDK::send("pump", out);
AliyunIoTSDK::loop();
delay(2000);
}
2.2 阿里云物联网IoT Studio 移动可视化开发界面
2.3 微信小程序开发
完整资料下载(包含原理图、PCB图、完整ESP8266程序)
https://item.taobao.com/item.htm?ft=t&id=681542802465
本文章来源于互联网,如有侵权,请联系删除!原文地址:基于ESP8266的智能浇花控制系统的设计
相关推荐: 物联网组网技术比较 NB-IoT、LoRa、ZigBee、WiFi、蓝牙等
1、什么是物联网 物联网是指物物相连的互联网。还有另外一种说法就是:万物互联。 那什么才算是物联网产品? 我们举两个例子,比如普通的手表并不能算物联网,因为它不会和外界联系。 而智能手表算物联网产品,因为它可以通过WiFi、蓝牙等技术和手机连接,信息交换,远程…