【零知ESP8266教程】快速入门26 Blynk手机APP显示室内温湿度

本文介绍如何使用Blynk APP和ESP8266开发板,结合SHT30温湿度模块,实现手机远程监控环境温湿度。通过配置手机APP界面,编写ESP8266代码,定时读取SHT30模块数据,并将数据发送至手机APP显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文讲解使用blynk app+服务器(本地) + 零知ESP8266硬件的方法,通过手机APP来观察由ESP8266获取的温湿度信息。

一、硬件
1.电脑,windows系统
2.零知ESP8266开发板
3.智能手机一部 + app(Blynk)
4.micro-usb线
5.SHT30温湿度模块

二、连接
在这里插入图片描述
在这里插入图片描述

2、关于准备工作不再细讲,请查看 Blynk手机APP点灯示例 ,已经对操作步骤进行了详细说明。
3、手机APP端
我们需要两个组件分别显示温度和湿度信息,做好后界面如下:
在这里插入图片描述
准备以下代码:

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
  
  
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
  
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "xx";
  
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "xx";
char pass[] = "xx";
  
char local_domain[] = "192.168.0.111";
  
/*SHT3X 传感器
*   使用软I2C接口
*/
#define SHT3X_SDA D5
#define SHT3X_SCL D6
  
#include "SHT3X.h"
SlowSoftWire shtWire(SHT3X_SDA,SHT3X_SCL,true);
  
HTU3X myHumidity;
  
BlynkTimer timer;
void myTimerEvent()
{
  
    float humd, temp;
    myHumidity.readTempAndHumi(&temp, &humd);
      
    Serial.print("时间:");
    Serial.print(millis());
    Serial.print(" 温度:");
    Serial.print(temp, 1);
    Serial.print(" °C");
    Serial.print(" 湿度:");
    Serial.print(humd, 1);
    Serial.print("%");
    Serial.println();
      
    Blynk.virtualWrite(V0, temp);
    Blynk.virtualWrite(V1, humd);
}
  
void setup()
{
  // Debug console
  Serial.begin(9600);
  
  Blynk.begin(auth, ssid, pass, local_domain,8080);
      
    myHumidity.begin(shtWire);
      
    timer.setInterval(1000L, myTimerEvent);
}
  
void loop()
{
  Blynk.run();
    timer.run(); // Initiates BlynkTimer
}

更改代码中的IP、token等信息,然后验证并上传到零知-ESP8266板上。

5、验证测试
在手机blynk app上可以观察到如下结果:
在这里插入图片描述

视频效果:点我传送~~

ESP32 是一款功能强大的微控制器,广泛应用于物联网、智能家居以及无线通信等领域。对于初学者而言,掌握 ESP32 的开发流程和实际应用实例是快速入门的关键。 ### 开发环境搭建 在开始开发之前,需要准备好开发环境。推荐使用 ESP-IDF(Espressif IoT Development Framework),这是官方提供的开发框架,支持 C/C++ 编程语言。也可以使用 Arduino IDE 进行开发,适合快速原型设计[^1]。 安装 ESP-IDF 的步骤包括: 1. 安装 Python 和必要的依赖库。 2. 下载并配置 ESP-IDF 工具链。 3. 设置项目模板并编译烧录示例程序。 例如,使用 ESP-IDF 创建一个简单的 Hello World 项目: ```c #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_system.h" void app_main(void) { printf("Hello, ESP32!\n"); } ``` ### 基础外设开发 ESP32 提供了丰富的外设接口,如 UART、SPI、I2C 等,适用于多种传感器和模块的连接。以 UART 接口为例,ESP32-S3 支持三个 UART 接口(UART0、UART1、UART2),可用于多设备串口通信。开发者可以通过配置寄存器或使用 ESP-IDF 提供的 API 实现数据收发[^3]。 以下是一个 UART 初始化的代码示例: ```c #include "driver/uart.h" void uart_init() { const int uart_num = UART_NUM_1; uart_config_t uart_config = { .baud_rate = 9600, .data_bits = UART_DATA_8_BITS, .parity = UART_PARITY_DISABLE, .stop_bits = UART_STOP_BITS_1, .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, .rx_flow_ctrl_thresh = 122, }; uart_param_config(uart_num, &uart_config); uart_set_pin(uart_num, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE); uart_driver_install(uart_num, 1024 * 2, 0, 0, NULL, 0); } ``` ### Wi-Fi 应用开发 ESP32 内置 Wi-Fi 模块,支持 STA(Station)模式和 AP(Access Point)模式。在实际应用中,可以实现设备联网、远程控制等功能。例如,建立一个简单的 TCP 客户端连接服务器进行数据交互: ```c #include "esp_wifi.h" #include "esp_event.h" #include "nvs_flash.h" #include "lwip/sockets.h" void wifi_init_sta() { wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); esp_wifi_init(&cfg); // 其他Wi-Fi配置... } int connect_to_server(const char* host, int port) { struct sockaddr_in dest_addr; dest_addr.sin_addr.s_addr = inet_addr(host); dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(port); int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); if (sock < 0) { return -1; } if (connect(sock, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) != 0) { close(sock); return -1; } return sock; } ``` 此外,ESP32 还支持 MQTT 协议,用于与云平台进行消息通信。开发者可基于 ESP-IDF 或第三方库(如 PubSubClient)实现设备上云功能[^2]。 ### 蓝牙应用开发 ESP32 同样集成了蓝牙功能,包括 BLE(低功耗蓝牙)和经典蓝牙(BT)。BLE 广泛用于智能手环、遥控器等设备。通过 ESP-IDF 提供的 `esp_ble_gap_start_advertising` 函数可以启动广播,创建 BLE 设备服务并响应连接请求[^4]。 ### 应用实例:温湿度传感器联网上传 一个典型的应用场景是使用 DHT11 或 DS18B20 温湿度传感器采集数据,并通过 Wi-Fi 将数据上传至 Blynk、ThingsBoard 或自建服务器。 具体步骤如下: 1. 使用 GPIO 引脚读取传感器数据。 2. 配置 Wi-Fi 连接并建立 TCP 或 HTTP 请求。 3. 将采集到的数据发送至云端平台。 例如,使用 ESP32 通过 HTTP POST 请求上传数据至 ThingsBoard: ```c #include "esp_http_client.h" static esp_err_t http_event_handler(esp_http_client_event_t *evt) { return ESP_OK; } void send_data_to_cloud(float temperature, float humidity) { esp_http_client_config_t config = { .url = "http://your-thingsboard-server/api/v1/device-token/telemetry", .event_handler = http_event_handler, }; esp_http_client_handle_t client = esp_http_client_init(&config); esp_http_client_set_method(client, HTTP_METHOD_POST); esp_http_client_set_post_field(client, "{\"temperature\":%.2f,\"humidity\":%.2f}", temperature, humidity); esp_http_client_perform(client); esp_http_client_cleanup(client); } ``` ### 总结 ESP32 开发涵盖从基础外设操作到复杂网络通信的多个层面,结合实际项目能够更快掌握其应用方法。无论是传感器数据采集、Wi-Fi 联网、MQTT 上云还是蓝牙通信,ESP32 都具备完善的硬件支持和软件开发资源。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值