📜  物联网Google Firebase NodeMCU(1)

📅  最后修改于: 2023-12-03 15:11:11.040000             🧑  作者: Mango

物联网Google Firebase NodeMCU

介绍

本文将介绍如何使用NodeMCU与Google Firebase实现物联网设备的连接与通信。NodeMCU是一款基于ESP8266的开发板,它集成了WiFi模块和USB转串口模块,可以很方便地连接到网络中。而Google Firebase则是一款实时的后端服务,它提供了完整的解决方案,包括实时数据库、身份验证、云存储等功能,可以帮助开发者快速搭建物联网项目。

前置知识

在开始本教程之前,我们需要一些基础知识:

  • NodeMCU编程基础
  • Arduino IDE基础使用
  • Firebase实时数据库基础使用
准备工作

在开始开发之前,我们需要准备以下材料:

  • NodeMCU模块
  • USB数据线
  • 电脑
步骤
1. 环境搭建

在我们开始编写代码之前,需要先搭建好开发环境。

  • 安装Arduino IDE:到官网下载Arduino IDE并安装。
  • 安装NodeMCU驱动:在Arduino IDE中选择菜单栏Tools -> Board -> Boards Manager,在搜索框中输入NodeMCU并安装。
  • 安装ESP8266WiFi库:在Arduino IDE中选择菜单栏Sketch -> Include Library -> Manage Libraries,在搜索框中输入ESP8266WiFi并安装。
  • 安装Firebase Arduino库:打开GitHub仓库,下载源码并解压。将FirebaseESP8266文件夹复制到Arduino库文件夹中。
2. 创建Firebase项目

在Firebase官网中创建一个新的项目。

  • 打开Firebase官网,点击“Create Project”按钮创建一个新项目,并将其命名为“NodeMCU Project”。
3. 配置Firebase数据库

设置Firebase实时数据库规则,以允许我们从节点编写数据。

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
4. 编写代码

4.1 连接WiFi

在setup()函数中连接WiFi。

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

4.2 初始化Firebase

在loop()函数中初始化Firebase。

void loop() {
  if (!Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH)) {
    Serial.println("Failed to initialize Firebase");
    return;
  }
  Serial.println("Initialized Firebase");
}

4.3 向Firebase写入数据

在loop()函数中向Firebase写入数据。

void loop() {
  // ...
  Firebase.pushString("/data/temperature", String(temperature));
}

4.4 从Firebase读取数据

在loop()函数中从Firebase读取数据。

void loop() {
  // ...
  Firebase.getString("/config/url");
}

完整代码如下:

#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>

// WiFi登录信息
const char* ssid = "WiFi";
const char* password = "password";

// Firebase信息
#define FIREBASE_HOST "<YOUR_FIREBASE_PROJECT>.firebaseio.com"
#define FIREBASE_AUTH "<YOUR_FIREBASE_AUTH>"

// 温度传感器引脚
#define TEMPERATURE_PIN A0

double temperature;

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

  // 初始化Firebase
  if (!Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH)) {
    Serial.println("Failed to initialize Firebase");
    return;
  }
  Serial.println("Initialized Firebase");
}

void loop() {
  // 读取温度
  temperature = analogRead(TEMPERATURE_PIN) / 1024.0 * 5.0 * 100.0;

  // 写入数据到Firebase
  Firebase.pushString("/data/temperature", String(temperature));

  // 从Firebase读取数据
  String url = Firebase.getString("/config/url");
  Serial.println(url);
  
  delay(1000);
}
总结

通过本教程,我们介绍了如何使用NodeMCU和Google Firebase实现物联网设备的连接和通信。我们学习了如何连接WiFi、如何初始化Firebase、如何写入数据到Firebase、如何从Firebase读取数据等操作。通过这些操作,我们可以实现数据的传输和控制,这对于物联网的开发非常有用。