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