Post DHT 11 Data with Push Button
In this project, you will use the Antares Shield Workshop on the ESP8266 module. In this Antares Shield Workshop, there are temperature, humidity (DHT11), relay, LED and push button sensors. You will monitor the temperature and humidity with a push button as a trigger sender.

Prerequisites
The materials required follow the General Prerequisites on the previous page. If you have not prepared the requirements on that page, then you can visit the following page.
General Prerequisites ESP8266 Wi-FiThe additional materials specific to this project are as follows.
Shield Workshop Antares
Antares ESP HTTP Library. This documentation uses the Antares ESP HTTP library version 1.4.0.
DHT11 Library. This documentation uses DHT11 Sensor Library version 1.4.4.
Follow These Steps
1. Launch the Arduino IDE application
2. Opening Sample Programme
Here is the programme code of the example POST_DATA_DHT11_PUSHBUTTON
#include <AntaresESPHTTP.h> // Include the AntaresESP2866HTTP library for connecting to the Antares platform
#include "DHT.h" // Include the DHT sensor library
#define DHTPIN D1 // Define the pin number for the DHT sensor (connected to pin D1)
#define DHTTYPE DHT11 // Define the DHT sensor type as DHT11
#define ACCESSKEY "YOUR-ACCESS-KEY" // Replace with your Antares account access key
#define WIFISSID "YOUR-WIFI-SSID" // Replace with your Wi-Fi SSID
#define PASSWORD "YOUR-WIFI-PASSWORD" // Replace with your Wi-Fi password
#define projectName "YOUR-APPLICATION-NAME" // Replace with the Antares application name that was created
#define deviceName "YOUR-DEVICE-NAME" // Replace with the Antares device name that was created
AntaresESPHTTP antares(ACCESSKEY); // Create an AntaresESP2866HTTP object to interact with Antares
DHT dht(DHTPIN, DHTTYPE); // Create a DHT object for the DHT sensor
#define pushButtonPin A0 // Define the pin number for the push button (connected to pin 32)
#define ledPin D2 // Define the pin number for the LED (connected to pin 12)
bool ledState = false; // Variable to store the state of the LED (ON or OFF)
bool lastButtonState = false; // Variable to store the previous state of the push button
void setup() {
Serial.begin(115200); // Initialize serial communication with baudrate 115200
antares.setDebug(true); // Enable debug mode for AntaresESP32HTTP (messages will be displayed in the serial monitor)
// Reset WiFi cache before connecting
WiFi.disconnect();
antares.wifiConnection(WIFISSID, PASSWORD); // Connect to Wi-Fi with the specified SSID and password
dht.begin(); // Initialize the DHT sensor
pinMode(pushButtonPin, INPUT); // Set the push button pin as input with internal pull-up resistor
pinMode(ledPin, OUTPUT); // Set the LED pin as output
digitalWrite(ledPin, LOW); // Turn off the LED initially
}
void loop() {
// Read the current state of the push button
int analogValue = analogRead(A0);
bool currentButtonState = (analogValue < 512); // Adjust the threshold as needed
// Check if the button state has changed (button press detected)
if (currentButtonState != lastButtonState && currentButtonState == LOW) {
Serial.println("The button is pressed");
// Toggle state of the LED (ON to OFF or OFF to ON)
ledState = !ledState;
digitalWrite(ledPin, ledState);
// Read temperature and humidity from the DHT sensor
float hum = dht.readHumidity();
float temp = dht.readTemperature();
// Check if the sensor reading is valid
if (isnan(hum) || isnan(temp)) {
Serial.println("Failed to read DHT sensor!");
return;
}
// Print temperature and humidity values to the serial monitor
Serial.println("Temperature: " + (String)temp + " *C");
Serial.println("Humidity: " + (String)hum + " %");
// Add temperature and humidity data to the Antares storage buffer
antares.add("temperature", temp);
antares.add("humidity", hum);
// Send the data from the storage buffer to Antares
antares.send(projectName, deviceName);
// Add some delay to avoid multiple data sending due to button debouncing
delay(1000);
}
// Update the last button state for the next iteration
lastButtonState = currentButtonState;
}
3. Set WiFi Credential and Antares Credential in Program Code
Change the HTTP Protocol parameters in the following variables *ACCESSKEY, *WIFISSID, *PASSWORD, *projectName, and *deviceName. Adjust to the parameters in the Antares console.
#define ACCESSKEY "YOUR-ACCESS-KEY" // Replace with your Antares account access key
#define WIFISSID "YOUR-WIFI-SSID" // Replace with your Wi-Fi SSID
#define PASSWORD "YOUR-WIFI-PASSWORD" // Replace with your Wi-Fi password
#define projectName "YOUR-APPLICATION-NAME" // Replace with the Antares application name that was created
#define deviceName "YOUR-DEVICE-NAME" // Replace with the Antares device name that was created




4. Compile and Upload Program
Connect ESP 8266 WEMOS D1R2 with your computer and make sure the Communication Port is read.

Set up the ESP8266 WEMOS D1R2 board by clicking Tools > Board > esp8266 in the Arduino IDE, then make sure the one used is LOLIN (WEMOS) D1 R2 & mini. Select the port according to the communication port that is read (in this case COM4). The result will look like the following picture.

After all the setup is complete, upload the programme by pressing the arrow icon as shown below. Wait for the compile and upload process to finish.

If the programme upload is successful, it will look like the following image.

After uploading the programme, you can view the serial monitor to debug the programme. The serial monitor icon is shown in the following image.

Set the serial baud rate to 115200 and select BothNL & CR. The result will look like the following image.
Make sure the serial baud rate matches the value defined in the programme code. If the serial baud rate is not the same between the programme code and the serial monitor, the ASCII characters will not be read properly.

5. Check Data in Antares
After uploading the programme successfully, then open the device antares page and see if the data has been successfully sent.


Last updated