Hello everyone,
I am a newbie to some of the world of sensors and IoT for the arduino, and I am stumped.
I am trying an IoT Gardening project, ESP8266-ESP01 and I am using a simple soil sensor , DHt11 for temperature and humidity, and a Photoresistor for light readings. I am outputting it to Thinkspeak to create a digital dashboard.
I am struggling to get my soil sensor to change readings. It is in A0.
I have calibrated my soil sensor with the upper and lower values. In previous projects I have gotten the soil sensor to take accurate readings witout the wifi unit.
Also, I can get the DHT11 to read/write display in my Serial port, and on my web dashboard no problem. It is the soil sensor that I cannot get to change readings.
I am stumped. Does anyone have any suggestions to get the soil sensor to change/read correctly?
Any assistance anyone has would be greatly appreciated!
My code is here:
+++++++++++++++++++++++++++++++++++++++++++++++
#include <BearSSLHelpers.h>
#include <CertStoreBearSSL.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiGratuitous.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiClientSecureAxTLS.h>
#include <WiFiClientSecureBearSSL.h>
#include <WiFiServer.h>
#include <WiFiServerSecure.h>
#include <WiFiServerSecureAxTLS.h>
#include <WiFiServerSecureBearSSL.h>
#include <WiFiUdp.h>
#include <dummy.h>
#include <DHT.h>
#define DHTPIN 2 //DHT11 is connected to GPIO Pin 2
int sensor_pin = A0;
int output_value;
String apiKey = "________________"; // Enter your Write API key from ThingSpeak
const char* ssid = "________________"; // Enter your WiFi Network's SSID
const char* pass = "_______________"; // Enter your WiFi Network's Password
const char* server = "api.thingspeak.com";
float humi;
float temp;
DHT dht(DHTPIN, DHT11);
WiFiClient client;
void setup()
{
Serial.begin(9600);
delay(10);
dht.begin();
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print("*");
}
Serial.println("");
Serial.println("***WiFi connected***");
}
void loop()
{
humi = dht.readHumidity();
temp = dht.readTemperature();
output_value = analogRead(sensor_pin);
output_value = map(output_value,1023,165,0,100);
if (client.connect(server,80)) // "184.106.153.149" or api.thingspeak.com
{
String sendData = apiKey+"&field1="+String(temp)+"&field2="+String(humi)+"&field3="+String(output_value)+"\r\n\r\n";
//Serial.println(sendData);
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(sendData.length());
client.print("\n\n");
client.print(sendData);
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print(" deg C. Humidity: ");
Serial.print(humi);
Serial.print(" Soil Moisture: ");
Serial.print(output_value);
Serial.println(" Connecting to Thingspeak.");
}
client.stop();
Serial.println("Sending....");
delay(10000);
}
Moderator edit:
</mark> <mark>[code]</mark> <mark>
</mark> <mark>[/code]</mark> <mark>
tags added.