This is ORP OXIDATION-REDUCTION POTENTIAL probe sensor, Oxidation is the loss of pf electrons and reductions and gain electrons. The probe are represented in millivolts can be positive or negative, the same like pH that measures hydrogen ION activity in a liquid solutions indicating its acidity/alkalinity for more detail please refer to this link, however compare to ORP Oxidation-reduction potential measures electrons activity in a liquid. The ORP data outputs represent how strongly electrons are transferred to or from substances in a liquid. Note: reading using ORP does indicate the amount of electrons available for allocations. This sensor is applicable for laboratory experiments and quality control.
- Please refer to this link for more details about pH (Potential of Hydrogen) https://en.wikipedia.org/wiki/PH
- Please refer to this link for more details about ORP (Oxidation-reduction Potential) https://en.wikipedia.org/wiki/Reduction_potential
Component Required
- Arduino Microcontroller, TenssyDuino, ESP8266 12, 12E, ESP8266 NodeMCU, ESPDuino, ATMEGA328 16/12, ATMEGA32u4 16/8/ MHz, ESP8266, ATMEGA250 16 MHz, ATSAM3x8E, ATSAM21D, ATTINY85 16/8 MHz (Note: The Diagram below is using NANO. (please refer to the respective pin-outs)
- ORP EZO Module (From AtlasScientfic)
- pH/ORP Probe
- pH/ORP BNC Connector (Optional)
- Jumper Wire / DuPont Wire
- Solder Less Breadboard
Wiring Guide
Source Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
/* ================================================ 14CORE | OXIDATION REDUCTION POTENTIAL TEST CODE **************************************************** */ #include <SoftwareSerial.h> #define ERX 2 //Set RX to ESP8266/NodeMCU #define ETX 3 //Set TX to ESP8266/NodeMCU #define ARX 0 //Set RX to Arduino MCU #define ATX 1 //Set TX to Arduino MCU //If Define ESP8266 #ifdef ESP8266 SoftwareSerial ESerial(ERX, ETX); //If Define Arduino Microcontroller #else SoftwareSerial ASerial(ARX, ATX); #endif String inputdata = ""; String senseString = ""; boolean inputStringFinal = false; boolean senseStringFinal = false; float device; void setup(){ inputdata.reserve(10); senseString.reserve(30); #ifdef ESP8266 ESerial.begin(115200); Serial.println(" 14CORE | ESP ORP OXIDATION TEST "); Serial.println("=================================="); Serial.println("ESP8266 Started......"); #else ASerial.begin(9600); Serial.println(" 14CORE | ARDUINO ORP OXIDATION TEST "); Serial.println("=================================="); Serial.println("Arduino MCU Started......"); #endif } void sEvent(){ inputdata = Serial.readStringUntil(13); inputStringFinal = true; } void loop(){ if (inputStringFinal == true){ ESerial.print(inputdata); ESerial.print('\r'); inputdata = ""; inputStringFinal = false; } #ifdef ESP8266 if (ESerial.available()> 0) { char inchar = (char)ESerial.read(); senseString += inchar; if (inchar == '\r') { senseStringFinal = true; } } if (senseStringFinal == true){ ESerial.println(senseString); if (isdigit(senseString[0])) { device = senseString.toFloat(); if (device >= 500.0){ ESerial.println("HIGH"); } if (device <= 499.9){ ESerial.println("LOW"); } } } #else if (ASerial.available () > 0 ){ senseString += inchar; if (inchar == '\r') { senseStringFinal = true; } } if (senseStringFinal == true){ ASerial.println(senseString); if (isdigit(senseString[0])) { device = senseString.toFloat(); if (device >= 500.0){ ASerial.println("HIGH"); } if (device <= 499.9){ ASerial.println("LOW"); } } senseString = ""; senseStringFinal = false; } #endif delay(10); } |
Downloads
- Download ORP EZO Datasheet | PDF