ESP-Google-IoT 项目教程
项目介绍
ESP-Google-IoT 是一个开源框架,旨在使 ESP32 平台能够连接到 Google Cloud IoT Core。该项目使用 Google Cloud IoT Device SDK,支持通过 MQTT 或 HTTP 协议与 Google 的基础设施进行通信。ESP32 系列模块具有广泛的温度操作范围(-40°C 至 105°C),适用于商业应用开发,并符合多种国际标准。
项目快速启动
以下是快速启动 ESP-Google-IoT 项目的步骤:
1. 克隆项目仓库
git clone https://github.com/espressif/esp-google-iot.git
cd esp-google-iot
2. 配置和编译项目
# 进入示例目录
cd examples/smart_outlet
# 配置项目
make menuconfig
# 编译项目
make
3. 烧录固件
make flash
4. 连接到 WiFi
make monitor
# 在串口监视器中输入以下命令连接到 WiFi
AT+CWJAP="WIFI_SSID","WIFI_PASS"
5. 连接到 Google Cloud IoT
mos gcp-iot-setup --gcp-project <YOUR_PROJECT_ID> --gcp-region <YOUR_REGION> --gcp-registry <REGISTRY_NAME>
应用案例和最佳实践
温度和湿度监测
一个典型的应用案例是使用 ESP32 模块连接 DHT11 传感器,将温度和湿度数据发送到 Google Cloud IoT 平台。以下是实现步骤:
- 连接传感器:将 DHT11 传感器连接到 ESP32 模块。
- 配置 MQTT 主题:在 Google Cloud IoT 中配置 MQTT 主题以接收传感器数据。
- 发送数据:使用以下代码定期发送温度和湿度数据:
void send_sensor_data() { float temperature = read_temperature(); float humidity = read_humidity(); char payload[50]; snprintf(payload, sizeof(payload), "{\"temperature\":%.2f,\"humidity\":%.2f}", temperature, humidity); mqtt_publish("/devices/[device-id]/events", payload); }
控制 LED
通过更新设备配置,可以从 Google IoT Core 控制 ESP32 板载 LED。以下是实现步骤:
- 订阅配置主题:在启动时订阅
/devices/[device-id]/config
主题。 - 处理配置更新:在回调函数中处理配置更新,控制 LED 状态:
void iotc_mqttlogic_subscribe_callback(const char* topic, const char* payload) { if (strstr(topic, "/config")) { if (strstr(payload, "LED_ON")) { digitalWrite(LED_PIN, HIGH); } else if (strstr(payload, "LED_OFF")) { digitalWrite(LED_PIN, LOW); } } }
典型生态项目
ESP32 系列模块
ESP32 系列模块是 ESP-Google-IoT 项目的基础硬件平台,具有广泛的温度操作范围和多种国际认证,适用于各种商业应用。
Google Cloud IoT Core
Google Cloud IoT Core 是一个全面的云服务,提供设备管理、数据处理和分析功能,支持 MQTT 和 HTTP 协议,与 ESP-Google-IoT 项目无缝集成。
IoT Device SDK
Google Cloud IoT Device SDK 是一个嵌入式 C 库,用于简化设备与 Google Cloud IoT Core 的通信,支持 MQTT 和 HTTP 协议,提供设备认证、数据发布和配置管理等功能。
通过以上模块的组合,ESP-Google-IoT 项目可以实现从设备到云端的完整物联网解决方案。