CCCPaste

DHT11 Telemetry rev_01

/********* Pleasedontcode.com **********

	Pleasedontcode thanks you for automatic code generation! Enjoy your code!

	- Terms and Conditions:
	You have a non-exclusive, revocable, worldwide, royalty-free license
	for personal and commercial use. Attribution is optional; modifications
	are allowed, but you're responsible for code maintenance. We're not
	liable for any loss or damage. For full terms,
	please visit pleasedontcode.com/termsandconditions.

	- Project: DHT11 Telemetry
	- Source Code NOT compiled for: Arduino Uno
	- Source Code created on: 2024-08-02 09:13:59

********* Pleasedontcode.com **********/

/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
	/* Connect arduino to iot hub and send the telemetry */
/****** END SYSTEM REQUIREMENTS *****/

/****** DEFINITION OF LIBRARIES *****/
#include 	//https://github.com/adafruit/DHT-sensor-library

/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
void sendTelemetry(float humidity, float temperature); // Function prototype for sending telemetry

/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t Temp_DHT11_DOUT_PIN_D2		= 2; // Pin for DHT11 sensor
const uint8_t Temp_DHT11_DOUT_PIN_D3		= 3; // Another pin (not used in this example)

/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Initialize the DHT sensor object with the pin and type
#define DHTTYPE DHT11 // Define the type of DHT sensor
DHT dht(Temp_DHT11_DOUT_PIN_D2, DHTTYPE); // Create an instance of the DHT class

void setup(void)
{
	// Initialize serial communication for debugging
	Serial.begin(9600);
	Serial.println(F("DHTxx test!"));

	// Initialize the DHT sensor
	dht.begin(); // Start the DHT sensor

	// Set pin modes for digital pins
	pinMode(Temp_DHT11_DOUT_PIN_D2, INPUT_PULLUP);
	pinMode(Temp_DHT11_DOUT_PIN_D3, INPUT_PULLUP);
}

void loop(void)
{
	// Delay between readings
	delay(2000);

	// Read humidity and temperature from the DHT sensor
	float h = dht.readHumidity(); // Read humidity
	float t = dht.readTemperature(); // Read temperature in Celsius
	float f = dht.readTemperature(true); // Read temperature in Fahrenheit

	// Check if any reads failed and exit early (to try again).
	if (isnan(h) || isnan(t) || isnan(f)) {
		Serial.println(F("Failed to read from DHT sensor!"));
		return; // Exit the loop if reading failed
	}

	// Compute heat index
	float hif = dht.computeHeatIndex(f, h); // Heat index in Fahrenheit
	float hic = dht.computeHeatIndex(t, h, false); // Heat index in Celsius

	// Print the results to the Serial Monitor
	Serial.print(F("Humidity: "));
	Serial.print(h);
	Serial.print(F("%  Temperature: "));
	Serial.print(t);
	Serial.print(F("°C "));
	Serial.print(f);
	Serial.print(F("°F  Heat index: "));
	Serial.print(hic);
	Serial.print(F("°C "));
	Serial.print(hif);
	Serial.println(F("°F"));

	// Send telemetry data to IoT hub
	sendTelemetry(h, t); // Call the function to send telemetry data
}

// Function to send telemetry data to IoT hub
void sendTelemetry(float humidity, float temperature) {
	// Placeholder for sending data to IoT hub
	// Replace this with actual code to connect to your IoT platform and send the data
	Serial.print(F("Sending telemetry... Humidity: "));
	Serial.print(humidity);
	Serial.print(F("%, Temperature: "));
	Serial.print(temperature);
	Serial.println(F("°C"));
}

/* END CODE */