Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define mS_TO_S_FACTOR 1000 /* Conversion factor for milliseconds to seconds */
- int TIME_TO_SLEEP = 3000;
- unsigned int bridgeWaitMillis = 0;
- #include <WiFi.h>
- #include <WiFiClientSecure.h>
- #include <ETH.h>
- WiFiClientSecure client;
- static bool eth_connected = false;
- const char* host = "postman-echo.com";
- const int httpPort = 443;
- unsigned long scanStart;
- unsigned long scanDuration;
- unsigned int clientStart;
- unsigned int clientDuration;
- int counter = 0;
- const bool debug = true;
- void WiFiEvent(WiFiEvent_t event) {
- switch (event) {
- case SYSTEM_EVENT_ETH_START:
- Serial.println("ETH Started");
- //set eth hostname here
- ETH.setHostname("esp32-ethernet");
- break;
- case SYSTEM_EVENT_ETH_CONNECTED:
- Serial.println("ETH Connected");
- break;
- case SYSTEM_EVENT_ETH_GOT_IP:
- Serial.print("ETH MAC: ");
- Serial.print(ETH.macAddress());
- Serial.print(", IPv4: ");
- Serial.print(ETH.localIP());
- if (ETH.fullDuplex()) {
- Serial.print(", FULL_DUPLEX");
- }
- Serial.print(", ");
- Serial.print(ETH.linkSpeed());
- Serial.println("Mbps");
- eth_connected = true;
- break;
- case SYSTEM_EVENT_ETH_DISCONNECTED:
- Serial.println("ETH Disconnected");
- eth_connected = false;
- break;
- case SYSTEM_EVENT_ETH_STOP:
- Serial.println("ETH Stopped");
- eth_connected = false;
- break;
- default:
- break;
- }
- }
- void deepSleep() {
- esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * mS_TO_S_FACTOR);
- if (debug) {
- Serial.println("Going to sleep now for " + String(TIME_TO_SLEEP) + " milliseconds");
- Serial.println("");
- }
- if (debug) Serial.flush();
- esp_deep_sleep_start();
- }
- bool clientConnect() {
- clientStart = millis();
- if (!client.connected()) {
- if (debug) Serial.println("Starting connection to host " + String(host) + " port " + String(httpPort));
- if (!client.connect(host, httpPort)) {
- Serial.println("clientConnect connection failed");
- return false;
- } else {
- clientDuration = millis() - clientStart;
- if (debug) Serial.println("Duration clientConnect " + String(clientDuration));
- return true;
- }
- } else {
- return true;
- }
- }
- String getRequest(String url2) {
- unsigned int wait = 1000;
- if (url2.substring(1, 7).equals("lights")) {
- wait = 100;
- }
- while (millis() < bridgeWaitMillis + wait) {
- }
- if (!clientConnect()) {
- return "error";
- }
- bridgeWaitMillis = millis();
- client.print(String("GET ") + url2 + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "\r\n");
- String json;
- String line;
- int retCode = 0;
- while (client.connected()) {
- line = client.readStringUntil('\n');
- if (line.startsWith("HTTP/1.1")) {
- retCode = line.substring(9, 12).toInt(); // Get HTTP return code
- if (retCode != 200) {
- if (debug) Serial.println("http return code: " + String(retCode));
- return "error";
- }
- }
- if (line == "\r")break;
- }
- while (client.available()) {
- Serial.write(client.read());
- }
- return json;
- }
- void setSerial() {
- Serial.begin(115200);
- while (!Serial) continue;
- }
- void runTestApplication() {
- String request_url = "/get?foo1=bar1&foo2=bar2";;
- String myJSON;
- for (int x = 0; x < 10; x++) {
- myJSON = getRequest(request_url);
- //if (debug) Serial.print("myJSON: " + myJSON);
- Serial.println("");
- }
- Serial.println("closing connection\n");
- client.stop();
- }
- void setup() {
- if (debug) setSerial();
- WiFi.onEvent(WiFiEvent);
- ETH.begin();
- delay(10000);
- runTestApplication();
- if (debug) Serial.println("Cyletime: " + String(millis()));
- deepSleep();
- }
- void loop() {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement