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

您所在的位置:网站首页 远程控制开关灯有什么项目优势 ESP8266+继电器+MQTT+VUE 实现远程开关灯

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

2023-12-23 06:14| 来源: 网络整理| 查看: 265

超详细教程 – 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 #include // 自己的无线名称 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3