Introduction: Esp32-Ubidots-Wireless-long-range Temperature-And-Humidity

In this tutorial, we will measure different temperature and humidity data using Temp and humidity sensor. You will also learn how to send this data to Ubidots. So that you can analyze it from anywhere for different applications.

Step 1: Hardware and Software Required

Step 2: Steps to Send Data to LabVIEW Temperature and Humidity Platform Using IoT Long Range Wireless Temperature and Humidity Sensor and Long Range Wireless Mesh Modem With USB Interface-

Step 3: Uploading the Code to ESP32 Using Arduino IDE:

    As esp32 is an important part to publish your vibration and temperature data to Ubidots.

    • Download and include the PubSubClient Library and Wire.h Library.

    #include <WiFi.h>

    #include <PubSubClient.h>

    #include <Wire.h>

    #include <HardwareSerial.h>

    • You must assign your unique Ubidots TOKEN, MQTTCLIENTNAME, SSID (WiFi Name) and Password of the available network.

    #define WIFISSID "xyz" // Put your WifiSSID here

    #define PASSWORD "xyz" // Put your wifi password here

    #define TOKEN "xyz" // Put your Ubidots' TOKEN

    #define MQTT_CLIENT_NAME "xyz" // MQTT client Name

    • Define variable and device name on which the data will send to Ubidots.

    #define VARIABLE_LABEL "Temperature" // Assing the variable label

    #define VARIABLE_LABEL2 "Battery"

    #define VARIABLE_LABEL3 "Humidity"

    #define DEVICE_LABEL "esp32" // Assig the device label

    • Space to store values to send:

    char payload[100];
    char topic[150];
    char topic2[150];
    char topic3[150];// Space to store values to send
    char str_Temp[10];
    char str_sensorbat[10];
    char str_humidity[10];

    • Code to publish data to Ubidots:

    sprintf(topic, "%s", ""); // Cleans the topic content  
    sprintf(topic, "%s%s", "/v1.6/devices/", DEVICE_LABEL);
    sprintf(payload, "%s", ""); // Cleans the payload content  
    sprintf(payload, "{\"%s\":", VARIABLE_LABEL); // Adds the variable label  
    sprintf(payload, "%s {\"value\": %s", payload, str_Temp); // Adds the value 
    sprintf(payload, "%s } }", payload); // Closes the dictionary brackets  
    client.publish(topic, payload);

    • Compile and upload the temp_humidity.ino code.
    • To verify the connectivity of the device and the data sent, open the serial monitor. If no response is seen, try unplugging your ESP32 and then plugging it again. Make sure the baud rate of the Serial monitor is set to the same one specified in your code 115200.

    Step 4: Serial Monitor Output.

    Step 5: Making the Ubidot Work:

    • Create the account on Ubidots.
    • Go to my profile and note down the token key which is a unique key for every account and paste it to your ESP32 code before uploading.
    • Add a new device to your Ubidots dashboard name esp32.
    • Click on devices and select devices in Ubidots.
    • Now you should see the published data in your Ubidots account, inside the device called "ESP32".
    • Inside the device create a new variable name sensor in which your temperature reading will be shown.
    • Now you are able to view the Temperature and other sensors data which was previously viewed in the serial monitor. This happened because the value of different sensor reading is passed as a string and store in a variable and publish to a variable inside device esp32.

    Step 6: OUTPUT