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

news2024/11/17 10:47:53

超详细教程 – 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);
  
   // 连接WiFi
   WiFi.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.coloradmin.cn/o/962853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA实现SAP接口

JAVA实现SAP接口 环境spring-bootmaven 1.maven依赖 <dependency><groupId>com.github.virtualcry</groupId><artifactId>sapjco-spring-boot-starter</artifactId><version>3.1.4</version></dependency>2.配置文件 applic…

AI+认知行为疗法,治愈心灵的良药丨青源Workshop「AI+心理干预」观点集锦

当前&#xff0c;抑郁症、焦虑症等心理障碍成为社会关注的焦点&#xff0c;如何有效地缓解和治疗这些心理问题成为一个重要的研究方向。在这样的背景下&#xff0c;如何利用AI等先进技术手段来辅助心理疾病的治疗备受关注。例如&#xff0c;通过语音、脑部MRI辅助诊断器质性抑郁…

C++ 学习之 构造函数 和 析构函数

前言 总的来说&#xff0c;构造函数负责对象的初始化&#xff0c;而析构函数负责对象的清理和资源释放。它们是C面向对象编程中非常重要的概念&#xff0c;用于管理对象的生命周期&#xff0c;确保对象在创建和销毁时都能够正确地进行初始化和清理。 正文 看代码 class perso…

CRM如何提高销售效率?三个功能实现销售自动化

销售效率对企业的盈利能力有着至关重要的联系。提高销售效率&#xff0c;就是要提高销售人员的工作效率和销售转化率。那么&#xff0c;企业如何提高销售效率呢&#xff1f;CRM销售自动化功能可以帮助企业实现这一目标。 一、线索管理 线索是指有潜在购买意向的客户&#xff…

多目标应用:基于多目标人工蜂鸟算法(MOAHA)的微电网多目标优化调度MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标人工蜂鸟算法MOAHA 多目标人工蜂鸟算法&#xff08;multi-objective artificial hummingbird algorithm&…

微服务-gateway鉴权

文章目录 一、前言二、gateway鉴权1、依赖配置2、编写代码3、GlobalFilter详解3.1、GlobalFilter简介3.2、GlobalFilter自定义执行顺序3.2.1、实现Order接口实现自定义执行顺序 一、前言 网关是介于客户端和服务器端之间的中间层&#xff0c;所有的外部请求都会先经过 网关这一…

Solidity 小白教程:6. 引用类型, array, struct

Solidity 小白教程&#xff1a;6. 引用类型, array, struct 这一讲&#xff0c;我们将介绍solidity中的两个重要变量类型&#xff1a;数组&#xff08;array&#xff09;和结构体&#xff08;struct&#xff09;。 数组 array 数组&#xff08;Array&#xff09;是solidity常…

【原创】H3C交换机STP协议测试

网络拓扑图 交换机信息 交换机1信息&#xff1a; <H3C>dis stp -------[CIST Global Info][Mode MSTP]-------Bridge ID : 32768.06fd-8165-0100Bridge times : Hello 2s MaxAge 20s FwdDelay 15s MaxHops 20Root ID/ERPC : 0.08c0-212c-0ff0,…

[NSSCTF Round #15NSSCTF 2nd]——Web、Misc、Crypto方向 详细Writeup

前言 虽然师傅们已经尽力了&#xff0c;但是没拿到前十有点可惜&#xff0c;题很好吃&#xff0c;明年再来&#xff08;&#xff09; 关于wp&#xff1a; 因为我没有学过misc&#xff0c;但是比赛的时候还是运气好出了三道&#xff0c;所以wp就只把做题步骤给出&#xff0c;也…

vue从零开始学习

npm install慢解决方法&#xff1a;删掉nodel_modules。 5.0.3&#xff1a;表示安装指定的5.0.3版本 ~5.0.3&#xff1a;表示安装5.0X中最新的版本 ^5.0.3: 表示安装5.x.x中最新的版本。 yarn的优点&#xff1a; 1.速度快&#xff0c;可以并行安装 2.安装版本统一 项目搭建&…

【Linux】线程安全-生产者消费者模型

文章目录 生产者消费者模型123规则应用场景优点忙闲不均生产者和消费者解耦支持高并发 代码模拟 生产者消费者模型 123规则 1个线程安全的队列&#xff1a;只要保证先进先出特性的数据结构都可以称为队列 这个队列要保证互斥&#xff08;就是保证当前只有一个线程对队列进行操…

[HNCTF 2022] web 刷题记录

文章目录 [HNCTF 2022 Week1]easy_html[HNCTF 2022 Week1]easy_upload[HNCTF 2022 Week1]Interesting_http[HNCTF 2022 WEEK2]ez_SSTI[HNCTF 2022 WEEK2]ez_ssrf [HNCTF 2022 Week1]easy_html 打开题目提示cookie有线索 访问一下url 发现要求我们输入手机号&#xff0c;可是只…

工控上位机程序为什么只能用C语言?

工控上位机程序并不只能用C#开发&#xff0c;实际上在工业自动化领域中&#xff0c;常见的上位机开发语言包括但不限于以下几种&#xff1a;C#: C#是一种常用的编程语言&#xff0c;在工控领域中被广泛使用。它具有良好的面向对象特性和丰富的类库支持&#xff0c;可以实现高性…

Oracle数据库安装,在自己的windows电脑上面。

第一步&#xff1a;找到数据库和数据库图形用户界面安装包。 直接用迅雷下载&#xff1a;数据库分为服务器端和客户端。 服务器端 操作系统&#xff1a;Windows Server 2008 企业版64位 Oracle软件:Oracle 11g 64位 客户端 操作系统&#xff1a;Windows7 64位 图形界面工…

ClickHouse进阶(五):副本与分片-1-副本与分片

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

【人工智能】—_神经网络、M-P_神经元模型、激活函数、神经网络结构、学习网络参数、代价定义、总代价

M-P_神经元模型、激活函数、神经网络结构、学习网络参数、代价定义 文章目录 M-P_神经元模型、激活函数、神经网络结构、学习网络参数、代价定义 M-P 神经元模型激活函数(Activation function)神经网络结构举例训练神经网络学习网络参数代价定义均方误差交叉熵&#xff08;Cros…

分布式 - 服务器Nginx:基础系列之Nginx简介 | 下载安装 | 启动和停止服务

文章目录 01. Nginx 简介02. 正向代理和反向代理03. Nginx 和 Apache、Tomcat 之间的不同点04. Nginx 的优点05. Nginx 常用的功能特性06. Nginx 下载07. Nginx 安装1. 源码安装前的环境准备2. Nginx 源码简单安装方式3. Nginx yum 安装方式4. Nginx 源码复杂安装方式 08. Ngin…

一阴一阳之谓道,乃自然规律也!

阴阳&#xff0c;在我们国家&#xff0c;是一切传统文化的基础。作为一个有着五千年文化的国家&#xff0c;作为世界上仅存的四大文明古国&#xff0c;峰民觉得&#xff0c;我们的传统文化&#xff0c;不能被当成迷信&#xff0c;慢慢的没落。 有时&#xff0c;不得不承认&…

学习Bootstrap 5的第二天

​​​​​​​ 目录 前言 网格系统 网格类 网格系统规则 网格的基本结构 网格选项 从堆叠到水平 自动布局列 超小型设备 超小型设备网格实例 自动布局列 小型设备 小型设备网格实例 自动布局列 中型设备 中型设备网格实例 自动布局列 大型设备 大型设备网…

移除链表元素_每日一题

“路虽远&#xff0c;行则将至” ❤️主页&#xff1a;小赛毛 ☕今日份刷题&#xff1a;移除链表元素 题目描述&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例1&…