arduino uno 引脚电压_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器

目录

一、NodeMCU

二、工作原理

本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。

NodeMCU

NodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。它并不是Arduino 团队开发的,但是我们也可以使用 Arduino IDE 对它进行开发。而且它还有一颗地道的“中国芯”— ES P8266 模块所以无论在性能还有价格上,我们太极创客团队都认为NodeMCU 是更值得创客朋友们在物联网开发上花更多的时间来学习和使用的。ESP8266-NodeMCU 开发板 V2作为万物互联的 IoT 基础,首先物联网控制板的成本不能过高。高昂的物联网控制元件不利于项目成本控制也不利于广大创客爱好者学习和使用它。在这一点上,NodeMCU 比树莓派以及 Arduino 家族的 IoT 平台等更具优势。电压电流限制NodeMCU 开发板引脚的输入输出电压限制是 3.3 V。如果向引脚施 3.6V以上的电压就有可能对芯片电路造成损坏。同时请注意,这些引脚的最大输出电流是 12mA。由于 NodeMCU 开发板的引脚允许电压和电流都是低于 Arduino 开发板的引脚,所以如您想要将 NodeMCU与Arduino引脚相互连接,请特别注意这两个开发板的引脚电压和电流的区别。如果操作不当可能会损坏 NodeMCU 开发板。 4c4449e77a9f5cb6e8b0555be9f90a5f.png

工作原理

NodeMCU 开发板上的两排插针与 ESP8266 芯片的引脚相连。有了开发板上的两排插针,我们就可以很轻松的使用杜邦线将芯片的引脚接到实验电路中。NodeMCU 开发板上还配有 USB 接口以及电压转换电路。这些为我们提供了很大的便利。我们只要用一根 USB 数据线就可以轻松的实现为ESP8266 供电以及上传程序的操作。当然,NodeMCU 开发板上的电路功能还不止这些,我就不再继续延伸下去了。不过说了这么多,还是请您务必记住一点, NodeMCU 开发板上的两排插针与 ESP8266 芯片的引脚是连在一起的。ESP8266芯片四周分布很多引脚。这些引脚大部分可用作输入输出使用。这些用作输入输出的引脚统称为 GPIO。ESP8266 芯片的 GPIO 引脚可用作数字输入来读取引
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个简单的Arduino UNOESP-01阿里云远程控制继电器和温湿度显示的代码: 首先,你需要准备以下材料: - Arduino UNO板 - ESP-01模块 - DHT11温湿度传感器 - 5V继电器模块 - 杜邦线 - 跳线 然后,你需要进行以下操作: 1. 连接ESP-01模块到Arduino UNO板上。使用跳线将ESP-01的VCC连接到Arduino UNO板的5V上,将ESP-01的GND连接到Arduino UNO板的GND上,将ESP-01的TXD连接到Arduino UNO板的RX上,将ESP-01的RXD连接到Arduino UNO板的TX上。 2. 连接DHT11温湿度传感器Arduino UNO板上。使用跳线将DHT11的VCC连接到Arduino UNO板的5V上,将DHT11的GND连接到Arduino UNO板的GND上,将DHT11的DATA连接到Arduino UNO板的数字2上。 3. 连接5V继电器模块到Arduino UNO板上。使用跳线将继电器模块的VCC连接到Arduino UNO板的5V上,将继电器模块的GND连接到Arduino UNO板的GND上,将继电器模块的IN连接到Arduino UNO板的数字3上。 4. 下载并安装Arduino IDE软件。 5. 通过Arduino IDE软件将以下代码上传到Arduino UNO板上,该代码将读取温湿度传感器的值并将其显示在串口监视器中: ```C++ #include <DHT.h> #define DHTPIN 2 // DHT11连接到Arduino UNO板的数字2上 #define DHTTYPE DHT11 // DHT11温湿度传感器类型 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); // 打开串口监视器 dht.begin(); } void loop() { delay(2000); // 2秒读取一次温湿度传感器 float h = dht.readHumidity(); // 读取湿度值 float t = dht.readTemperature(); // 读取温度值 if (isnan(h) || isnan(t)) { // 如果读取失败 Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Humidity: "); // 打印湿度值 Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); // 打印温度值 Serial.print(t); Serial.println(" *C"); } ``` 6. 通过Arduino IDE软件将以下代码上传到Arduino UNO板上,该代码将控制继电器开关,并连接到阿里云IoT平台: ```C++ #include <SoftwareSerial.h> #include <PubSubClient.h> #include <ESP8266WiFi.h> #define DHTPIN 2 // DHT11连接到Arduino UNO板的数字2上 #define DHTTYPE DHT11 // DHT11温湿度传感器类型 #define RELAY_PIN 3 // 继电器连接到Arduino UNO板的数字3上 const char* ssid = "你的WiFi名称"; // WiFi名称 const char* password = "你的WiFi密码"; // WiFi密码 const char* mqttServer = "你的MQTT服务器地址"; // MQTT服务器地址 const int mqttPort = 1883; // MQTT服务器端口 const char* mqttUser = "你的MQTT用户名"; // MQTT用户名 const char* mqttPassword = "你的MQTT密码"; // MQTT密码 const char* clientID = "ESP8266Client"; // MQTT客户端ID const char* topic = "你的MQTT主题"; // MQTT主题 DHT dht(DHTPIN, DHTTYPE); WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(9600); // 打开串口监视器 pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // 继电器默认关闭 dht.begin(); delay(10); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(100); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); client.setServer(mqttServer, mqttPort); client.setCallback(callback); reconnect(); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); delay(2000); // 2秒读取一次温湿度传感器 float h = dht.readHumidity(); // 读取湿度值 float t = dht.readTemperature(); // 读取温度值 if (isnan(h) || isnan(t)) { // 如果读取失败 Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Humidity: "); // 打印湿度值 Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); // 打印温度值 Serial.print(t); Serial.println(" *C"); if (t >= 25.0) { // 如果温度大于等于25摄氏度 digitalWrite(RELAY_PIN, HIGH); // 继电器开启 client.publish(topic, "ON"); // 向MQTT主题发送开启信号 } else { // 如果温度小于25摄氏度 digitalWrite(RELAY_PIN, LOW); // 继电器关闭 client.publish(topic, "OFF"); // 向MQTT主题发送关闭信号 } } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); if ((char)payload[0] == '1') { // 如果MQTT主题收到1 digitalWrite(RELAY_PIN, HIGH); // 继电器开启 } else { // 如果MQTT主题收到0 digitalWrite(RELAY_PIN, LOW); // 继电器关闭 } } void reconnect() { while (!client.connected()) { Serial.print("Connecting to MQTT broker..."); if (client.connect(clientID, mqttUser, mqttPassword)) { Serial.println("connected"); client.subscribe(topic); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } ``` 7. 修改代码中的WiFi名称、WiFi密码、MQTT服务器地址、MQTT端口、MQTT用户名、MQTT密码、MQTT客户端ID和MQTT主题。 8. 将ESP-01模块连接到阿里云IoT平台并启动。 9. 打开串口监视器并观察温湿度传感器的读数和继电器的开关状态。 现在,你已经完成了使用Arduino UNOESP-01阿里云远程控制继电器和温湿度显示的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值