Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* 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: # WiFi Sensors
- - Source Code NOT compiled for: Arduino Nano
- - Source Code created on: 2026-01-13 08:39:54
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* Establezca una conexión WiFi usando la biblioteca */
- /* WiFiEspAT en Arduino Nano y realice solicitudes de */
- /* cliente HTTP para transmitir datos al servicio en */
- /* la nube de Excel usando ArduinoHttpClient. */
- /****** END SYSTEM REQUIREMENTS *****/
- /* START CODE */
- /********* 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 += \"×tamp=\";\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}
- /* END CODE */
Advertisement
Add Comment
Please, Sign In to add comment