This GitHub repository contains the code and documentation for an indoor temperature prediction prototype developed using machine learning and MQTT communication. The prototype aims to provide accurate indoor temperature forecasts based on historical weather data, simulated building-specific information, and advanced deep learning techniques.
- Python (>= 3.6): Ensure that Python is installed on your system before proceeding with the installation.
- Scikit-learn libraries to utilize the LSTM-based regressions indoor temperature prediction model.
- Paho MQTT Library: Install the Paho MQTT client library for efficient MQTT communication.
- OpenModelica (optional): If you want to train the model using simulation data, install OpenModelica to generate weather scenarios for training.
Data Collection: 1_openModelica or similar simulation environment or sensor data and save into 2_simulatedData
- Gather historical indoor temperature data from buildings equipped with temperature sensors.
- Obtain weather data (temperature, humidity, solar radiation) from reliable sources or simulate weather scenarios using OpenModelica.
- Prepare the historical indoor temperature and weather data for training the model.
- Handle missing values and normalize the features to a consistent range.
- Run the model training module to train the LSTM-based indoor temperature prediction model.
- Tune the hyperparameters to optimize the model's performance.
- Set up an MQTT broker to act as an intermediary for communication.
- Implement the MQTT client module to publish indoor temperature predictions and receive real-time updates.
- Design and develop a user-friendly interface to interact with the prediction model.
- Provide options for users to input weather parameters and building characteristics.
- Deploy the prototype to start predicting indoor temperatures in real-time.
- Access the predicted temperatures through subscribing devices or your user interface.
This is a seperate prototype sample using sensor data as data collection method. Completely independent from other components of the prototype packages above.
Special thanks to the open-source community and developers of all the necessary tools and libraries which made this prototype possible. In this prototype, the machine learning methods, skills and understandings learned from IBM open courseware "Machine Learning with Python: A Practical Introduction" were applied.