1.硬件准备工作
- esp8266的板子(主要来程序控制)
- 温湿度传感器 (获取温湿度)
- 水位传感器 (获取水位)
- 继电器(这个东西比较好玩,可以多很多事情,例如开关灯、风扇,主要看自己想做什么)
这一套配件淘宝拼多多买 一大堆,我买的是一套的 不是单独的,下面的代码复制过去就能用,第一次需要安装对于的依赖 “DHT.h” 这些东西 会有提示的
1.1接线工作
- 水位:ESP8266 核心板的“3V”接水位检测模块的“+”,“G”接“-”,“A0”接“S”
- 温湿度:ESP8266的 ”D4“ 接温湿度 ”DATA “ 然后 ”GDN“ 对”G“ 然后”VCC“对"3V"
- 继电器:继电器的GND 连接esp8266的G 然后继电器In1连接esp8266的D1 Vcc接3v就可以了
2.软件准备工作
- 写c的软件 Arduino IDE
- 写java的软件 IDEA(jdk>=1.8)(暂时没有用到,后期会把mqtt写到java 通过web页面去交互)
- mqtt的服务(下载连接:https://www.emqx.io/downloads)
下面直接开写,上面准备工作都是基础的 找不到了可以去百度
1.首先要往esp8266板子写入通信协议 比如mqtt、tcp、udp …等 看需求
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
#include <ArduinoJson.h>
// Update these with values suitable for your network.
const char* ssid = "wifi名称";
const char* password = "wifi密码";
const char* mqtt_server = "mqtt服务器地址";
// DHT11传感器连接引脚
#define DHTPIN 2
// DHT11传感器类型
#define DHTTYPE DHT11
// 水位传感器连接引脚
#define WATER_LEVEL_PIN A0
// 双路继电器连接引脚
#define RELAY_PIN_1 5
#define RELAY_PIN_2 4
bool relay1State = false;
bool relay2State = false;
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
int value = 0;
// DHT传感器对象
DHT dht(DHTPIN, DHTTYPE);
// 继电器状态标志
bool relayState = false;
void setup() {
// 设置双路继电器引脚为输出模式
pinMode(RELAY_PIN_1, OUTPUT);
pinMode(RELAY_PIN_2, OUTPUT);
// 初始状态下关闭双路继电器
digitalWrite(RELAY_PIN_1, HIGH);
digitalWrite(RELAY_PIN_2, HIGH);
Serial.begin(115200);
setup_wifi()