Add a waterproof temperature sensor ds18b20

I have not found (“Blynk community”) the code for the operation of the DS18B20 sensor (waterproof), using “arduino uno” and Ethernet shield W5100.
I want to create a sensor for plants which measures the air temperature and relative humidity, in addition to soil temperature and soil moisture.
At the moment I have the code working for DHT22 (T ° and RH), and the soil moisture sensor, but I can not add the DS18B20 sensor.
If someone could help me appreciate it.

Deputy code that I possess, photography water resistant sensor, and the code of this sensor for operation.

#include "DHT.h" 
#define BLYNK_PRINT Serial 
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#define DHTPIN 2 
#define DHTTYPE DHT22  
DHT dht(DHTPIN, DHTTYPE); 
#include <SimpleTimer.h>
SimpleTimer timer;

int sensorPin = A0;
int sensorValue = 0;

char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxx";
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth);
  timer.setInterval(2000, sendDHT);
}

void sendDHT()
{
//Read the Temp and Humidity from DHT
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  int hum = (int) h;
  int tem = (int) t;
  int sensorValue = analogRead(A0);
   
  
//Write values to V04 and V05
  Blynk.virtualWrite(4, hum);
  Blynk.virtualWrite(5, tem);
  Blynk.virtualWrite(6, sensorValue);
  Serial.println(sensorValue); 
 
}
void loop()

{
  Blynk.run();
  timer.run();
}

Picture of the waterproof sensor (T°)

https://www.google.cl/imgres?imgurl=http%3A%2F%2Fwww.techmake.com%2Fmedia%2Fcatalog%2Fproduct%2Fcache%2F1%2Fimage%2F650x%2F040ec09b1e35df139433887a97daa66f%2Fs%2Fe%2Fsentem00186_01.jpg&imgrefurl=http%3A%2F%2Fwww.techmake.com%2Fsensor-de-temperatura-a-prueba-de-agua-ds18b20.html&docid=AVb5HvFOkeyZ6M&tbnid=sbg2HuMGFWpwyM%3A&w=600&h=600&bih=702&biw=1364&ved=0ahUKEwivn83pxLXPAhVJUZAKHXYqAZQQMwhBKBAwEA&iact=mrc&uact=8

and the Code of this sensor that i can´t add

#include <OneWire.h> 
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
OneWire ds(DS18S20_Pin); // on digital pin 2

void setup(void) {
 Serial.begin(9600);
}

void loop(void) {
 float temperature = getTemp();
 Serial.println(temperature);
 
 delay(100); //just here to slow down the output so it is easier to read
}
float getTemp(){
 //returns the temperature from one DS18S20 in DEG Celsius
 byte data[12];
 byte addr[8];

 if ( !ds.search(addr)) {
   //no more sensors on chain, reset search
   ds.reset_search();
   return -1000;
 }
 if ( OneWire::crc8( addr, 7) != addr[7]) {
   Serial.println("CRC is not valid!");
   return -1000;
 }
 if ( addr[0] != 0x10 && addr[0] != 0x28) {
   Serial.print("Device is not recognized");
   return -1000;
 }
 ds.reset();
 ds.select(addr);
 ds.write(0x44,1); // start conversion, with parasite power on at the end

 byte present = ds.reset();
 ds.select(addr);  
 ds.write(0xBE); // Read Scratchpad

 for (int i = 0; i < 9; i++) { // we need 9 bytes
  data[i] = ds.read();
 }
 
 ds.reset_search();
 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB); //using two's compliment
 float TemperatureSum = tempRead / 16;
 return TemperatureSum;
}

Thanks

I use the DS18B20 regularly with Blynk.

This link should get you going.

SOLVED
i share the code…
Thanks

#include "DHT.h" 
#define BLYNK_PRINT Serial // Enables Serial Monitor
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#define DHTPIN 2 // The pin you connect to
#define DHTTYPE DHT22   // DHT 11 Change this if you have a DHT22
DHT dht(DHTPIN, DHTTYPE); // Change this to 
#include <SimpleTimer.h>
#include <OneWire.h> 
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 5

char tmpstring[10];
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

SimpleTimer timer;

int sensorPin = A0;
int sensorValue = 0;

char auth[] = "xxxxxxxxxxxxxxxxxxxxxx";
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth);
    timer.setInterval(2000, sendDHT);
    sensors.begin(); 
}

void sendDHT()
{
//Read the Temp and Humidity from DHT
  float h = dht.readHumidity();
  float t = dht.readTemperature();
    
  int hum = (int) h;
  int tem = (int) t;
  int sensorValue = analogRead(A0);
   
//Write values to V04 and V05
  Blynk.virtualWrite(4, hum);
  Blynk.virtualWrite(5, tem);
  Blynk.virtualWrite(6, sensorValue);
  
  Serial.println(sensorValue); 
 
  
  delay(200);
}

void loop()

{

  sensors.requestTemperatures(); 
  Serial.println("");
   
  Serial.print(sensors.getTempCByIndex(0)); 
  
  Blynk.virtualWrite(7, sensors.getTempCByIndex(0));
  
  Blynk.run();
  timer.run();
}
1 Like

Thanks for sharing your code. Moving forward you might want to move the DS18B20 stuff out of loop() like the DHT stuff.

this
Blynk.virtualWrite(7, sensors.getTempCByIndex(0));
in the loop() is a big Blynk no no.

Thanks

What sensors does this code have?

Blynk.virtualWrite(6, sensorValue);

and

Blynk.virtualWrite(7, sensors.getTempCByIndex(0));

What is it please explain

thank

Pete.