Phecda is a device that allows measuring different electrochemical variables such as pH, ORP, temperature, dissolved oxygen and electroconductivity, based on sensors developed by Atlas Scientific. A on board ESP32 microcontroller manages data acquisition and sending tasks. It count with an rfm95 LoRa module, ideal for integration with LoRa or LoRaWan networks.
Phecda can adapt to a wide variety of BT, WiFi or LoRa based IoT applications. A micro SD adapter and an onboard RTC implement data logger functionality for offline information collection. An OLED screen allows you to view the data of interest in real time.
IoT,Ph, Environmental measurement, LoRa, AtlasScientific, datalogger.
| Licenses | OSHW certification |
|---|---|
![]() |
![]() |
The PCB was designed in KiCad7 stable realease and additional components from the official iowLabs library.
The pcb can be powered via USB or through the screw terminal block J7 connector. Jumper J2 must be shorted to enable power on the board. Or it can connect to an external On/OFF button.
To have compatibility with different probes, the board has SMA connectors J13 to J17 or alternatively the terminal blocks J10, J11 and J12.
The board is based on an ESP32 microcontroller.
- USB communication through IC CH340
- Lora rfm95 module.
- microSD socket.
- RV8803 RTC module.
- 4 generic EZO AtlasScientific Modules.
- 4 AtlasScientific in line voltage isolators.
- 1 EZO RTC Module.
- OLED display
| Top view | Bottom view |
|---|---|
![]() |
![]() |
The bill of materials with respective references to LCSC part numbers can be found at the following link.
The following table presents a list of references for the probes and reading electronics along with their respective links. These components are left only as a reference since they depend on the application and the type of variables that you want to measure.
| Components | Quantity | Description | link |
|---|---|---|---|
| industrial PH probe | 1 | industrial PH, ORP y RTC probe | AtlasScientific oficial website |
| OD probe | 1 | Lab Grade Dissolved Oxygen Probe | AtlasScientific oficial website |
| EC probe | 1 | Conductivity Probe K 0.1 | AtlasScientific oficial website |
| Ezo ph | 1 | Readout para la sonda de EC | AtlasScientific oficial website |
| Ezo orp | 1 | Readout para la sonda de ORP | AtlasScientific oficial website |
| Ezo RTC | 1 | Readout para la sonda de RTC | AtlasScientific oficial website |
| Ezo OD | 1 | Readout para la sonda de OD | AtlasScientific oficial website |
| Ezo EC | 1 | Readout para la sonda de EC | AtlasScientific oficial website |
| Ezo IVI | 4 | Basic EZO Inline Voltage Isolator | AtlasScientific oficial website |
For versions with laboratory applications or controlled climate conditions, a printable case was designed in PLA or ABS using Fusion360.
The design is a simple case composed of two parts that allows the OLED screen to be incorporated and exposes the SMA connectors for the probes, protecting the internal electronics.
| Cover | Base |
|---|---|
![]() |
![]() |
To power the device, the design consider a powerbank located at the bottom. The assembly of the two pieces is carried out using 3 M3 screws that are screwed from the bottom of the base.
Editable files and display plans can be found in directorio.
The PCB design allows it to fit commercial project enclosures with IP65 standards or higher for outdoor or harsh weather applications.
The developed firmware represents a collection of libraries and drivers for the board's dependencies.
This collection of useful functions is implemented in the iowPhecda library. However, due to the flexibility of the design, it is possible to load a wide variety of code based on other supported libraries.
The firmware was developed using PlatformIO; however, usage examples were generated for [Arduino IDE] (https://www.arduino.cc/en/software).
| Folder | Description |
|---|---|
| firmware/phecda_project | The complete project compiled in its last version. |
| firmware/examples | Arduino compatible example codes . |
| firmware/src | The source files of the library made for phecda. |
Except for the uSD_iow library which is available in the official iowlabs repository, all other libraries used are available from the official Arduino and PlatformIO library manager.
- Arduino json : bblanchon/ArduinoJson @ ^6.18.5
- Ezo i2c : mulmer89/EZO I2C Sensors @ 2.0.0+640de15
- RTC : sparkfun/SparkFun Qwiic RTC RV8803 Arduino Library @ ^1.2.8
- OLED : adafruit/Adafruit SH110X @ ^2.1.8
- OLED graphic driver: adafruit/Adafruit GFX Library @ ^1.11.5
- MQTT : knolleary/PubSubClient@^2.8
- LoRa : sandeepmistry/LoRa @ ^0.8.0
| File | Description |
|---|---|
| simple_version.ino | Collect the data from the pH, ORP and temperature sensors, and displays it on the screen. Print the collected data in json format through the serial monitor. |
| low_energy_version.ino | Adds a low-power mode to the simple_version code |
| lora_version.ino | Activate the LoRa module and send a message in json format. |
| mqtt_version.ino | This is an example of reading the data and sending it via MQTT to a pre-established broker. |
- void readAtlasSensors( bool ph_s,bool orp_s,bool temp_s,bool od_s,bool ec_s);
- uint8_t begin(void);
- void readSensors(void);
- String pubData(void);
- void activatePH(void);
- void activateORP(void);
- void activateTEMP(void);
- void activateEC(void);
- void activateOD(void);
- void activateLoRa(void);
- void activateAll(void);
- void iowLogo(void);
- void showLogo(void);
- void showStatus(void);
- void showData(long time_interval);
- void saveData(void);
- void phCal(uint8_t val);
- void phCalClear(void);









