使用mqtt实现对esp8266开发板数据交互

1.硬件准备工作

  • esp8266的板子(主要来程序控制)
  • 温湿度传感器 (获取温湿度)
  • 水位传感器 (获取水位)
  • 继电器(这个东西比较好玩,可以多很多事情,例如开关灯、风扇,主要看自己想做什么)

在这里插入图片描述

这一套配件淘宝拼多多买 一大堆,我买的是一套的 不是单独的,下面的代码复制过去就能用,第一次需要安装对于的依赖 “DHT.h” 这些东西 会有提示的

1.1接线工作

  1. 水位:ESP8266 核心板的“3V”接水位检测模块的“+”,“G”接“-”,“A0”接“S”
  2. 温湿度:ESP8266的 ”D4“ 接温湿度 ”DATA “ 然后 ”GDN“ 对”G“ 然后”VCC“对"3V"
  3. 继电器:继电器的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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值