{"id":18289541,"url":"https://github.com/makerbasemoon/dht11firebase","last_synced_at":"2025-04-05T09:31:35.512Z","repository":{"id":136035171,"uuid":"413414390","full_name":"MakerbaseMoon/DHT11Firebase","owner":"MakerbaseMoon","description":"This is for ESP32 DHT11 POST Data to Heroku Server and FireBase(Data Base).","archived":true,"fork":false,"pushed_at":"2021-10-13T14:54:35.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-15T01:41:21.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MakerbaseMoon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-04T12:35:54.000Z","updated_at":"2023-04-08T05:50:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f7f56eb-b4f7-4e1f-9c87-7305398265ef","html_url":"https://github.com/MakerbaseMoon/DHT11Firebase","commit_stats":null,"previous_names":["makerbasemoon/dht11firebase"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerbaseMoon%2FDHT11Firebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerbaseMoon%2FDHT11Firebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerbaseMoon%2FDHT11Firebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MakerbaseMoon%2FDHT11Firebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MakerbaseMoon","download_url":"https://codeload.github.com/MakerbaseMoon/DHT11Firebase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318233,"owners_count":20919456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T14:07:01.266Z","updated_at":"2025-04-05T09:31:35.151Z","avatar_url":"https://github.com/MakerbaseMoon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DHT11 Firebase\n\nThis is for ESP32 DHT11 POST Data to Heroku Server and FireBase(Data Base).\n\n### Link\n* [console](https://github.com/Hsun1031/DHT11Firebase#console)\n* [dht11firebase.js](https://github.com/Hsun1031/DHT11Firebase#dht11firebasejs)\n    * [class Firestore](https://github.com/Hsun1031/DHT11Firebase#class-firestore)\n        * [serviceAccountKey.json](https://github.com/Hsun1031/DHT11Firebase#serviceaccountkeyjson)\n    * [serviceAccountKey.json](https://github.com/Hsun1031/DHT11Firebase#serviceaccountkeyjson)\n    * [async checkIdPasswd(ckeckIdPasswdData)](https://github.com/Hsun1031/DHT11Firebase#async-checkidpasswdckeckidpasswddata)\n        * [Client Json](https://github.com/Hsun1031/DHT11Firebase#client-json)\n        * [Server Json](https://github.com/Hsun1031/DHT11Firebase#server-json)\n    * [async getDHT11Data(dateData)](https://github.com/Hsun1031/DHT11Firebase#async-getdht11datadatedata)\n        * [Client Json](https://github.com/Hsun1031/DHT11Firebase#client-json-1)\n        * [Server Json](https://github.com/Hsun1031/DHT11Firebase#server-json-1)\n    * [async setDHT11Data(DHT11Data)](https://github.com/Hsun1031/DHT11Firebase#async-setdht11datadht11data)\n        * [Client Json](https://github.com/Hsun1031/DHT11Firebase#client-json-2)\n        * [Server Json](https://github.com/Hsun1031/DHT11Firebase#server-json-2)\n\n## console\n\n```\n\u003e npm install express --save\n\u003e npm install firebase-admin --save\n\u003e npm install body-parser --save\n```\n\n## dht11firebase.js\n\n### class Firestore\n\n```js\nconstructor(serviceAccount) {\n    const admin = require(\"firebase-admin\");\n\n    admin.initializeApp({\n        credential: admin.credential.cert(serviceAccount)\n    });\n\n    this.db     = admin.firestore();\n}\n```\n#### serviceAccountKey.json\n\n```json\n{\n    \"type\":                         \"service_account\",\n    \"project_id\":                   \"tXXt-7XXX6\",\n    \"private_key_id\":               \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n    \"private_key\":                  \"-----BEGIN PRIVATE KEY-----\\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----END PRIVATE KEY-----\\n\",\n    \"client_email\":                 \"firebase-adminsdk-7pgpu@XXXXXXXXXXXXXXX.iam.gserviceaccount.com\",\n    \"client_id\":                    \"000000000000000000000000000\",\n    \"auth_uri\":                     \"https://accounts.google.com/o/oauth2/auth\",\n    \"token_uri\":                    \"https://oauth2.googleapis.com/token\",\n    \"auth_provider_x509_cert_url\":  \"https://www.googleapis.com/oauth2/v1/certs\",\n    \"client_x509_cert_url\":         \"https://www.googleapis.com/robot/v1/metadata/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.iam.gserviceaccount.com\"\n  }\n```\n\n---\n\n### async checkIdPasswd(checkIdPasswdData)\n\n```js\nasync checkIdPasswd(checkIdPasswdData) {\n    let _json;\n\n    try {\n        _json = {\n            Name:   checkIdPasswdData[\"Name\"],\n            Id:     checkIdPasswdData[\"Id\"],\n            Passwd: checkIdPasswdData[\"Passwd\"],\n        };\n\n        if(_json.Name !== \"checkIdPasswd\")\n            return getReturnData(\"CHECK_ID_PASSWD\", \"ERROR\", \"JSON_NAME_ERROR\");\n    } catch(e) {\n        return getReturnData(\"CHECK_ID_PASSWD\", \"ERROR\", \"JSON_ERROR\");\n    }\n\n    try {\n        const snapshot  = await this.db.collection('Users').where('Id', '==', _json.Id).where('Passwd', '==', _json.Passwd).get();\n\n        if(snapshot.empty)\n            return getReturnData(\"CHECK_ID_PASSWD\", \"ERROR\", \"ID_OR_PASSWD_ERROR\");\n\n        let returnData = getReturnData(\"CHECK_ID_PASSWD\", \"OK\", NaN);\n        snapshot.forEach(doc =\u003e {\n            returnData[\"Key\"] = doc.id;\n        });\n        return returnData;\n\n    } catch(e) {\n        return getReturnData(\"CHECK_ID_PASSWD\", \"ERROR\", \"DATABASE_WHERE_ERROR\");\n    }\n}\n```\n#### Client Json\n\n```json\n{\n    \"Name\":   \"checkIdPasswd\",\n    \"Id\":     \"\u003cEnter your ID\u003e\",\n    \"Passwd\": \"\u003cEnter your Password\u003e\"\n}\n```\n\n#### Server Json\n\nType -\u003e OK\n\n```json\n{\n    \"Name\":  \"checkIdPasswd\",\n    \"Type\":  \"OK\",\n    \"Error\":  null,\n    \"Key\":   \"XXXXXXXXXXXXXX\"\n}\n```\n\nType -\u003e Error\n\n```json\n{\n    \"Name\":  \"checkIdPasswd\",\n    \"Type\":  \"ERROR\",\n    \"Error\": \"\u003cError Code\u003e\"\n}\n```\n\n* JSON_NAME_ERROR\n* JSON_ERROR\n* ID_OR_PASSWD_ERROR\n* DATABASE_WHERE_ERROR\n\n---\n\n### async getDHT11Data(dateData)\n\n```js\nasync getDHT11Data(dateData) {\n    let _json;\n\n    try {\n        let date  = new Date(dateData[\"Year\"], dateData[\"Month\"], dateData[\"Day\"], dateData[\"Hour\"]);\n        _json = {\n            Name:   dateData[\"Name\"],\n            Date:   date.getTime(),\n        }\n\n        if(_json.Name !== \"getDHT11Data\")\n            return getReturnData(\"GET_DHT11_DATA\", \"ERROR\", \"JSON_NAME_ERROR\");\n\n    } catch(e) {\n        return getReturnData(\"GET_DHT11_DATA\", \"ERROR\", \"JSON_ERROR\");\n    }\n\n    try {\n        const cityRef = this.db.collection(\"DHT11\").doc(_json.Date.toString());\n        const doc = await cityRef.get();\n\n        if (!doc.exists)\n            return getReturnData(\"GET_DHT11_DATA\", \"ERROR\", \"DATABASE_NOTFOUND_DATA_ERROR\");\n\n        \n        let data = getReturnData(\"GET_DHT11_DATA\", \"OK\", NaN);\n        data[\"Data\"]    = doc.data()\n        return data;\n        \n    } catch(e) {\n        return getReturnData(\"GET_DHT11_DATA\", \"ERROR\", \"DATABASE_GET_DATA_ERROR\");\n    }\n\n}\n```\n\n#### Client Json\n2021/10/01 13:05\n```json\n{\n    \"Name\":  \"getDHT11Data\",\n    \"Year\":   2021,\n    \"Month\":    10,\n    \"Day\":       1,\n    \"Hour\":     13\n}\n```\n\n#### Server Json\n\nType -\u003e OK\n\n```json\n{\n    \"Name\":  \"GET_DHT11_DATA\",\n    \"Type\":  \"OK\",\n    \"Error\":  null,\n    \"Data\": {\n        \"Date\":  1635523200000,\n        \"0\": {\n            \"Temp\": [20, 20, 20, 20, 20, 20],\n            \"Hum\":  [50, 50, 50, 50, 50, 50]\n        },\n        \"1\": {\n            \"Temp\": [20, 20, 20, 20, 20, 20],\n            \"Hum\":  [50, 50, 50, 50, 50, 50]\n        },\n        ...\n    }\n}\n```\n\nType -\u003e Error\n\n```json\n{\n    \"Name\":  \"GET_DHT11_DATA\",\n    \"Type\":  \"ERROR\",\n    \"Error\": \"\u003cError Code\u003e\"\n}\n```\n\n* JSON_NAME_ERROR\n* JSON_ERROR\n* DATABASE_NOTFOUND_DATA_ERROR\n* DATABASE_GET_DATA_ERROR\n\n---\n\n### async setDHT11Data(DHT11Data)\n\n```js\nasync setDHT11Data(DHT11Data) {\n    let _json;\n\n    try {\n        let date  = new Date(DHT11Data[\"Year\"], DHT11Data[\"Month\"], DHT11Data[\"Day\"], DHT11Data[\"Hour\"]);\n        _json = {\n            Name: DHT11Data[\"Name\"],\n            Date: date.getTime(),\n            Min:  DHT11Data[\"Min\"],\n            Temp: DHT11Data[\"Temp\"],\n            Hum:  DHT11Data[\"Hum\"]\n        }\n\n        if(_json.Name !== \"setDHT11Data\")\n            return getReturnData(\"SET_DHT11_DATA\", \"ERROR\", \"JSON_NAME_ERROR\");\n\n    } catch(e) {\n        return getReturnData(\"SET_DHT11_DATA\", \"ERROR\", \"JSON_ERROR\");\n    }\n\n    try {\n        let firebaseData = {}\n        firebaseData[_json.Min.toString()] = {\n            Temp: _json.Temp,\n            Hum:  _json.Hum,\n        };\n\n        const myDoc = this.db.collection(\"DHT11\").doc(_json.Date.toString());\n        const doc = await myDoc.get();\n\n        if (!doc.exists) {\n            await myDoc.set({Date: _json.Date});\n        }\n\n        await myDoc.update(firebaseData);\n\n    } catch(e) {\n        return getReturnData(\"SET_DHT11_DATA\", \"ERROR\", \"DATABASE_SAVE_DATA_ERROR\");\n    }\n\n    return getReturnData(\"SET_DHT11_DATA\", \"OK\", NaN);\n}\n```\n\n#### Client Json\n2021/10/01 13:05\n```json\n{\n    \"Name\":  \"setDHT11Data\",\n    \"Year\":   2021,\n    \"Month\":    10,\n    \"Day\":       1,\n    \"Hour\":     13,\n    \"Min\":       5,\n    \"Temp\":    [20, 20, 20, 20, 20, 20],\n    \"Hum\":     [50, 50, 50, 50, 50, 50]\n}\n```\n\n#### Server Json\n\nType -\u003e OK\n\n```json\n{\n    \"Name\": \"SET_DHT11_DATA\",\n    \"Type\": \"OK\",\n    \"Error\": null\n}\n```\n\nType -\u003e Error\n\n```json\n{\n    \"Name\":  \"SET_DHT11_DATA\",\n    \"Type\":  \"ERROR\",\n    \"Error\": \"\u003cError Code\u003e\"\n}\n```\n\n* JSON_NAME_ERROR\n* JSON_ERROR\n* DATABASE_SAVE_DATA_ERROR","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerbasemoon%2Fdht11firebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerbasemoon%2Fdht11firebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerbasemoon%2Fdht11firebase/lists"}