【问题标题】:How to connect arduino Uno with gsm/gprs SIM900 shield to firebase?如何将 arduino Uno 与 gsm/gprs SIM900 屏蔽连接到 Firebase?
【发布时间】:2019-04-22 10:56:18
【问题描述】:
需要将我的 arduino uno 板与 gsm/gprs 解决方案连接到 firebase 数据库,以便存储来自水质传感器的实时数据。传感器都已连接,gsm 模块工作正常。但找不到将解决方案连接到火力基地的方法。如果有人可以提供帮助,我将不胜感激,因为我是该领域的初学者,并且必须在 firebase 中存储数据才能在 Web 应用程序和移动应用程序中检索它们。如何将这个 arduino 板与 gsm 模块 sim 900 连接到火力基地?
【问题讨论】:
标签:
firebase
iot
arduino-uno
gsm
sim900
【解决方案2】:
您可以先配置firebase功能服务,这允许将信息发送到firebase并存储,就像上面的答案一样,问题基本是SIM900+ARDUINO无法处理https协议,而firebase只允许。
firebase 的 Whit 函数可以解决这个问题。
别忘了之前
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