|
在本篇文章中,您将学习如何使用Arduino UNO开发板和ESP8266模块上传和下载Firebase数据库中的数据。
将数据(如传感器数据)存储到可以通过互联网从任何地方访问的数据库可能非常有用。 Firebase可以轻松存储和检索数据。
什么是Firebase? Firebase是移动和网络应用程序开发平台,由Firebase,Inc公司于2011年开发,随后于2014年被Google收购。截至2018年10月,Firebase平台共有18种产品,150万个应用程序使用这些产品。
Firebase提供以下多种服务: ● Firebase Analytics是一款免费的应用程序度量解决方案,可提供对应用程序使用情况和用户参与的分析 ● Firebase Cloud Messaging (FCM) 是针对Android、iOS和Web应用程序的消息和通知的跨平台解决方案,成本低廉。 ● Firebase Auth是一种可以仅使用客户端代码对用户进行身份验证的服务。它支持社交登录提供商Facebook、GitHub、Twitter和谷歌。此外,它还包括一个用户管理系统,开发人员可以通过Firebase存储的电子邮件和密码登录启用用户身份验证。
所需的材料 ● Arduino UNO R3开发板 ● ESP8266-12N WiFi模块 ● Arduino IDE
将Arduino连接到Firebase 首先,您应该在Firebase中创建一个帐户。创建一个帐户非常容易;转到“firebase.google.com”,点击“Console”,然后通过您的Google帐户登录,然后创建一个新项目。创建新项目后,添加名称并启用测试模式。您可以在实时数据库部件中手动添加一些值。您可以通过在数据库URL末尾添加“.json”来获取数据的JSON格式。
可以通过Arduino和ESP8266从数据库中读取或传输数据。代码中需要提供firebase项目的主机名和Auth密钥。您需要添加Firebase Arduino库,然后上传代码。如果这是您第一次使用Arduino开发板,请按照以下步骤操作: 1. 转到www.arduino.cc/en/Main/Software下载与您的操作系统兼容的Arduino软件。按照说明安装IDE软件。 2. 运行Arduino IDE并清除文本编辑器,然后在文本编辑器中复制以下代码。 3. 在tools > boards选择对应的Arduino开发板。 4. 将Arduino连接到PC,然后并在tools > port中设置COM端口。 5. 点击上传(箭头符号)按钮。 6. 完成代码上传工作了!
电路连接
代码 - /*
- #include <ESP8266WiFi.h">
- #include <FirebaseArduino.h>
-
- // Set these to run example.
- #define FIREBASE_HOST "example.firebaseio.com"
- #define FIREBASE_AUTH "token_or_secret"
- #define WIFI_SSID "SSID"
- #define WIFI_PASSWORD "PASSWORD"
-
- void setup() {
- Serial.begin(9600);
-
- // connect to wifi.
- WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
- Serial.print("connecting");
- while (WiFi.status() != WL_CONNECTED) {
- Serial.print(".");
- delay(500);
- }
- Serial.println();
- Serial.print("connected: ");
- Serial.println(WiFi.localIP());
-
- Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
- }
-
- int n = 0;
-
- void loop() {
- // set value
- Firebase.setFloat("number", 42.0);
- // handle error
- if (Firebase.failed()) {
- Serial.print("setting /number failed:");
- Serial.println(Firebase.error());
- return;
- }
- delay(1000);
-
- // update value
- Firebase.setFloat("number", 43.0);
- // handle error
- if (Firebase.failed()) {
- Serial.print("setting /number failed:");
- Serial.println(Firebase.error());
- return;
- }
- delay(1000);
-
- // get value
- Serial.print("number: ");
- Serial.println(Firebase.getFloat("number"));
- delay(1000);
-
- // remove value
- Firebase.remove("number");
- delay(1000);
-
- // set string value
- Firebase.setString("message", "hello world");
- // handle error
- if (Firebase.failed()) {
- Serial.print("setting /message failed:");
- Serial.println(Firebase.error());
- return;
- }
- delay(1000);
-
- // set bool value
- Firebase.setBool("truth", false);
- // handle error
- if (Firebase.failed()) {
- Serial.print("setting /truth failed:");
- Serial.println(Firebase.error());
- return;
- }
- delay(1000);
-
- // append a new value to /logs
- String name = Firebase.pushInt("logs", n++);
- // handle error
- if (Firebase.failed()) {
- Serial.print("pushing /logs failed:");
- Serial.println(Firebase.error());
- return;
- }
- Serial.print("pushed: /logs/");
- Serial.println(name);
- delay(1000);
- }
复制代码在代码中,我们需要Firebase Arduino库,可以在此链接下载文件。您也可以Arduino连接到Firebase的其他示例。 |