基于ESP8266的智能浇花控制系统的设计

一、硬件设计

        1. 原理图设计

        主控模块:使用NodeMCU开发板。

        水泵:使用DC 5V小水泵来给盆栽灌水。

        土壤湿度传感器:使用淘宝上常见的土壤湿度计检测模块,模块在土壤湿度达不到设定的阈值时,DO口输出高电平,反之,DO口输出低电平。如图:

基于ESP8266的智能浇花控制系统的设计

基于ESP8266的智能浇花控制系统的设计

         2. PCB设计

基于ESP8266的智能浇花控制系统的设计

基于ESP8266的智能浇花控制系统的设计

二、 软件设计

       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 移动可视化开发界面

基于ESP8266的智能浇花控制系统的设计

        2.3 微信小程序开发

基于ESP8266的智能浇花控制系统的设计

 完整资料下载(包含原理图、PCB图、完整ESP8266程序)

https://item.taobao.com/item.htm?ft=t&id=681542802465

本文章来源于互联网,如有侵权,请联系删除!原文地址:基于ESP8266的智能浇花控制系统的设计

相关推荐: 物联网组网技术比较 NB-IoT、LoRa、ZigBee、WiFi、蓝牙等

1、什么是物联网 物联网是指物物相连的互联网。还有另外一种说法就是:万物互联。 那什么才算是物联网产品? 我们举两个例子,比如普通的手表并不能算物联网,因为它不会和外界联系。 而智能手表算物联网产品,因为它可以通过WiFi、蓝牙等技术和手机连接,信息交换,远程…