




The world is digital, but life is analog..






















understanding the impact of reach, engagement and behavior






This week, Week 11, we reached an important milestone in the IoT learning journey. Building upon the foundations established in Weeks 9 and 10, this week’s activity focused on visualising sensor data through dashboards, using two different approaches:
A cloud-hosted dashboard using Adafruit IO
A self-hosted dashboard using HTML served directly from the Raspberry Pi Pico W (LilEx3)
By the end of this session, you no longer just reading sensors — but you’ve design a complete IoT data pipelines, from sensing to networking to visualisation.
This week is we transit our attention from collecting data to presenting data.
Using the BME280 environmental sensor, you are able to work with:
Temperature
Humidity
Atmospheric pressure
The same sensor data was then visualised using two different dashboard approaches, highlighting important design choices in IoT systems.
Approach 1: Cloud Dashboard Using Adafruit IO – Refer to Act 7 in TINTA and Google Classsroom
This method introduces students to cloud-based IoT platforms, a common industry practice.
Key concepts:
WiFi connectivity
MQTT protocol
Publishing data to a third-party server
Remote access and visualisation


Code Explanation (Adafruit IO Method)
Imports modules for hardware control, networking, MQTT communication, and the BME280 sensor.
Initializes the I2C bus and the BME280 sensor.
Connects the Pico W to a WiFi network.
Configures the MQTT client for communication with Adafruit IO.
Reads sensor values and publishes temperature data to the cloud dashboard.
This approach shows how sensor data can be accessed anywhere in the world, but depends on external services and internet connectivity.


Approach 2: Self-Hosted HTML Dashboard on Pico W
This method shifts learning toward edge computing and embedded web servers.
Key concepts:
HTTP client–server model
Serving HTML from a microcontroller
JSON data exchange
JavaScript-based live updates
Local network dashboards

Code Explanation (HTML Dashboard Method)
Enables the Pico W to act as a web server.
Stores the dashboard webpage directly in Python memory.
Starts an HTTP server on port 80.
Distinguishes between:
Page requests (/)
Data requests (/data)
Reads temperature, humidity, and pressure in real time.
JavaScript on the webpage periodically requests new sensor data and updates the display without refreshing the page.
This approach emphasizes system integration, where the device itself becomes the dashboard — similar to ground stations and embedded monitoring panels.

Comparing Both Dashboard Approaches
| Feature | Adafruit IO | HTML on Pico W |
|---|---|---|
| Hosting | Cloud | Local (device) |
| Internet required | Yes | Local WiFi only |
| Protocol | MQTT | HTTP |
| Complexity | Lower | Higher |
| Control | Limited | Full |
| Educational value | Intro to IoT cloud | Full-stack IoT |
Both approaches are valuable, and understanding when to use each is an important engineering skill.
Bringing It All Together
By connecting:
Weeks 9 & 10 (MPU6050 motion sensing & data logging)
Week 11 (IoT dashboards and networking)
you are now capable of:
Interfacing multiple sensors
Logging and processing data
Transmitting data over networks
Designing dashboards (cloud and local)
Building complete IoT systems
At this stage, you are no longer following isolated tutorials, but are now ready to design and execute their own IoT projects.












Wrapping up 2025 with a group dinner. Well done on your 2025 achievements and continue to working hard for your projects!




Dear DRE and BTE-ian,
notes on serial data communication | notes on reading MPU6050 data.
This week, you’ve gone thru to one of the most exciting aspects of embedded systems and sensor-based computing: collecting, processing, and logging motion data using the MPU6050 sensor. Working with the LilEx3 – our in-house Raspberry Pi Pico–based picosatellite simulator, you explored how real satellites interpret motion, orientation, and attitude information through microcontrollers and built-in algorithms.
This activity was designed not only to strengthen understanding of Python programming on microcontrollers, but also to demonstrate how sensor data can be captured, logged, and interpreted, a fundamental skill in IoT, robotics, aerospace, and scientific computing.
1. Introducing the MPU6050 Sensor

The MPU6050 combines a 3-axis accelerometer and 3-axis gyroscope, allowing us to detect:
Linear acceleration (AX, AY, AZ)
Angular velocity (GX, GY, GZ)
Motion patterns
Orientation of a device in space
In satellite engineering, this type of sensor is crucial for:
Attitude determination
Stabilisation
Orientation control
Deployment sequence monitoring
For our LiLex3 picosatellite simulator, this data helps you to understand how satellites “sense” their position and respond to environmental changes.
2. Python Programming on the Raspberry Pi Pico
Acomplishing the task, you wrote MicroPython code to:
Initialise the I2C communication bus
Read real-time sensor values
Display values on the Thonny console
Log data into a .txt file for later analysis

This hands-on exercise strengthened key Python concepts:
ax, ay, az.mpu.values() and learned how functions return multiple sensor readings at once.while True: loop was used to collect real-time data every second.3. Experiencing Motion: Determining Roll, Pitch, and Yaw
Rather than reading just “raw numbers,” you were tasked to interpret meaning behind the MPU6050 readings.

Through controlled physical movement of the LiLex3:
Pitch changed when tilting forward/backward
Roll changed when tilting left/right
Yaw changed when rotating horizontally (similar to turning a compass)
By observing accelerometer and gyroscope patterns, you began to understand how flight controllers, drones, and satellites estimate their orientation in space.
This experience reinforces why MPU data is vital in aerospace applications:
CubeSat attitude determination
Drone flight stabilization
Rocket telemetry
Robotics navigation
VR/AR motion tracking
Then you were encouraged to mark down the sensor readings corresponding to specific movements and attempt simple calculations for roll/pitch/yaw using standard trigonometric formulas (e.g., atan2).

4. Data Logging: Building a Dataset for Analysis
One of the biggest takeaways was the importance of data logging.
By saving values into a .txt file, you learned how to:
This introduces to real scientific data workflows used in:
Research experiments
IoT sensor monitoring
Engineering testing
Satellite mission data collection
The logged dataset becomes the “flight log” for their miniature picosatellite simulator.
5. Conclusion: Why Today’s Activity Matters
Today’s class was not just about wiring a sensor and reading numbers. It was about understanding how real systems sense, interpret, and record the world around them.
You learned:
Embedded Python programming
Real-time sensor acquisition
Data logging techniques
Interpreting physical motion through numerical patterns
Satellite-style orientation measurement
By the end of the session, every student had generated their own dataset and gained insight into how satellites determine roll, pitch, and yaw—all through hands-on experimentation with the LiLex3 and MPU6050.
This activity bridges classroom concepts with real aerospace and IoT engineering, preparing you for more advanced missions involving filtering (Kalman), attitude determination, and flight-control algorithms.



























