//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
//WARNING, THIS WAS WRITTEN FOR ESP 12E - ESP8266! WOKWI NOT SUPPORING 8266
#include <ESP8266WiFi.h>
#include <espnow.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define BUTTON_PIN 14 // ESP32 pin GPIO14 "D5", which connected to button
OneWire oneWire(13);
DallasTemperature sensor(&oneWire);
float temperature = 0;
int blink = HIGH;
int button_state; // the current state of button
unsigned long lastTime = 0;
unsigned long timerDelay = 2000; // send readings timer
const int blue_LED = 5; //PIN # LED CONNECTED TO
// REPLACE WITH RECEIVER MAC Address
uint8_t broadcastAddress[] = {0x24, 0x6f, 0x28, 0x9e, 0xa6, 0x08};
//24:6f:28:9e:a6:08
// Structure example to send data
// Must match the receiver structure
typedef struct struct_message {
int a;
float b;
int c;
} struct_message;
// Create a struct_message called myData
struct_message myData;
// Callback when data is sent
void OnDataSent(uint8_t *mac_addr, uint8_t sendStatus) {
Serial.print("Last Packet Send Status: ");
if (sendStatus == 0){
Serial.println("Delivery success");
}
else{
Serial.println("Delivery fail");
}
}
void setup() {
pinMode(blue_LED, OUTPUT);
digitalWrite(blue_LED, HIGH);
Serial.begin(115200);
Serial.setTimeout(2000);
sensor.begin();
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != 0) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Once ESPNow is successfully Init, we will register for Send CB to
// get the status of Trasnmitted packet
esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
esp_now_register_send_cb(OnDataSent);
// Register peer
esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
pinMode(BUTTON_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode
button_state = digitalRead(BUTTON_PIN);
//hahahah loop
sensor.requestTemperatures();
delay(5000);
temperature = sensor.getTempCByIndex(0);
button_state = digitalRead(BUTTON_PIN);
blink = !blink;
if(temperature == -127 || temperature <= -50){
temperature = 0;
}
// Set values to send
myData.a = button_state;
myData.b = temperature;
myData.c = blink;
// Send message via ESP-NOW
esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
delay(1000);
// Set values to send
myData.a = button_state;
myData.b = temperature;
myData.c = blink;
// Send message via ESP-NOW
esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
delay(1000);
// Set values to send
myData.a = button_state;
myData.b = temperature;
myData.c = blink;
// Send message via ESP-NOW
esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
delay(1000);
//Serial.println("I'm awake, but I'm going into deep sleep mode for 30 seconds");
Serial.println(myData.b);
digitalWrite(blue_LED, LOW);
ESP.deepSleep(360e6); // Deep sleep mode for ("seconds"e6) seconds, the ESP8266 wakes up by itself when GPIO 16 (D0 in NodeMCU board) is connected to the RESET pin
}
void loop() {
}