pleasedontcode

# WiFi Sensors rev_02

Jan 13th, 2026
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 10.43 KB | None | 0 0
  1. /********* Pleasedontcode.com **********
  2.  
  3.     Pleasedontcode thanks you for automatic code generation! Enjoy your code!
  4.  
  5.     - Terms and Conditions:
  6.     You have a non-exclusive, revocable, worldwide, royalty-free license
  7.     for personal and commercial use. Attribution is optional; modifications
  8.     are allowed, but you're responsible for code maintenance. We're not
  9.     liable for any loss or damage. For full terms,
  10.     please visit pleasedontcode.com/termsandconditions.
  11.  
  12.     - Project: # WiFi Sensors
  13.     - Source Code NOT compiled for: Arduino Nano
  14.     - Source Code created on: 2026-01-13 08:39:54
  15.  
  16. ********* Pleasedontcode.com **********/
  17.  
  18. /****** SYSTEM REQUIREMENTS *****/
  19. /****** SYSTEM REQUIREMENT 1 *****/
  20.     /* Establezca una conexión WiFi usando la biblioteca */
  21.     /* WiFiEspAT en Arduino Nano y realice solicitudes de */
  22.     /* cliente HTTP para transmitir datos al servicio en */
  23.     /* la nube de Excel usando ArduinoHttpClient. */
  24. /****** END SYSTEM REQUIREMENTS *****/
  25.  
  26.  
  27. /* START CODE */
  28.  
  29. /********* Pleasedontcode.com **********\n\n\tPleasedontcode thanks you for automatic code generation! Enjoy your code!\n\n\t- Terms and Conditions:\n\tYou have a non-exclusive, revocable, worldwide, royalty-free license\n\tfor personal and commercial use. Attribution is optional; modifications\n\tare allowed, but you're responsible for code maintenance. We're not\n\tliable for any loss or damage. For full terms,\n\tplease visit pleasedontcode.com/termsandconditions.\n\n\t- Project: DatosExcel\n\t- SOURCE CODE NOT YET FINALIZED. STILL UNDER GENERATION PHASE.\n\t- Source Code created on: 2026-01-13 08:39:54\n\t- Source Code generated by: ramon\n\n********* Pleasedontcode.com **********/\n\n/****** SYSTEM REQUIREMENTS *****/\n/****** SYSTEM REQUIREMENT 1 *****/\n\t/* Establezca una conexión WiFi usando la biblioteca */\n\t/* WiFiEspAT en Arduino Nano y realice solicitudes de */\n\t/* cliente HTTP para transmitir datos al servicio en */\n\t/* la nube de Excel usando ArduinoHttpClient. */\n/****** END SYSTEM REQUIREMENTS *****/\n\n\n\n/****** DEFINITION OF LIBRARIES *****/\n#include <WiFiEspAT.h>          // Compatible with Arduino Nano using ESP8266/ESP32 as WiFi module\n#include <ArduinoHttpClient.h>  // Compatible with Arduino Nano for HTTP requests\n\n/****** DEFINITION OF CONSTANTS *****/\n// WiFi credentials\nconst char* ssid = \"Despacho 2.4\";                           // Replace with your router SSID\nconst char* password = \"Nabucodonosor33\";                    // Replace with your router password\n\n// Google Sheets API endpoint - Using HTTP instead of HTTPS for WiFiEspAT compatibility\nconst char* host = \"script.google.com\";\nconst int port = 80;  // HTTP port (not HTTPS, as WiFiEspAT doesn't support WiFiClientSecure)\nconst char* scriptId = \"AKfycbx0EOD-SCOrNhGs2lFm3gV3dZPP9_oqAbImZEhhzojHJEIgrE2XOdH7OMA8DMAuhEmg\";  // Your Google Apps Script ID\n\n// Timing constants (in milliseconds)\nconst unsigned long TRANSMISSION_INTERVAL = 10000;  // 10 seconds between data transmissions\nconst unsigned long WIFI_TIMEOUT = 10000;            // WiFi connection timeout\nconst unsigned long HTTP_TIMEOUT = 5000;             // HTTP request timeout\n\n/****** GLOBAL VARIABLES *****/\n// WiFi and HTTP client instances - Using WiFiClient instead of WiFiClientSecure\nWiFiClient client;\nHttpClient httpClient = HttpClient(client, host, port);\n\n// Timing variables\nunsigned long lastTransmissionTime = 0;\nunsigned long wifiConnectionStartTime = 0;\n\n// WiFi status flag\nboolean wifiConnected = false;\n\n/****** FUNCTION PROTOTYPES *****/\nvoid setup(void);\nvoid loop(void);\nvoid initializeSerialCommunication(void);\nvoid initializeWiFiConnection(void);\nvoid checkWiFiStatus(void);\nvoid sendDataToGoogleSheets(float temperature, float humidity);\nvoid printDebugMessage(const char* message);\nvoid printIPAddress(void);\nfloat generateTemperatureData(void);\nfloat generateHumidityData(void);\nvoid printSensorData(float temperature, float humidity);\n\n/****** INITIALIZATION FUNCTION *****/\nvoid setup(void)\n{\n    // Initialize serial communication\n    initializeSerialCommunication();\n    \n    // Print startup message\n    printDebugMessage(\"=== WiFi HTTP Cloud Data Transmission System Started ===\");\n    \n    // Initialize WiFi connection\n    initializeWiFiConnection();\n}\n\n/****** MAIN LOOP FUNCTION *****/\nvoid loop(void)\n{\n    // Check WiFi connection status\n    checkWiFiStatus();\n    \n    // Check if it's time to transmit data\n    if (wifiConnected && (millis() - lastTransmissionTime >= TRANSMISSION_INTERVAL)) {\n        // Update transmission time\n        lastTransmissionTime = millis();\n        \n        // Generate sample sensor data\n        float temperature = generateTemperatureData();\n        float humidity = generateHumidityData();\n        \n        // Print sensor data\n        printSensorData(temperature, humidity);\n        \n        // Send data to Google Sheets\n        sendDataToGoogleSheets(temperature, humidity);\n    }\n    \n    // Short delay to prevent overwhelming the loop\n    delay(100);\n}\n\n/****** SERIAL COMMUNICATION INITIALIZATION *****/\nvoid initializeSerialCommunication(void)\n{\n    // Initialize serial communication at 9600 baud\n    Serial.begin(9600);\n    \n    // Wait for serial port to be ready\n    delay(2000);\n}\n\n/****** WIFI CONNECTION INITIALIZATION *****/\nvoid initializeWiFiConnection(void)\n{\n    printDebugMessage(\"Initiating WiFi connection...\");\n    Serial.print(\"Connecting to SSID: \");\n    Serial.println(ssid);\n    \n    // Start WiFi connection using WiFiEspAT\n    WiFi.begin(ssid, password);\n    \n    // Store connection start time for timeout handling\n    wifiConnectionStartTime = millis();\n    \n    // Wait for connection with timeout\n    int connectionAttempts = 0;\n    int maxAttempts = 40;  // 40 attempts * 500ms = 20 seconds max\n    \n    while (WiFi.status() != WL_CONNECTED && connectionAttempts < maxAttempts) {\n        delay(500);\n        Serial.print(\".\");\n        connectionAttempts++;\n        \n        // Check timeout\n        if (millis() - wifiConnectionStartTime > WIFI_TIMEOUT) {\n            break;\n        }\n    }\n    \n    Serial.println();\n    \n    // Verify connection status\n    if (WiFi.status() == WL_CONNECTED) {\n        wifiConnected = true;\n        printDebugMessage(\"WiFi connected successfully!\");\n        printIPAddress();\n    } else {\n        wifiConnected = false;\n        printDebugMessage(\"Failed to connect to WiFi after timeout\");\n    }\n}\n\n/****** WIFI STATUS CHECKING *****/\nvoid checkWiFiStatus(void)\n{\n    // Check current WiFi connection status\n    if (WiFi.status() == WL_CONNECTED) {\n        if (!wifiConnected) {\n            // Connection was re-established\n            wifiConnected = true;\n            printDebugMessage(\"WiFi reconnected!\");\n            printIPAddress();\n        }\n    } else {\n        if (wifiConnected) {\n            // Connection was lost\n            wifiConnected = false;\n            printDebugMessage(\"WiFi connection lost!\");\n            \n            // Attempt to reconnect\n            printDebugMessage(\"Attempting to reconnect to WiFi...\");\n            WiFi.begin(ssid, password);\n            wifiConnectionStartTime = millis();\n        }\n    }\n}\n\n/****** GENERATE TEMPERATURE DATA *****/\nfloat generateTemperatureData(void)\n{\n    // Generate random temperature between 20.0 - 30.0 degrees Celsius\n    float temperature = random(200, 300) / 10.0;\n    return temperature;\n}\n\n/****** GENERATE HUMIDITY DATA *****/\nfloat generateHumidityData(void)\n{\n    // Generate random humidity between 40.0 - 60.0 percent\n    float humidity = random(400, 600) / 10.0;\n    return humidity;\n}\n\n/****** PRINT SENSOR DATA *****/\nvoid printSensorData(float temperature, float humidity)\n{\n    Serial.println(\"\\n========================================\");\n    Serial.println(\"--- Sensor Data ---\");\n    Serial.print(\"Temperature: \");\n    Serial.print(temperature);\n    Serial.println(\" °C\");\n    Serial.print(\"Humidity: \");\n    Serial.print(humidity);\n    Serial.println(\" %\");\n    Serial.println(\"========================================\");\n}\n\n/****** SEND DATA TO GOOGLE SHEETS *****/\nvoid sendDataToGoogleSheets(float temperature, float humidity)\n{\n    // Verify WiFi connection before attempting to send\n    if (WiFi.status() != WL_CONNECTED) {\n        printDebugMessage(\"ERROR: WiFi not connected. Cannot send data.\");\n        return;\n    }\n    \n    printDebugMessage(\"Transmitting data to Google Sheets...\");\n    \n    // Create URL encoded parameters for GET request\n    String parameters = \"?temperatura=\";\n    parameters += String(temperature);\n    parameters += \"&humedad=\";\n    parameters += String(humidity);\n    parameters += \"&timestamp=\";\n    parameters += String(millis());\n    \n    // Build the complete path\n    String pathWithParameters = \"/macros/s/\";\n    pathWithParameters += scriptId;\n    pathWithParameters += \"/exec\";\n    pathWithParameters += parameters;\n    \n    Serial.print(\"Path: \");\n    Serial.println(pathWithParameters);\n    \n    // Begin HTTP GET request\n    httpClient.setTimeout(HTTP_TIMEOUT);\n    \n    // Make GET request (simpler than POST for this use case)\n    int httpCode = httpClient.get(pathWithParameters);\n    \n    // Print HTTP response code\n    Serial.print(\"HTTP Response Code: \");\n    Serial.println(httpCode);\n    \n    // Read and print response body\n    if (httpCode > 0) {\n        String responseBody = httpClient.responseBody();\n        Serial.print(\"Server Response: \");\n        Serial.println(responseBody);\n        \n        if (httpCode == 200) {\n            printDebugMessage(\"Data successfully transmitted to Google Sheets!\");\n        } else {\n            printDebugMessage(\"HTTP request completed with non-200 status code.\");\n        }\n    } else {\n        Serial.print(\"HTTP Error: \");\n        Serial.println(httpCode);\n        printDebugMessage(\"ERROR: Failed to connect to server or request timed out.\");\n    }\n    \n    // Close the connection\n    httpClient.stop();\n}\n\n/****** PRINT DEBUG MESSAGE *****/\nvoid printDebugMessage(const char* message)\n{\n    Serial.print(\"[DEBUG] \");\n    Serial.println(message);\n}\n\n/****** PRINT IP ADDRESS *****/\nvoid printIPAddress(void)\n{\n    Serial.print(\"IP Address: \");\n    Serial.println(WiFi.localIP());\n    Serial.print(\"Gateway: \");\n    Serial.println(WiFi.gatewayIP());\n    Serial.print(\"DNS Server: \");\n    Serial.println(WiFi.dnsIP());\n}
  30.  
  31. /* END CODE */
  32.  
Advertisement
Add Comment
Please, Sign In to add comment