Tehtävät 4‐5 - Mikokulkuri/sensoridata-client GitHub Wiki
Sensoridata-sovellus 📌 Projektikuvaus Tämä Node.js-sovellus vastaanottaa sensoridataa MQTT:n kautta ja tallentaa sen MongoDB Atlas -pilvitietokantaan. Sovellus toimii Herokussa taustaprosessina (worker-dyno), ja sitä voi ohjata Node-RED dashboardilta MQTT-viesteillä.
🔧 Käytetyt teknologiat
- Node.js
- MQTT (Mosquitto broker)
- MongoDB Atlas
- Heroku (julkaisu)
- Node-RED (dashboard ja ohjaus)
- Git + GitHub (versionhallinta, dokumentaatio)
- CI/CD: Heroku + GitHub deploy-integraatio
🚀 Asennus ja ajo paikallisesti Asenna riippuvuudet:
-
npm install Käynnistä sovellus:
-
node mqtt_mongo.js Muokkaa MongoDB URI mqtt_mongo.js-tiedostossa tai käytä ympäristömuuttujaa.
🛰 MQTT-topicit
- Sensoridata: julkaise JSON-viestit topicilla automaatio/#, esim: { "Time": "2025-05-29T13:45:00", "T": 24.3, "H": 48.6, "DP": 12.1, "CO2": 800, "pCount": 12 }
Ohjaus: topic control/enable
Payload: true tai false
Ohjaa datan tallennuksen päälle/pois
📦 Tiedostot mqtt_mongo.js – pääsovellus (MQTT + MongoDB) Procfile – Heroku-dynon määrittely (worker: node mqtt_mongo.js) package.json – riippuvuudet README.md – dokumentaatio
🔁 CI/CD Heroku on yhdistetty GitHub-repoon:
Käytössä automaattinen deploy (Enable Automatic Deploys) Jokainen git push GitHubiin päivittää Heroku-sovelluksen
Tehtävä oli edellisten kanssa selkeä, mutta vaati hieman enemmän aivonystyröiden käyttöä. Jouduin jututtaa vähän tekoälyäkin, kun CMD:n jotkut virhekoodit esiintyivät minulla, mutta ei luennossa. Sain kuitenkin kaiken toimimaan ja pushattua kaiken herokuun. Kiitos kurssista :D ja hyvää kesää.