【雕爷学编程】Arduino智慧校园之使用ESP8266模块实现远程温湿度监控

在这里插入图片描述
Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。

Arduino的特点是:
1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。
2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。
3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。
4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。
5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。

在这里插入图片描述
当以专业视角解释Arduino智慧校园时,我们可以关注其主要特点、应用场景以及需要注意的事项。

主要特点:
1、开源性:Arduino是一款开源的电子平台,其硬件和软件规格都是公开的。这意味着用户可以自由地访问和修改Arduino的设计和代码,以满足校园的特定需求,并且能够与其他开源硬件和软件兼容。
2、灵活性:Arduino平台具有丰富的扩展模块和传感器,可以轻松与各种外部设备进行交互。这种灵活性使得在校园环境中构建各种应用变得相对简单,并且可以根据需求进行快速的原型设计和开发。
3、易用性:Arduino采用简化的编程语言和开发环境,使非专业人士也能够轻松上手。学生和教师可以通过简单的代码编写实现自己的创意和想法,促进学习和创新。

应用场景:
1、环境监测与控制:利用Arduino平台可以搭建环境监测系统,实时监测温度、湿度、光照等数据,并通过控制器实现智能调控,优化能源消耗和提升舒适性。
2、安全监控与管理:Arduino可用于构建校园安全系统,例如入侵检测、视频监控、火灾报警等。通过传感器和相应的控制器,可以实时监测并提供报警和紧急响应功能。
3、资源管理:Arduino平台可用于监测和管理校园资源的使用情况,如电力、水资源等。通过实时数据采集和分析,可以制定合理的资源管理策略,提高能源利用效率和降低成本。
4、教学实践与创新:Arduino可以成为教学中的重要工具,帮助学生理解电子电路和编程原理。学生可以通过实践项目,培养解决问题和创新思维的能力。

注意事项:
1、安全性:在构建Arduino智慧校园时,需要确保系统的安全性,包括网络安全、数据隐私等方面。
2、系统稳定性:确保硬件和软件的稳定性和可靠性,以减少故障和维护成本。
3、数据隐私保护:在收集和处理校园数据时,需要遵循相关的隐私法规和政策,保护学生和教职员工的个人隐私。
4、培训和支持:为了更好地应用Arduino智慧校园,学校可能需要提供培训和支持,使教师和学生能够充分利用该平台进行创新和实践。

综上所述,Arduino智慧校园具有开源性、灵活性和易用性等主要特点,适用于环境监测、安全管理、资源管理和教学实践等多个应用场景。在应用过程中需要注意安全性、系统稳定性、数据隐私保护以及培训和支持等方面的问题。

在这里插入图片描述
Arduino智慧校园之使用ESP8266模块实现远程温湿度监控是一种基于Arduino平台的应用,旨在利用ESP8266模块通过Wi-Fi连接将温湿度数据上传到云平台或远程服务器,实现远程监控和数据管理。以下是对其主要特点、应用场景和需要注意的事项的详细解释:

主要特点:
ESP8266模块:ESP8266是一种低成本、高性能的Wi-Fi模块,具有内置的TCP/IP协议栈,能够通过Wi-Fi连接到互联网。
远程监控:通过ESP8266模块将温湿度传感器获取的数据上传到云平台或远程服务器,可以实现远程实时监控和数据管理。
数据传输安全性:ESP8266模块支持加密传输,可以通过使用HTTPS等安全协议,确保数据在传输过程中的安全性。
低功耗设计:ESP8266模块具有低功耗特性,可以有效降低能耗,延长设备的工作时间。

应用场景:
校园环境监测:通过将温湿度传感器与ESP8266模块相结合,可以实现对校园内各个区域的温湿度进行实时监测,帮助管理人员了解环境状况并进行调控。
实验室温湿度监控:在校园实验室中,使用ESP8266模块将温湿度数据上传至云平台,科研人员可以随时远程监测实验室内的温湿度情况,确保实验条件的稳定性。
花园温室管理:通过在花园温室中安装温湿度传感器和ESP8266模块,可以实现对温室内温湿度的远程监测和调控,帮助植物的生长管理。

注意事项:
Wi-Fi信号强度:确保ESP8266模块所处位置的Wi-Fi信号强度足够,以保证稳定的数据传输和连接性。
电源供应:ESP8266模块需要稳定的电源供应,同时需要注意电源的适配和功耗的管理,以确保模块正常工作。
数据安全性:在使用ESP8266模块上传温湿度数据到云平台或远程服务器时,需要采取相应的安全措施,如使用安全协议或数据加密,以确保数据的安全性和隐私保护。
云平台或服务器配置:在使用ESP8266模块实现远程监控时,需要设置和配置相应的云平台或服务器,包括网络连接、数据接收和存储等。

总结而言,Arduino智慧校园之使用ESP8266模块实现远程温湿度监控是一种灵活可扩展的远程监控方案。它适用于校园环境监测、实验室温湿度监控和花园温室管理等场景。在设计和使用时,需要注意Wi-Fi信号强度、电源供应、数据安全性以及云平台或服务器的配置等问题。

在这里插入图片描述
实例 1: 远程温湿度监控(通过串口输出)

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <ESP8266WiFi.h>

#define DHTPIN 2
#define DHTTYPE DHT11

const char* ssid = "your_network_ssid";
const char* password = "your_network_password";

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
}

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C\t");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  delay(2000);
}

要点解读:
该示例使用ESP8266模块实现远程温湿度监控,并通过串口输出温度和湿度数据。
在setup函数中,初始化串口通信和WiFi连接。需要替换ssid和password为你的无线网络的名称和密码。
在loop函数中,通过DHT库读取温湿度传感器的数据。
使用Serial.print()函数将温度和湿度数据输出到串口。
使用delay()函数添加延迟,以便每两秒读取一次温湿度数据。

实例 2: 远程温湿度监控(通过HTTP请求)

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define DHTPIN 2
#define DHTTYPE DHT11

const char* ssid = "your_network_ssid";
const char* password = "your_network_password";
const char* serverUrl = "http://your_server_url";

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
}

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    String url = serverUrl;
    url += "/update?temp=" + String(temperature) + "&hum=" + String(humidity);
    http.begin(url);
    int httpCode = http.GET();
    if (httpCode > 0) {
      String response = http.getString();
      Serial.println(response);
    }
    http.end();
  }

  delay(2000);
}

要点解读:
该示例使用ESP8266模块实现远程温湿度监控,并通过HTTP请求将数据发送到服务器。
在setup函数中,初始化串口通信和WiFi连接。需要替换ssid和password为你的无线网络的名称和密码,serverUrl为你的服务器地址。
在loop函数中,通过DHT库读取温湿度传感器的数据。
如果WiFi连接成功,创建一个HTTPClient对象并发送GET请求到服务器。
通过URL将温度和湿度数据作为参数传递给服务器。
使用http.GET()函数发送请求,并使用http.getString()函数获取服务器的响应。
使用delay()函数添加延迟,以便每两秒发送一次温湿度数据。

实例 3: 远程温湿度监控(通过MQTT协议)

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

#define DHTPIN 2
#define DHTTYPE DHT11

const char* ssid = "your_network_ssid";
const char* password = "your_network_password";
const char* mqttServer = "your_mqtt_server";
const int mqttPort = 1883;
const char* mqttUser = "your_mqtt_username";
const char* mqttPassword = "your_mqtt_password";
const char* mqttTopic = "your_mqtt_topic";

DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(9600);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");

  client.setServer(mqttServer, mqttPort);
  client.setCallback(callback);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  String payload = String(temperature) + "," + String(humidity);
  client.publish(mqttTopic, payload.c_str());

  delay(2000);
}

void callback(char* topic, byte* payload, unsigned int length) {
  // Handle incoming MQTT messages if needed
}

void reconnect() {
  while (!client.connected()) {
    if (client.connect("ESP8266Client", mqttUser, mqttPassword)) {
      Serial.println("Connected to MQTT broker");
    } else {
      Serial.print("MQTT connection failed, retrying in 5 seconds...");
      delay(5000);
    }
  }
}

要点解读:
该示例使用ESP8266模块实现远程温湿度监控,并通过MQTT协议将数据发布到服务器。
在setup函数中,初始化串口通信和WiFi连接。需要替换ssid和password为你的无线网络的名称和密码,mqttServer为你的MQTT服务器地址,mqttUser和mqttPassword为你的MQTT连接凭证。
在loop函数中,检查MQTT连接状态并处理消息,然后读取温湿度传感器的数据。
将温度和湿度数据打包成字符串,并通过client.publish()函数发布到指定的MQTT主题。
使用delay()函数添加延迟,以便每两秒发送一次温湿度数据。
callback函数用于处理接收到的MQTT消息,你可以根据需要进行自定义。
reconnect函数用于重新连接到MQTT服务器,如果连接失败,则每隔5秒重试。

这些示例代码演示了如何使用ESP8266模块实现远程温湿度监控,并通过不同的方式(串口输出、HTTP请求、MQTT协议)将数据传输到服务器。你可以根据自己的需求进行修改和扩展,例如添加其他传感器、实现数据存储或执行其他操作。记得根据你的具体硬件连接和库的使用情况进行适当的调整。

在这里插入图片描述
案例4:通过串口输出温湿度

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

#define DHTPIN 2
#define DHTTYPE DHT22

DHT_Unified dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  Serial.println(F("------------------------------------"));
  Serial.println(F("温湿度传感器信息"));
  Serial.println(F("------------------------------------"));
  Serial.print(F("型号: "));
  Serial.println(sensor.name);
  Serial.print(F("版本: "));
  Serial.println(sensor.version);
  Serial.print(F("最小测量范围: "));
  Serial.print(sensor.min_value);
  Serial.println(F("°C"));
  Serial.print(F("最大测量范围: "));
  Serial.print(sensor.max_value);
  Serial.println(F("°C"));
  Serial.print(F("分辨率: "));
  Serial.print(sensor.resolution);
  Serial.println(F("°C"));
  Serial.println(F("------------------------------------"));
}

void loop() {
  sensors_event_t event;
  dht.temperature().getEvent(&event);
  if (isnan(event.temperature)) {
    Serial.println(F("无法获取温度!"));
  }
  else {
    Serial.print(F("温度: "));
    Serial.print(event.temperature);
    Serial.println(F("°C"));
  }
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    Serial.println(F("无法获取湿度!"));
  }
  else {
    Serial.print(F("湿度: "));
    Serial.print(event.relative_humidity);
    Serial.println(F("%"));
  }
  delay(2000);
}

要点解读:
引入所需的库,包括Wire库、Adafruit_Sensor库、DHT库和DHT_U库,用于与温湿度传感器进行通信。
设置DHT传感器的引脚和类型。
在设置函数中,初始化串口通信和DHT传感器,并获取传感器的相关信息,如型号、版本、测量范围和分辨率,并通过串口输出。
在循环中,读取温湿度数据并通过串口输出。
使用delay函数设置采样间隔,这里为2秒。

案例5:通过Wi-Fi发送温湿度数据到ThingSpeak

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ThingSpeak.h>

#define DHTPIN 2
#define DHTTYPE DHT22

#define WIFI_SSID "your_wifi_ssid"
#define WIFI_PASSWORD "your_wifi_password"
#define THINGSPEAK_CHANNEL_ID 123456
#define THINGSPEAK_API_KEY "your_thingspeak_api_key"

DHT_Unified dht(DHTPIN, DHTTYPE);
WiFiClient client;

void setup() {
  Serial.begin(9600);
  dht.begin();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  ThingSpeak.begin(client);
}

void loop() {
  sensors_event_t event;
  dht.temperature().getEvent(&event);
  if (isnan(event.temperature)) {
    Serial.println("Failed to read temperature from DHT sensor!");
  }
  else {
    float temperature = event.temperature;
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println("°C");
    ThingSpeak.setField(1, temperature);
  }
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    Serial.println("Failed to read humidity from DHT sensor!");
  }
  else {
    float humidity = event.relative_humidity;
    Serial.print("Humidity: ");
    Serial.print(humidity);
    Serial.println("%");
    ThingSpeak.setField(2, humidity);
  }
  ThingSpeak.writeFields(THINGSPEAK_CHANNEL_ID, THINGSPEAK_API_KEY);
  delay(2000);
}

要点解读:
与案例一相比,唯一的区别是添加了Wi-Fi连接和ThingSpeak库,用于通过Wi-Fi连接到网络并将温湿度数据发送到ThingSpeak云平台。
设置Wi-Fi的SSID和密码,以及ThingSpeak的通道ID和API密钥。
在设置函数中,初始化串口通信、DHT传感器、Wi-Fi连接和ThingSpeak。
在循环中,读取温湿度数据并通过串口输出,然后将数据设置为ThingSpeak的字段值。
调用ThingSpeak的writeFields函数将字段值发送到ThingSpeak云平台。
使用delay函数设置采样间隔,这里为2秒。

案例6:通过MQTT协议发送温湿度数据到远程服务器

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

#define DHTPIN 2
#define DHTTYPE DHT22

#define WIFI_SSID "your_wifi_ssid"
#define WIFI_PASSWORD "your_wifi_password"
#define MQTT_SERVER "your_mqtt_server"
#define MQTT_PORT 1883
#define MQTT_USERNAME "your_mqtt_username"
#define MQTT_PASSWORD "your_mqtt_password"
#define MQTT_TOPIC "your_mqtt_topic"

DHT_Unified dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(9600);
  dht.begin();
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  client.setServer(MQTT_SERVER, MQTT_PORT);
  while (!client.connected()) {
    Serial.println("Connecting to MQTT server...");
    if (client.connect("ESP8266Client", MQTT_USERNAME, MQTT_PASSWORD)) {
      Serial.println("Connected to MQTT server");
    }
    else {
      Serial.print("Failed to connect to MQTT server, rc=");
      Serial.print(client.state());
      Serial.println("Retrying in 5 seconds...");
      delay(5000);
    }
  }
}

void loop() {
  sensors_event_t event;
  dht.temperature().getEvent(&event);
  if (isnan(event.temperature)) {
    Serial.println("Failed to read temperature from DHT sensor!");
  }
  else {
    float temperature = event.temperature;
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println("°C");
    String temperatureString = String(temperature);
    client.publish(MQTT_TOPIC, temperatureString.c_str());
  }
  dht.humidity().getEvent(&event);
  if (isnan(event.relative_humidity)) {
    Serial.println("Failed to read humidity from DHT sensor!");
  }
  else {
    float humidity = event.relative_humidity;
    Serial.print("Humidity: ");
    Serial.print(humidity);
    Serial.println("%");
    String humidityString = String(humidity);
    client.publish(MQTT_TOPIC, humidityString.c_str());
  }
  delay(2000);
}

要点解读:
与案例一相比,唯一的区别是添加了Wi-Fi连接和MQTT库,用于通过Wi-Fi连接到网络并将温湿度数据发送到远程MQTT服务器。
设置Wi-Fi的SSID和密码,以及MQTT服务器的地址、端口、用户名和密码,以及MQTT主题。
在设置函数中,初始化串口通信、DHT传感器、Wi-Fi连接和MQTT客户端。
在循环中,读取温湿度数据并通过串口输出,然后将数据转换为字符串并发布到MQTT主题。
使用delay函数设置采样间隔,这里为2秒。
这些案例提供了使用ESP8266模块实现远程温湿度监控的基本功能示例。您可以根据实际需求进行修改和扩展,例如添加更多的传感器、与其他设备进行通信或执行其他操作。

注意,以上案例只是为了拓展思路,仅供参考。它们可能有错误、不适用或者无法编译。您的硬件平台、使用场景和Arduino版本可能影响使用方法的选择。实际编程时,您要根据自己的硬件配置、使用场景和具体需求进行调整,并多次实际测试。您还要正确连接硬件,了解所用传感器和设备的规范和特性。涉及硬件操作的代码,您要在使用前确认引脚和电平等参数的正确性和安全性。

在这里插入图片描述

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据 Arduino平台NodeMCU(esp8266)接入阿里云IoT物联网平台,使用DHT11采集环境数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值