An Open-Source Educational Platform for Multi-Sensor Environmental Monitoring Applications
Abstract
1. Introduction
2. Design
2.1. Educational Objectives
- To develop sophisticated PCB design methodologies, encompassing optimal component placement, signal routing, and impedance matching. Through practical exercises, learners gain proficiency in high-performance layout techniques, minimizing noise and interference for accurate sensor data acquisition.
- To introduce students to a range of sensors crucial for environmental and water quality monitoring. Sensor types include those measuring water parameters such as pH, dissolved oxygen (DO), turbidity, and conductivity. Students learn the intricacies of integrating diverse sensor technologies, ensuring effective communication and data accuracy in a unified hardware environment.
- To introduce students to multi-source and eco-friendly power management techniques, encompassing both batteries and harvested energy sources. Students learn to design systems that efficiently manage power from various sources, ensuring continuous operation and optimal energy utilization for extended deployment in remote environments.
- To develop good design practices by tackling complexity through modularity. The platform’s modular architecture allows students to experiment with various sensor combinations, promoting adaptability in designing sensor nodes for specific environmental applications. The expandability feature encourages students to develop custom add-on software and hardware modules, fostering creativity and providing practical insights into the challenges of integrating diverse sensors on a single PCB.
- To develop analytical skills by simulating real-world environmental monitoring scenarios, including the effects of water quality fluctuations. This simulation aspect facilitates a deeper understanding of the challenges associated with sensor integration, layout optimization, and the impact of environmental factors on data accuracy.
- To develop social abilities and collaborative design skills. Emphasizing collaboration, the platform encourages students to contribute to its continuous improvement. The open-source nature facilitates knowledge sharing and innovation, creating a community-driven learning environment where students actively participate in refining both hardware and software components.
2.2. Hardware Architecture
2.3. Sensor Integration
2.4. Validation and Testing
2.5. Open-Source Education Model
3. Build Instructions
- The computing module that relies on the low-cost ESP32-WROOM microcontroller. This module comes with out-of-the-box Bluetooth and Wi-Fi interfaces and a variety of peripherals. However, this microcontroller provides only 34 of the 50 I/O ports needed to support the target monitoring applications. For this reason, the design also includes an MCP23017 I/O expander by Microchip, which provides 16 additional I/O ports controlled over the I2C bus.
- The sensor module is split across two boards: the main board and the isolated sensor board. The former integrates onboard sensors, such as the MPU-9250 IMU for motion and orientation sensing, while the latter accepts up to five external sensors via JST connectors. Four of these sensors (pH, temperature, electrical conductivity and dissolved oxygen) communicate over the I2C bus using four-pin connectors (power, ground, SCL, SDA), while the fifth sensor (turbidity) provides an analog output via a 3-pin JST connector.
- The communication module is hosted on a breakout board mounted at the center of the main PCB. The design supports an RFM95W LoRa breakout based on the Semtech SX1276 radio. In addition to the LoRa module, the system provides Bluetooth for sensor calibration, instantaneous measurements, and network tests, and Wi-Fi for Firmware-Over-The-Air (FOTA) updates.
- The power distribution module controls the external power supply (USB power, battery charge/supply, and solar panels) and distributes regulated power to the MCU, sensors, and communication module. Each sensor can be powered independently.
- The auxiliary component module includes a USB-to-UART interface (Silicon Labs CP2102) for MCU programming and debugging, and an RS-232 line driver based on a MAX3232 chip.
4. Operating Instructions
- Powering the device:The device supports multiple power input methods:
- USB: Operates at a standard voltage of 5 V, internally regulated to supply stable power to the board components.
- Battery: The device is compatible with standard Li-ion/LiPo batteries, supporting a voltage range from 3.7 V (nominal) to 4.2 V (fully charged). Charging and management are handled by the MCP73871 chip.
- Solar Panel: The device supports small photovoltaic panels and manages fluctuating input voltage and current through Voltage Proportional Charge Control (VPCC). It requires a minimum input voltage of 4.5 V to activate VPCC for stable charging.
- Sensors:The board is compatible with 3.3 V sensors. Connect the sensors to the appropriate connectors based on their type:
- I2C Sensors (pH, temperature, electrical conductivity, dissolved oxygen): Use the 4-pin JST connectors (K10, K11, K13, K17).
- Turbidity Sensor: Use the 3-pin JST connector (K12).
Make sure that all sensors are firmly connected and that their pins are properly aligned to avoid any miscommunication or damage. - Using the Communication Module:Insert the LoRa (MOD1) and GPS (MOD2) breakout boards into their designated slots. Use Bluetooth for sensor calibration, network tests, and real-time measurements.
- Programming and Debugging:Connect the USB to a computer to program the ESP32 MCU. Use the typical ESP32 development environment, such as PlatformIO or Arduino IDE, to write and upload the code. Debug using the RS232 line driver via the MAX3232 chip, if needed.
- Interfacing with External Devices:The board can connect to various external devices through its dedicated connectors. Table 3 shows the specific functions of each connector.
- Sensor Calibration:Use the Bluetooth interface to calibrate the sensors. Use any general serial communication app to connect to the sensor board using the Bluetooth interface. Switch off the robot and switch it back on to set the robot in calibration mode for 30 s. During this period the robot will listen to connection requests. Once connected, the robot will start the calibration procedure and send a text with the operations to perform. During the calibration of the sensors, calibration liquids are required.
- Testing and Deployment:Verify all connections and functionality before deploying the system. If using the turbidity sensor, make sure it is oriented correctly and keep it out of harsh environments that are outside of its designated range. Ensure that the solar panels are positioned to receive the most sunlight possible for long-term use.
- Maintenance:Regularly inspect connections for wear or corrosion. Update the firmware periodically via Wi-Fi using Firmware-Over-The-Air (FOTA) updates. Check the sensors for bio-fouling and check the membranes of the sensors at least every 3 months. Clean the sensors with clear water and replace the membranes if broken or if the readings of the sensor are not becoming stable during the calibration procedure.
5. Validation Instructions
- System wake-up;
- Sensors are enabled and measurements performed;
- Collected data is transmitted using LoRa module;
- System disconnects and returns to deep sleep.
| Listing 1. Water quality monitoring wakeup routine. | |
| 1 | void WakeupRoutine () { |
| 2 | // Activate pH and Temperature sensors |
| 3 | ActivateSensor ("pH"); |
| 4 | ActivateSensor ("Temperature"); |
| 5 | |
| 6 | // Wait for system setup delay |
| 7 | Wait (SystemSetupDelay); |
| 8 | |
| 9 | // Begin data acquisition from Temperature and pH sensors |
| 10 | float TemperatureSample = ReadSensor ("Temperature"); |
| 11 | |
| 12 | // Loop to perform 10 pH reads with necessary delay |
| 13 | float pHSample [10]; |
| 14 | for (int i = 0; i < 10; i++) { |
| 15 | pHSample [i] = ReadSensor ("pH"); |
| 16 | Wait (DataAcquisitionDelay); |
| 17 | } |
| 18 | |
| 19 | // Disable pH and Temperature sensors |
| 20 | DeactivateSensor ("pH"); |
| 21 | DeactivateSensor ("Temperature"); |
| 22 | |
| 23 | // Activate DO and EC sensors |
| 24 | ActivateSensor ("DO"); |
| 25 | ActivateSensor ("EC"); |
| 26 | |
| 27 | // Begin data acquisition from DO sensor |
| 28 | float DOSample [5]; |
| 29 | for (int i = 0; i < 5; i++) { |
| 30 | DOSample [i] = ReadSensor ("DO"); |
| 31 | Wait (DataAcquisitionDelay); |
| 32 | } |
| 33 | |
| 34 | // Begin data acquisition from EC sensor |
| 35 | float ECSample [5]; |
| 36 | for (int i = 0; i < 5; i++) { |
| 37 | ECSample [i] = ReadSensor ("EC"); |
| 38 | Wait (DataAcquisitionDelay); |
| 39 | } |
| 40 | |
| 41 | // Disable DO and EC sensors |
| 42 | DeactivateSensor ("DO"); |
| 43 | DeactivateSensor ("EC"); |
| 44 | |
| 45 | // Activate Turbidity sensor |
| 46 | ActivateSensor ("Turbidity"); |
| 47 | |
| 48 | // Wait for necessary delay for turbidity data acquisition |
| 49 | Wait (TurbiditySetupDelay); |
| 50 | |
| 51 | // Get Turbidity data |
| 52 | float TurbiditySample = ReadSensor ("Turbidity"); |
| 53 | |
| 54 | // Turn off Turbidity sensor |
| 55 | DeactivateSensor ("Turbidity"); |
| 56 | } |
| 57 | |
| 58 | // Function to activate a sensor |
| 59 | void ActivateSensor (char∗ sensor) { |
| 60 | // Implementation to activate sensor |
| 61 | } |
| 62 | |
| 63 | // Function to deactivate a sensor |
| 64 | void DeactivateSensor (char∗ sensor) { |
| 65 | // Implementation to deactivate sensor |
| 66 | } |
| 67 | |
| 68 | // Function to read data from a sensor |
| 69 | float ReadSensor (char∗ sensor , PORT_ADDR) { |
| 70 | // Implementation to read data from sensor |
| 71 | float sensorData = 0.0; |
| 72 | switch (sensor) { |
| 73 | case TEMPERATURE : |
| 74 | sensorData = ReadTemperatureSensor (PORT_ADDR); |
| 75 | break; |
| 76 | case PH: |
| 77 | sensorData = ReadPHSensor (PORT_ADDR); |
| 78 | break; |
| 79 | case DO: |
| 80 | sensorData = ReadDOSensor (PORT_ADDR); |
| 81 | break; |
| 82 | case EC: |
| 83 | sensorData = ReadECSensor (PORT_ADDR); |
| 84 | break; |
| 85 | case TURBIDITY: |
| 86 | sensorData = ReadTurbiditySensor (PORT_ADDR); |
| 87 | break; |
| 88 | default: |
| 89 | // error : unsupported sensor |
| 90 | break; |
| 91 | } |
| 92 | return sensorData; |
| 93 | } |
| 94 | |
| 95 | // Function to wait for a specified delay |
| 96 | void Wait (int delayTime) { |
| 97 | // Implementation to wait for the specified delay time |
| 98 | } |
6. Conclusions
Supplementary Materials
| Name | Type | Description |
| Educational_Platform_Project | KiCad Project Archive (.zip) | Main Board schematics and PCB layout |
| SW_Sensor_Board_V2_2_Expander | KiCad Project Archive (.zip) | Sensor Isolation Board schematics and PCB layout |
| Educational_Platform_Schematic_PDF | PDF (.pdf) | Exported schematic diagram of the main board PCB |
| Educational_Platform_PCB_Layout_PDF | PDF (.pdf) | Layers views of the Main board PCB layout |
| Sensor_Isolation_Schematic_PDF | PDF (.pdf) | Exported schematic diagram of the isolation PCB |
| Sensor_Isolation_PCB_Layout_PDF | PDF (.pdf) | Layers views of the Isolation board PCB layout |
| LoRaBoardSW | Firmware Code Archive (.zip) | LoRa Board Firmware, C++ (PlatformIO/VS Code) |
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
| ADC | Analog to Digital Converter |
| DO | Dissolved Oxygen |
| FOSH | Free and Open-source Hardware |
| GPIO | General Purpose Input Output |
| GPS | Global Positioning System |
| I2C | Inter Integrated Circuit |
| IMU | Inertial Measurement Unit |
| I/O | Input/Output |
| JST | Japan Solderless Terminal |
| LoRa | Long Range |
| MCU | Micro Controller Unit |
| PCB | Printed Circuit Board |
| PWM | Pulse Width Modulation |
| SCL | Serial Clock Line (I2C protocol) |
| SDA | Serial Data Line (I2C protocol) |
| STEM | Science, Technology, Engineering and Mathematics |
| UART | Universal Asynchronous Receiver and Transmitter |
| USB | Universal Serial Bus |
| VPCC | Voltage Proportional Charge Control |
References
- Quevy, Q.; Lamrini, M.; Chkouri, M.; Cornetta, G.; Touhafi, A.; Campo, A. Open Sensing System for Long Term, Low Cost Water Quality Monitoring. IEEE Open J. Ind. Electron. Soc. 2023, 4, 24–71. [Google Scholar] [CrossRef]
- Manoj, M.; Kumar, V.D.; Arif, M.; Bulai, E.-R.; Bulai, P.; Geman, O. State of the art techniques for water quality monitoring systems for fish ponds using IoT and underwater sensors: A review. Sensors 2022, 4, 2088. [Google Scholar] [CrossRef] [PubMed]
- Tsai, K.-L.; Chen, L.-W.; Yang, L.-J.; Shiu, H.-J.; Chen, H.-W. IoT based smart aquaculture system with automatic aerating and water quality monitoring. J. Internet Technol. 2022, 23, 177–184. [Google Scholar]
- Sun, X.; Zhang, Y.; Shi, K.; Zhang, Y.; Li, N.; Wang, W.; Huang, X.; Qin, B. Monitoring water quality using proximal remote sensing technology. Sci. Total Environ. 2022, 803, 149805. [Google Scholar] [CrossRef] [PubMed]
- Ryu, J.H. UAS-based real-time water quality monitoring, sampling, and visualization platform (UASWQP). HardwareX 2022, 11, e00277. [Google Scholar] [CrossRef] [PubMed]
- Dunbabin, M.; Grinham, A.; Udy, J. An autonomous surface vehicle for water quality monitoring. In Proceedings of the Australasian Conference on Robotics and Automation (ACRA), Sidney, Australia, 2–4 December 2009; pp. 2–4. [Google Scholar]
- Gholizadeh, M.H.; Melesse, A.M.; Reddi, L. A comprehensive review on water quality parameters estimation using remote sensing techniques. Sensors 2016, 16, 1298. [Google Scholar] [CrossRef] [PubMed]
- Gupta, S.; Kohli, M.; Kumar, R.; Bandral, S. IoT based underwater robot for water quality monitoring. IOP Conf. Ser. Mater. Sci. Eng. 2021, 1033, 012013. [Google Scholar] [CrossRef]
- Heradio, R.; Chacon, J.; Vargas, H.; Galan, D.; Saenz, J.; De La Torre, L.; Dormido, S. Open-Source Hardware in Education: A Systematic Mapping Study. IEEE Access 2018, 6, 72094–72103. [Google Scholar] [CrossRef]
- Rowe, A.A.; Bonham, A.J.; White, R.J.; Zimmer, M.P.; Yadgar, R.J.; Hobza, T.M.; Honea, J.W.; Ben-Yaacov, I.; Plaxco, K.W. Cheapstat: An open-source, “do-it-yourself” potentiostat for analytical and educational applications. PLoS ONE 2011, 6, e23783. [Google Scholar] [CrossRef] [PubMed]
- Saari, M.; bin Baharudin, A.M.; Hyrynsalmi, S. Survey of prototyping solutions utilizing Raspberry Pi. In Proceedings of the 2017 40th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), Opatija, Croatia, 22 May 2017; pp. 991–994. [Google Scholar]
- Sarikand, J.; Kymissis, I. Labkits using the arduino prototyping platform. In Proceedings of the 2010 IEEE Frontiers in Education Conference (FIE), Arlington, VA, USA, 27 October 2010. T3C-1–T3C-5. [Google Scholar]
- Araujo, A.; Portugal, D.; Couceiro, M.S.; Rocha, R.P. Integrating arduino-based educational mobile robots in ROS. J. Intell. Robot. Syst. 2015, 77, 281–298. [Google Scholar] [CrossRef]
- Zachariadou, K.; Yiasemides, K.; Trougkakos, N. A low-cost computer-controlled Arduino-based educational laboratory system for teaching the fundamentals of photovoltaic cells. Eur. J. Phys. 2013, 33, 1599. [Google Scholar] [CrossRef]
- Zhang, C.; Anzalone, N.; Faria, R.; Pearce, J. Open-Source 3D-Printable Optics Equipment. PLoS ONE 2013, 8, e59840. [Google Scholar] [CrossRef] [PubMed]
- Baden, T.; Chagas, A.M.; Gage, G.; Marzullo, T.; Prieto-Godino, L.L.; Euler, T. Open Labware: 3-D Printing Your Own Lab Equipment. PLoS Biol. 2015, 13, e1002086. [Google Scholar] [CrossRef] [PubMed]
- Schelly, C.; Anzalone, G.; Wijnen, B.; Pearce, J.M. Open-source 3-D printing technologies for education: Bringing additive manufacturing to the classroom. J. Vis. Lang. Comput. 2015, 28, 226–237. [Google Scholar] [CrossRef]
- Chronis, C.; Varlamis, I. FOSSBot: An Open Source and Open Design Educational Robot. Electronics 2022, 11, 2606. [Google Scholar] [CrossRef]
- Amaral, F.; Matia, E.; Júnior, A.O.; Zorawski, M.; Queiroz, J.; Leitão, P. A learning module to design printed circuit boards for IoT devices. In Proceedings of the 5th Workshop on Disruptive Information and Communication Technologies for Innovation and Digital Transformation, Valladolid, Spain, 12 September 2022; pp. 13–29. [Google Scholar]
- Blöschl, G.; Bierkens, M.F.; Chambel, A.; Cudennec, C.; Destouni, G.; Fiori, A.; Kirchner, J.W.; McDonnell, J.J.; Savenije, H.H.; Sivapalan, M.; et al. Twenty-three unsolved problems in hydrology (UPH)—A community perspective. Hydrol. Sci. J. 2019, 64, 1141–1158. [Google Scholar] [CrossRef]
- Pugh, K.J.; Linnenbrink-Garcia, L.; Koskey, K.L.; Stewart, V.C.; Manzey, C. Motivation, learning, and transformative experience: A study of deep engagement in science. Sci. Ed. 2010, 94, 1–28. [Google Scholar] [CrossRef]
- Pugh, K.J.; Bergstrom, C.; Spencer, B. Profiles of transformative engagement identification, description, and relation to learning and instruction. Sci. Educ. 2010, 101, 369–398. [Google Scholar] [CrossRef]









