#include <esp_now.h>
#include <WiFi.h>
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
#define POTPIN 34
DHT dht(DHTPIN, DHTTYPE);
// Structure for sending data
typedef struct struct_message {
float temperature;
float humidity;
int potValue;
} struct_message;
struct_message myData;
// Receiver MAC Address (change after running Receiver code!)
uint8_t receiverMac[] = {0x24, 0x6F, 0x28, 0xAB, 0xCD, 0xEF};
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
esp_now_peer_info_t peerInfo;
memcpy(peerInfo.peer_addr, receiverMac, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
if (esp_now_add_peer(&peerInfo) != ESP_OK) {
Serial.println("Failed to add peer");
return;
}
}
void loop() {
// Step 2: Read sensors
float h = dht.readHumidity();
float t = dht.readTemperature();
int potValue = analogRead(POTPIN);
// Step 3: Pack into struct
myData.temperature = t;
myData.humidity = h;
myData.potValue = potValue;
// Send via ESP-NOW
esp_err_t result = esp_now_send(receiverMac, (uint8_t *) &myData, sizeof(myData));
if (result == ESP_OK) {
Serial.println("Data sent successfully");
} else {
Serial.println("Error sending data");
}
delay(2000); // Send every 2s
}