Cheaper alternative to Atlas Scientific?

Home Assistant automation projects, questions, etc. go here.
mike84
LED-Curious
LED-Curious
Reactions:
Posts: 16
Joined: Sun Jun 28, 2020 12:06 am
Location: Australia

i got one of those cheap Chinese ones off of ebay the black one not the blue one. they are ok if you don't want to put it into a tank with pumps. The circuit is not isolated so i was getting some bad pH drift when i tried to put into the tank for auto dosing.
Attachments
20200701_091953.jpg
saitama
LED-Curious
LED-Curious
Reactions:
Posts: 19
Joined: Fri May 29, 2020 6:02 pm

I just threw together a sensor using the dfrobot v2 ph kit (3.3v) and bought their 'pro' sensor. Using an ESP32, ADC1115 and esphome, it was easier than expected. I currently have it in my res with my pump and there is no drift. I just put it in, so I will keep you guys updated on how accurate it is over time. With that said, so far it's been surprisingly accurate.

Image

Image
jaysal
LED Enthusiast
LED Enthusiast
Reactions:
Posts: 75
Joined: Sat May 30, 2020 7:49 am

Looks great, keep us posted. I guess the question still remains if it's ok to leave in a reservoir for long periods of time?

Did it come with the case? Or is that custom?
saitama
LED-Curious
LED-Curious
Reactions:
Posts: 19
Joined: Fri May 29, 2020 6:02 pm

The case is just some generic project box I bought from Amazon.

With the industrial probe 'pro', you can leave it submerged for a year, with a recalibration at six months. Good enough for me.
User avatar
LEDG
Site Admin
Reactions:
Posts: 1599
Joined: Sun Jun 04, 2017 8:15 pm

That looks nice! Good work and keep us posted.
Want to Support the Site?

Use this Amazon referral link and any purchase you make within 24 hrs will earn LEDgardener a commission at no cost to you!
jaysal
LED Enthusiast
LED Enthusiast
Reactions:
Posts: 75
Joined: Sat May 30, 2020 7:49 am

Hey saitama,
How is the PH Meter holding up, I just read on their website that a user has been using this in their aquarium 24/7 for over a year now with great results.

Can you give us an update please?

Thanks
warmachine
LED-Curious
LED-Curious
Reactions:
Posts: 18
Joined: Wed Sep 02, 2020 3:48 am

I'd be interested in a cheaper E.C. and temp alternative. Atlas has really nice stuff but, I don't need .001 accuracy for temp and ec. Their PH board is one of the best. You can use probes from other companies. Industrial usually means it holds more liquid so, stays calibrated longer. Bigger is better for PH probes.
Baylos
LED-Curious
LED-Curious
Reactions:
Posts: 22
Joined: Sat Nov 07, 2020 11:49 am

Hello, I saw the LEDg video and started up my home assistance and hydroponic. Suddenly I ordered the DFROBOT SEN0169-V2 (industrial) probe for PH reading. I am trying now to create code for integration to hass/ESPHOME, but it looks difficult for now.

I found an example code for Arduino. I am checking now is there is a way to translate the code to yaml. It will take a while to read and understand ESPhome.

Code: Select all

#include "DFRobot_ESP_PH.h"
#include <EEPROM.h>

DFRobot_ESP_PH ph;
#define ESPADC 4096.0   //the esp Analog Digital Convertion value
#define ESPVOLTAGE 3300 //the esp voltage supply value
#define PH_PIN 35		//the esp gpio data pin number
float voltage, phValue, temperature = 25;

void setup()
{
	Serial.begin(115200);
	EEPROM.begin(32);//needed to permit storage of calibration value in eeprom
	ph.begin();
}

void loop()
{
	static unsigned long timepoint = millis();
	if (millis() - timepoint > 1000U) //time interval: 1s
	{
		timepoint = millis();
		//voltage = rawPinValue / esp32ADC * esp32Vin
		voltage = analogRead(PH_PIN) / ESPADC * ESPVOLTAGE; // read the voltage
		Serial.print("voltage:");
		Serial.println(voltage, 4);
		
		//temperature = readTemperature();  // read your temperature sensor to execute temperature compensation
		Serial.print("temperature:");
		Serial.print(temperature, 1);
		Serial.println("^C");

		phValue = ph.readPH(voltage, temperature); // convert voltage to pH with temperature compensation
		Serial.print("pH:");
		Serial.println(phValue, 4);
	}
	ph.calibration(voltage, temperature); // calibration process by Serail CMD
}

float readTemperature()
{
	//add your code here to get the temperature from your temperature sensor
}

It run at the moment with the following code:

Code: Select all

sensor:
  - platform: adc
    pin: GPIO34
    name: "PH"
    update_interval: 1s
I need to see how to use the calibration function.


How did you set it up?


Thanks a lot

B
User avatar
LEDG
Site Admin
Reactions:
Posts: 1599
Joined: Sun Jun 04, 2017 8:15 pm

Baylos wrote:
Sat Nov 07, 2020 12:01 pm
Hello, I saw the LEDg video and started up my home assistance and hydroponic. Suddenly I ordered the DFROBOT SEN0169-V2 (industrial) probe for PH reading. I am trying now to create code for integration to hass/ESPHOME, but it looks difficult for now.

I found an example code for Arduino. I am checking now is there is a way to translate the code to yaml. It will take a while to read and understand ESPhome.

Code: Select all

#include "DFRobot_ESP_PH.h"
#include <EEPROM.h>

DFRobot_ESP_PH ph;
#define ESPADC 4096.0   //the esp Analog Digital Convertion value
#define ESPVOLTAGE 3300 //the esp voltage supply value
#define PH_PIN 35		//the esp gpio data pin number
float voltage, phValue, temperature = 25;

void setup()
{
	Serial.begin(115200);
	EEPROM.begin(32);//needed to permit storage of calibration value in eeprom
	ph.begin();
}

void loop()
{
	static unsigned long timepoint = millis();
	if (millis() - timepoint > 1000U) //time interval: 1s
	{
		timepoint = millis();
		//voltage = rawPinValue / esp32ADC * esp32Vin
		voltage = analogRead(PH_PIN) / ESPADC * ESPVOLTAGE; // read the voltage
		Serial.print("voltage:");
		Serial.println(voltage, 4);
		
		//temperature = readTemperature();  // read your temperature sensor to execute temperature compensation
		Serial.print("temperature:");
		Serial.print(temperature, 1);
		Serial.println("^C");

		phValue = ph.readPH(voltage, temperature); // convert voltage to pH with temperature compensation
		Serial.print("pH:");
		Serial.println(phValue, 4);
	}
	ph.calibration(voltage, temperature); // calibration process by Serail CMD
}

float readTemperature()
{
	//add your code here to get the temperature from your temperature sensor
}

It run at the moment with the following code:

Code: Select all

sensor:
  - platform: adc
    pin: GPIO34
    name: "PH"
    update_interval: 1s
I need to see how to use the calibration function.


How did you set it up?


Thanks a lot

B
Perhaps you could create a custom sensor in ESPhome?

https://esphome.io/components/sensor/custom.html
Want to Support the Site?

Use this Amazon referral link and any purchase you make within 24 hrs will earn LEDgardener a commission at no cost to you!
Baylos
LED-Curious
LED-Curious
Reactions:
Posts: 22
Joined: Sat Nov 07, 2020 11:49 am

Hi LEDG,

Thanks. I checked my options with current components and faced that the ADC from the ESP32 is not sufficient for the ph sensor. Therefore I purchased ADS1115. I hope to find some time on the weekend to further solder and put everything together again.


Best Regards

B
Post Reply