| Design File | Function |
|---|---|
| MCU.sch | Computing module |
| SENSORS.sch | Main Board sensor module (e.g., IMU) |
| SW_Sensor_Board_V2_2_Expander.sch | Sensor Isolation Board (water quality sensors) |
| LORAGPS.sch | Communication module |
| PWR.sch | Power distribution module |
| USBPWRD.sch, MAX3232.sch | Auxiliary component module |
| Bill of Materials | ||||
|---|---|---|---|---|
| Quantity | Component | Source of Materials | Material Type | Cost (EUR) per Unit |
| 35 | 10 μF Capacitors (C_1206_3216Metric) | Mouser | Capacitor | 0.11 |
| 83 | 100 nF Capacitors (C_0603_1608Metric) | Farnell | Capacitor | 0.07 |
| 76 | 1 μF Capacitors (C_0603_1608Metric) | Mouser | Capacitor | 0.08 |
| 20 | 10k Resistors (R_0603_1608Metric) | Farnell | Resistor | 0.12 |
| 27 | TS5A3159ADBVR IC (SOT-23-6) | Mouser | IC | 0.63 |
| 8 | FDN340P Transistors (SOT-23) | Farnell | Transistor | 0.32 |
| 1 | Conn_01 ×05_Male Connector | Mouser | Connector | 0.89 |
| 3 | 20k Resistors (R_0603_1608Metric) | Farnell | Resistor | 0.03 |
| 8 | Mounting Holes 3.2 mm (MountingHole) | Mouser | Mechanical | 0.23 |
| 14 | 4k7 Resistors (R_0603_1608Metric) | Farnell | Resistor | 0.05 |
| 1 | LM358 IC (SOIC-8) | Mouser | IC | 1.15 |
| 11 | AP22804AW5 IC (SOT-23-5) | Farnell | IC | 1.48 |
| 2 | PCA9557PW IC (TSSOP-16) | Mouser | IC | 3.05 |
| 3 | ADM3260 IC (SSOP-20) | Farnell | IC | 2.28 |
| 2 | Solder Jumper 2 Open | Mouser | Jumper | 0.15 |
| 1 | MCP23008-xSS IC (SSOP-20) | Farnell | IC | 4.5 |
| 2 | 22 μF Capacitors (Radial_D5.0 mm) | Mouser | Capacitor | 0.23 |
| 9 | LEDs (LED_0603_1608Metric) | Farnell | LED | 0.11 |
| 1 | MCP3426-xMC IC (DFN-8) | Farnell | IC | 5.4 |
| 4 | Solder Jumper 3 Open | Mouser | Jumper | 0.06 |
| 4 | SMA Coaxial Connectors | Farnell | Connector | 2.25 |
| 1 | Conn_01 × 03 Male Connector | Mouser | Connector | 2.1 |
| 6 | 10 μF Capacitors (C_1206_3216Metric) | Mouser | Capacitor | 0.11 |
| 40 | 1 μF Capacitors (C_0603_1608Metric) | Mouser | Capacitor | 0.08 |
| 6 | AP22804AW5 IC (SOT-23-5) | Farnell | IC | 1.48 |
| 3 | Polyfuse Small Fuses (Fuse_1206) | Mouser | Fuse | 0.15 |
| 4 | Test Points (Loop D2.54 mm) | Farnell | Test Point | 0.2 |
| 1 | CP2102N-Axx-xQFN24 IC (QFN-24) | Mouser | IC | 4.6 |
| 3 | FDN5632N Transistors (SOT-23-3) | Farnell | Transistor | 0.35 |
| 3 | Push Switches (SW_SPST_EVQP2) | Mouser | Switch | 0.3 |
| 1 | MCP73871-2AA IC (QFN-20) | Mouser | IC | 3.2 |
| 7 | 470 Resistors (R_0603_1608Metric) | Farnell | Resistor | 0.06 |
| 2 | 4K7 Resistors (R_0603_1608Metric) | Mouser | Resistor | 0.05 |
| 2 | 01 × 05 Male Connectors (PinSocket) | Mouser | Connector | 0.95 |
| 1 | USB C Receptacle (GCT USB4085) | Farnell | Connector | 3 |
| 16 | 10k Resistors (R_0603_1608Metric) | Mouser | Resistor | 0.05 |
| 1 | ESP32-WROOM-32D Module | Farnell | Module | 8.5 |
| 1 | 01×09 Male Connector (PinSocket) | Mouser | Connector | 1.1 |
| 17 | TS5A3159ADBVR IC (SOT-23-6) | Farnell | IC | 0.63 |
| 2 | MMBT2222A Transistors (SOT-23-3) | Farnell | Transistor | 0.25 |
| 1 | 2k Resistor (R_0603_1608Metric) | Mouser | Resistor | 0.12 |
| 1 | 270k Resistor (R_0603_1608Metric) | Farnell | Resistor | 0.1 |
| 1 | MAX3232 IC (SSOP-16) | Mouser | IC | 3.1 |
| 2 | 5k11 Resistors (R_0603_1608Metric) | Farnell | Resistor | 0.07 |
| 1 | 01×10 Male Connector (PinSocket) | Mouser | Connector | 1.15 |
| 1 | MAX16054 IC (SOT-23-6) | Farnell | IC | 1.8 |
| 1 | 100K Resistor (R_0603_1608Metric) | Mouser | Resistor | 0.06 |
| 1 | ADS1013IDGS IC (TSSOP-10) | Mouser | IC | 4 |
| 1 | ProSignal ABI-010-RC Speaker | Farnell | Speaker | 2.45 |
| 1 | 01×04 Male Connector (PinSocket) | Mouser | Connector | 0.75 |
| 1 | FDN306P Transistor (SOT-23-3) | Mouser | Transistor | 0.3 |
| 1 | 16k Resistor (R_0603_1608Metric) | Farnell | Resistor | 0.12 |
| 1 | 2.2 μF Capacitor (C_0603_1608Metric) | Mouser | Capacitor | 0.12 |
| 1 | SHT40-AD1B-R2 IC (DFN-4-NO-e,p) | Farnell | Sensor IC | 3.75 |
| 2 | 4.7 μF Capacitors (C_1206_3216Metric) | Farnell | Capacitor | 0.2 |
| 1 | MBR120VLSFT1G Diode (SOD-123F) | Mouser | Diode | 0.28 |
| 2 | 01×02 Male Connectors (JST_XH) | Farnell | Connector | 1.1 |
| 1 | L (Wuerth MAPI-4020 Inductor) | Mouser | Inductor | 1.75 |
| 1 | 22k1 Resistor (R_0603_1608Metric) | Mouser | Resistor | 0.1 |
| 1 | 100 nF Capacitor (C_1206_3216Metric) | Farnell | Capacitor | 0.12 |
| 1 | 47k5 Resistor (R_0603_1608Metric) | Mouser | Resistor | 0.13 |
| 1 | USBLC6-2SC6 IC (SOT-23-6) | Farnell | IC | 1.65 |
| 4 | Solder Jumper 3 Open | Mouser | Jumper | 0.24 |
| 1 | SW Reed Switch (590451T000) | Mouser | Switch | 0.5 |
| 1 | Conn_02×03 Counter Clockwise Connector | Farnell | Connector | 2 |
| 1 | ENV-50-pH | Atlas Scientific | Probe | 319.99 |
| 1 | pH-OEM | Atlas Scientific | Sensor IC | 9.99 |
| 1 | ENV-50-DO | Atlas Scientific | Probe | 329.99 |
| 1 | DO-OEM | Atlas Scientific | Sensor IC | 9.99 |
| 1 | EC-OEM | Atlas Scientific | Sensor IC | 9.99 |
| 1 | ENV-40-EC-K10 | Atlas Scientific | Probe | 182.99 |
| 1 | RTD-2-OEM | Atlas Scientific | Sensor IC | 9.99 |
| 1 | MPU-9250 | Adafruit | Sensor IC | 18 |
| 1 | RFM95W LoRa Radio Transceiver Breakout | Adafruit | Sensor IC | 19.95 |
| 1 | U-blox NEO-6M GPS Receiver Module | U-blox | Sensor IC | 28.59 |
| Module | Board Connector | Fuctionality |
|---|---|---|
| Computing | K4, K9 | Limit switch |
| K5 | LED strip control | |
| K6, K7, K8 | I2C Rangers and/or other I2C devices | |
| K14, K16, K18 | Motor drivers | |
| Sensor | K10, K11, K13, K17 | I2C sensors |
| K12 | Turbidity sensor | |
| Communication | K15 | Modem |
| MOD1 | LoRa board | |
| MOD2 | GPS board |
| Device | Type | Range | Resolution | Temperature Resistance | Power Rating |
|---|---|---|---|---|---|
| ENV-50-PH | pH | 0–14 | 10−3 | 1–99 °C | 115.5 mW |
| PT-1000 | Temperature | −200–850 °C | 0.15 °C | 1–99 °C | 46.2 mW |
| ENV-40-EC-K0.1 | EC | 7 × 10−2–5 × 104 μS/cm | 2% | 1–110 °C | 115.5 mW |
| ENV-40-DOX | DO | 0–100 mg/L | 0.05 mg/L | 1–60 °C | 115.5 mW |
| SEN0189 | Turbidity | 0–6 × 103 mg/L | 6 mg/L | −10–90 °C | 200 mW |
| Set-Up | Average Current (mA) | Peak Current (mA) | Sampling Rate (kHz) |
|---|---|---|---|
| No sensors | 0.923 | 107.2 | 1 |
| With Sensors | 1.83 | 107.4 | 10 |
| Deep sleep | 0.014 | 0.113 | 1 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Cornetta, G.; Fatimi, S.; Kochaji, A.; Moussa, O.; Almaleky, M.S.; Lamrini, M.; Touhafi, A. An Open-Source Educational Platform for Multi-Sensor Environmental Monitoring Applications. Hardware 2025, 3, 13. https://doi.org/10.3390/hardware3040013
Cornetta G, Fatimi S, Kochaji A, Moussa O, Almaleky MS, Lamrini M, Touhafi A. An Open-Source Educational Platform for Multi-Sensor Environmental Monitoring Applications. Hardware. 2025; 3(4):13. https://doi.org/10.3390/hardware3040013
Chicago/Turabian StyleCornetta, Gianluca, Souhail Fatimi, Arfan Kochaji, Omar Moussa, Majed Saleh Almaleky, Mimoun Lamrini, and Abdellah Touhafi. 2025. "An Open-Source Educational Platform for Multi-Sensor Environmental Monitoring Applications" Hardware 3, no. 4: 13. https://doi.org/10.3390/hardware3040013
APA StyleCornetta, G., Fatimi, S., Kochaji, A., Moussa, O., Almaleky, M. S., Lamrini, M., & Touhafi, A. (2025). An Open-Source Educational Platform for Multi-Sensor Environmental Monitoring Applications. Hardware, 3(4), 13. https://doi.org/10.3390/hardware3040013

