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

image

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ää.