当前位置: 首页 > news >正文

ESP8266+继电器+MQTT+VUE 实现远程开关灯

超详细教程 – ESP8266+继电器+MQTT+VUE 实现远程开关灯

超详细教程 – ESP8266+继电器+MQTT+VUE 实现远程开关灯

接线图


NC(通常闭合)与COM(公共)、NO(通常开放)与COM 是继电器引脚的不同配置,用于不同的电路控制情况。让我们更详细地了解它们之间的区别:NC(通常闭合)和 COM(公共):在继电器未激活(通常未通电)时,NC 引脚与 COM 引脚是连接的,形成了一个闭合的电路。电流可以在 NC 和 COM 之间流通。
当继电器被激活(通电)时,NC 引脚与 COM 引脚会断开连接,电路打开,电流不再流通。
NO(通常开放)和 COM(公共):在继电器未激活时,NO 引脚与 COM 引脚是断开连接的,电路是开放的,电流不会流通。
当继电器被激活时,NO 引脚与 COM 引脚会连接起来,形成一个闭合的电路,电流可以在 NO 和 COM 之间流通。
在控制电路中,NC 和 NO 引脚提供了两种状态:闭合(连接)和开放(断开)。通过控制继电器的激活状态,你可以切换电路的状态,从而控制连接到继电器的设备,如灯泡、电机等的开关状态。通常在控制电路中,我们使用 NO 引脚,因为当继电器被激活时,它会闭合,允许电流流通,从而控制设备的开启。这与日常生活中开关控制灯泡的方式类似。

其它说明

arduino -> 文件 -> 首选项 -> 附件开发板管理器网址 将下方网址粘贴进去即可
http://arduino.esp8266.com/stable/package_esp8266com_index.json

所需硬件

继电器

ESP-01S继电器插座

WIFI模块

esp8266-01s wifi模块

烧录器

安装开发板管理器

提示:记住使用魔法,不然很容易下载校验出错!
工具-》开发板-》开发板管理器

搜索ESP8266开发板

选择开发板

安装ESP8266库


搜索ESP8266

安装MQTT库

MQTT的库有非常的多,这里我会采用一款更简单好用的库PubSubClient来做一个最简单的MQTT客户端

开发板MQTT代码


#include <ESP8266WiFi.h>
#include <PubSubClient.h>// 自己的无线名称
const char* ssid = "MERCURY_95BE";
// 自己的无线密码
const char* password = "147369258";
// mqtt服务器地址,这个是免费公用的服务器
const char* mqttServer = "test.ranye-iot.net";WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);int GPIO = 0;void setup() {// 设置串口Serial.begin(115200);// 设置内置LED引脚为输出模式pinMode(GPIO, OUTPUT);// 连接WiFiWiFi.mode(WIFI_STA);connectWifi();// 设置MQTT服务器和端口号mqttClient.setServer(mqttServer, 1883);mqttClient.setCallback(receiveCallback);// 连接MQTT服务器connectMQTTServer();
}void loop() {// 开发板成功连接服务器    if (mqttClient.connected()) {// 保持客户端心跳mqttClient.loop();          } else {// 尝试连接服务器                  connectMQTTServer();    }
}void connectMQTTServer(){// 避免与其它ESP8266设备重名 需要修改-----------String clientId = "connect_all_esp8266_mqtt_led_client" + WiFi.macAddress();// 连接MQTT服务器if (mqttClient.connect(clientId.c_str())) { Serial.println("MQTT Connected.");// 订阅指定主题subscribeTopic(); } else {Serial.print("MQTT Server Connect Failed. Client State:");Serial.println(mqttClient.state());delay(3000);}   
}// 收到信息
void receiveCallback(char* topic, byte* payload, unsigned int length) {Serial.print("Message Received [");Serial.print(topic);Serial.print("] ");if ((char)payload[0] == '1') {     // 如果收到的信息以“1”为开始digitalWrite(GPIO, HIGH);  // 则点亮LED。Serial.println("LED ON");} else {                           digitalWrite(GPIO, LOW); // 否则熄灭LED。Serial.println("LED OFF");}
}// 订阅指定主题
void subscribeTopic(){// topicString与前端代码中发送topic一致 需要修改---------------String topicString = "connect_all_esp8266_mqtt_led_topic";char subTopic[topicString.length() + 1];  strcpy(subTopic, topicString.c_str());// 通过串口监视器输出是否成功订阅主题以及订阅的主题名称if(mqttClient.subscribe(subTopic)){Serial.println("Subscrib Topic:");Serial.println(subTopic);} else {Serial.print("Subscribe Fail...");}  
}// 连接wifi
void connectWifi(){WiFi.begin(ssid, password);// 等待WiFi连接while (WiFi.status() != WL_CONNECTED) {delay(1000);Serial.print(".");}Serial.println("");Serial.println("WiFi Connected!");  Serial.println(""); 
}

esp-01与esp-01s的区别 ESP8288-01S与ESP8288-01的区别

01(老版)01s(新版)


ESP8266系列Wi-Fi模块一共有01~14十多款模块,
ESP8266-01简称ESP-01,
ESP8266-01S简称ESP-01S
至于他们的区别请看下图:左边的是ESP8266-01S,右边的是ESP8266-01

正面

反面

外观区别1:ESP8266-01S天线区域右下角只有一个指示灯,ESP8266-01天线区域右下角有两个指示灯。

外观区别2:ESP8266-01S背面有引脚说明,ESP8266-01背面有没有引脚说明。

内部区别:ESP8266-01S内部电路相对应ESP8266-01做了优化,使用建议大家购买的时候买ESP8266-01S

http://www.lryc.cn/news/150152.html

相关文章:

  • Android中级——四大组件工作过程
  • 【RabbitMQ】RabbitMQ 服务无法启动。系统出错。发生系统错误 1067。进程意外终止。
  • 如何理解attention中的Q、K、V?
  • Redis----取代RabbitMq 和 Kafka的解决方案
  • 动态规划之连续乘积最大子数组 连续和最大子数组
  • keil在点击debug无法运行(全速运行)
  • go语言-协程
  • 如何伪造http头,让后端认为是本地访问
  • 视频剪辑音效处理软件有哪些?视频剪辑软件那个好用
  • 搭建STM32F407的Freertos系统(基于STM32CubeMX)
  • vite 配置自动补全文件的后缀名
  • 基于Spring Boot的人才公寓管理系统设计与实现(Java+spring boot+MySQL)
  • Python 编写函数
  • C# Solidworks二次开发:创建距离配合以及移动组件API详解
  • Excel:通过Lookup函数提取指定文本关键词
  • sql:SQL优化知识点记录(六)
  • C#搭建WebSocket服务实现通讯
  • eclipse/STS(Spring Tool Suite)安装CDT环境(C/C++)
  • Python爬虫抓取经过JS加密的API数据的实现步骤
  • Nacos基础(2)——nacos的服务器和命名空间 springBoot整合nacos 多个nacos配置的情况
  • Win7设备和打印机里空白,0个对象,但是可以打印的处理办法
  • Python基础学习第六天:Python 数据类型
  • C++信息学奥赛1184:明明的随机数
  • NoSQL技术——Redis
  • 【探索SpringCloud】服务发现-Nacos服务端数据结构和模型
  • 基于简单的信息变换实现自然语言模型
  • 低配版消息队列,redis——Stream
  • 【OpenCV入门】第五部分——图像运算
  • 【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)
  • 菜鸟教程第一天