如何将带有gsm / gprs SIM900防护罩的arduino Uno连接到Firebase?

时间:2019-04-22 10:56:19

标签: firebase iot arduino-uno gsm sim900

需要将具有gsm / gprs解决方案的arduino uno板连接到Firebase数据库,以便存储来自水质传感器的实时数据。传感器均已连接,并且gsm模块运行正常。但是找不到将解决方案连接到Firebase的方法。我很高兴有人能帮忙,因为我是该领域的初学者,并且必须在Firebase中存储数据才能在Web应用程序和移动应用程序中检索它们。如何将带有gsm模块sim 900的arduino板连接到火力基地?

2 个答案:

答案 0 :(得分:0)

使用Firebase Functions设置可调用的https。然后在POST中添加一个密钥(这样其他人都无法使用您的函数)以及您要读取/写入的数据。 https://firebase.google.com/docs/functions/database-events

答案 1 :(得分:0)

您可以先配置firebase功能服务,这允许将信息发送到firebase并存储,就像上面的答案一样,基本问题是SIM900+ARDUINO无法处理https协议,firebase只允许这样做。

firebase 的功能可以解决这个问题。

别忘了之前

npm i express
const functions = require("firebase-functions");
var admin = require("firebase-admin");
const express = require("express");

// Your credentials from firebase configurations
var serviceAccount = require("./credentials.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "HERE_YOUR_FIREBASE_URL"
});

const app = express()

const db = admin.firestore()

const collect = db.collection('YOUR_COLLECTION').doc('YOUR_DOCUMENT')



// 'data_id' have my data from SIM900, and I captured by URL to save
app.get('/data/:data_id', async (req, res) => {
    const date = new Date()
    const tempMap = new Map()
    try {
        tempMap.set(date.getTime(), req.params.data_id)
        await collect.update(Object.fromEntries(tempMap))
        return res.status(200).json()
    } catch (e) {
        return res.status(500).send(e)
    }
});

exports.app = functions.https.onRequest(app)

这个简单的过程允许您使用 SIM900 访问 Firebase