Introduction to Energy Monitoring Systems (5 cr)
Code: TE00BX26-3003
General information
Enrollment
01.12.2023 - 05.01.2024
Timing
08.01.2024 - 30.04.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Teaching languages
- English
Teachers
- Hugo Huerta Medina
Groups
-
PEYTES22
- 10.01.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 17.01.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 24.01.2024 14:00 - 16:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 31.01.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 07.02.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 07.02.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 14.02.2024 14:00 - 16:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 14.02.2024 14:00 - 16:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 28.02.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 06.03.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 20.03.2024 11:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 21.03.2024 13:00 - 16:00, First Lab session - Group B
- 03.04.2024 11:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 04.04.2024 12:00 - 15:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 10.04.2024 12:00 - 15:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 11.04.2024 12:00 - 15:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 17.04.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
- 24.04.2024 12:00 - 14:00, Introduction to Energy Monitoring Systems TE00BX26-3003
Objective
This course aims to teach the basics of programming with Python, Control Systems and how to combine them to be used in the Energy Management area. The course covers the fundamentals of how to build programs (from basic to intermediate instructions) in Python, specifically for data transmission and collection to build a scale-down energy management system.
After finishing the course, the student will be able to:
• Code in Python (a high level programming language) and use its built-in functions as well as external Python modules.
• Apply all the acquired knowledge to establish communication between controllers (PC or Raspberry Pi) and transmitters (sensors, energy meters, power sources), by using different data transmission resources.
• Collect data from transmitters, and based on their analysis, control simple electronic devices.
• Use databases for storing collected data.
• Visualize data with Grafana dashboard.
Content
Content
1. Energy Management Systems
1.1 Overview
1.2 Home Energy Management Systems
1.3 Why programming in this course
2. Python
2.1 Computers architecture
2.2 How to install Python and code editors
2.3 Interpreter
2.4 Python reserved words and mathematical operations
2.5 Python variables
2.6 Python Built-in functions
2.7 Strings, Lists
2.8 Control flow
2.8.1 if, for
2.8.2 Boolean expressions
2.9 Data structures
2.9.1 Lists, Dictionaries
2.10 Objects
2.10.1 Classes
2.10.2 Methods vs functions
2.11 Importing external modules
2.11.1 Numpy and Pandas overview
3. Control Systems
3.1 Data transmission
3.2 Serial communication
3.3 Communication protocols
3.3.1 Modbus protocol
RTU, ASCII, TCP/IP
4. Project
4.1 Project introduction
4.2 Raspberry Pi
4.2.1 Overview
4.2.2 Configuration
4.2.3 Basic Linux commands
4.3 Data bases
4.3.1 MariaDB overview
4.3.2 Configuration
4.3.3 Storing data
4.4 Project development
Materials
Online sources:
Python documentation at www.python.org
Python for everybody at www.py4e.com
Books:
Non-Programmer's Tutorial for Python 3. Found at https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3
Think Python
Python for everybody. Found at https://www.py4e.com/book
Maria DB Cookbook.
Teaching methods
Lectures at Campus
Guided exercises
Assignments
Self-learning
Exam schedules
No exam.
Final project covering minimal requirements to pass the course
If the project does not cover minimal requirements, a second opportunity to present it is given. One week for corrections.
Completion alternatives
Recorded videos (Hugo H.)
Referenced Videos
Practical Exercises from books
Student workload
Schedule:
10 - 12 Weeks (Lectures at Campus and Laboratory)
2 Weeks to develop Final Project
1 Week for Final Project Presentation
Workload:
1 Assignment per week (30 minutes up to 1 hr)
Content scheduling
7-8 Lectures ( Python, Data Transmission, Communication protocols, Data Bases)
3-4 Lab sessions (Modbus implementation, Data bases, Displaying Data)
2 Weeks for project development
1 Week for final presentations
Evaluation scale
H-5
Assessment methods and criteria
Assignments
Class exercises
Final Project
Assessment criteria, fail (0)
No project presented or the project does not cover minimal requirements
Assessment criteria, satisfactory (1-2)
Minimal requirements + Assignments
Assessment criteria, good (3-4)
Project presents additional features than the minimal required + Assignments
Assessment criteria, excellent (5)
Outstanding project + Assignments