Uživatelské nástroje

Nástroje pro tento web


zarizeni:esp8266

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
zarizeni:esp8266 [2016/06/06 10:50] multitrickerzarizeni:esp8266 [2023/02/21 13:26] (aktuální) multitricker
Řádek 3: Řádek 3:
 Příklad jak naprogramovat ESP8266 v Arduino IDE od ''mikroma''. Příklad jak naprogramovat ESP8266 v Arduino IDE od ''mikroma''.
  
-**Web autora příkladů:** http://mikrom.cz/\\+**Web autora příkladů:** https://mikrom.cz/\\
 **Kontakt na autora:** [[mikrom@mikrom.cz]] **Kontakt na autora:** [[mikrom@mikrom.cz]]
  
Řádek 15: Řádek 15:
  
 <file c tmep_send_temperature.ino> <file c tmep_send_temperature.ino>
-/Simple sketch for sending data to the TMEP.cz +/
-// by mikrom (http://www.mikrom.cz) +  Simple sketch for sending data to the TMEP.cz 
-// http://wiki.tmep.cz/doku.php?id=zarizeni:esp8266 +  by mikrom (http://www.mikrom.cz) 
-// +  http://wiki.tmep.cz/doku.php?id=zarizeni:esp8266 
-// If you send only temperature url will be: http://ahoj.tmep.cz/?mojemereni=25.6 (domain is "ahoj" and guid is "mojemereni" + 
-// If you send also humidity url will be: http://ahoj.tmep.cz/?mojemereni=25.6&humV=60 +  If you send only temperature url will be: http://ahoj.tmep.cz/?mojemereni=25.6 (domain is "ahoj" and guid is "mojemereni" 
-// but for humidity You will need DHT11 or DHT22 sensor and code will need some modifications+  If you send also humidity url will be: http://ahoj.tmep.cz/?mojemereni=25.6&humV=60 
 +  But for humidity You will need DHT11 or DHT22 sensor and code will need some modifications, see the other sketch. 
 + 
 +  Blinking with ESP internal LED according status: 
 +  LED constantly blinking = connecting to WiFi 
 +  LED on for 5 seconds = boot, setup, WiFi connect OK 
 +  LED blink 2x per second = temp error (wrong pin, bad sensor, read -127.00°C) 
 +  LED blink 3x per second = connect to host failed 
 +  LED blink 4x per second = client connection timeout 
 +  LED blink 1x per [sleep] = send data ok 
 +*/
  
 #include <ESP8266WiFi.h>       // WiFi library #include <ESP8266WiFi.h>       // WiFi library
Řádek 28: Řádek 38:
  
 // Define settings // Define settings
-const charssid      = "---wifi ssid---"; // WiFi SSID +const char ssid[]     = "---ssid---"; // WiFi SSID 
-const charpass      = "---wifi pass---"; // WiFi password +const char pass[]     = "---password---"; // WiFi password 
-const chardomain    = "---domain---";    // domain.tmep.cz +const char domain[]   = "---domain---";  // domain.tmep.cz 
-const charguid      = "---guid---";      // mojemereni +const char guid[]     = "---guid---"; // mojemereni 
-const long sleep      = 600000           // How often send data to the server. Default is 600000ms = 10 minute +const byte sleep      = 1; // How often send data to the server. In minutes 
-const byte oneWireBus = 5;                 // Pin where is DS18B20 connected+const byte oneWireBus = 5; // Pin where is DS18B20 connected
  
 // Create Temperature object "sensors" // Create Temperature object "sensors"
-OneWire oneWire(oneWireBus);       // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)+OneWire oneWire(oneWireBus);         // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
 DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature.
  
 void setup() { void setup() {
 +  pinMode(2, OUTPUT); // GPIO2, LED on ESP8266
 +  
   // Start serial   // Start serial
   Serial.begin(115200);   Serial.begin(115200);
Řádek 46: Řádek 58:
  
   // Connect to the WiFi   // Connect to the WiFi
-  Serial.print("Connecting to "); Serial.println(ssid);+  Serial.print(F("Connecting to ")); Serial.println(ssid);
   WiFi.begin(ssid, pass);   WiFi.begin(ssid, pass);
   while (WiFi.status() != WL_CONNECTED) {   while (WiFi.status() != WL_CONNECTED) {
 +    digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); // Blinking with LED during connecting to WiFi
     delay(500);     delay(500);
-    Serial.print(".");+    //digitalWrite(2, HIGH); // Blinking with LED during connecting to WiFi 
 +    Serial.print(F("."));
   }   }
   Serial.println();   Serial.println();
-  Serial.println("WiFi connected"); +  Serial.println(F("WiFi connected")); 
-  Serial.print("IP address: "); Serial.println(WiFi.localIP());+  Serial.print(F("IP address: ")); Serial.println(WiFi.localIP());
   Serial.println();   Serial.println();
  
   sensors.begin(); // Initialize the DallasTemperature DS18B20 class (not strictly necessary with the client class, but good practice).   sensors.begin(); // Initialize the DallasTemperature DS18B20 class (not strictly necessary with the client class, but good practice).
-  delay(10000);+ 
 +  // LED on for 5 seconds after setup is done 
 +  digitalWrite(2, LOW); 
 +  delay(5000); 
 +  digitalWrite(2, HIGH);
 } }
  
 void loop() { void loop() {
-  sensors.requestTemperatures();           // Send the command to get temperatures. request to all devices on the bus+  sensors.requestTemperatures();        // Send the command to get temperatures. request to all devices on the bus
   float t = sensors.getTempCByIndex(0); // Read temperature in "t" variable   float t = sensors.getTempCByIndex(0); // Read temperature in "t" variable
   if (t == -127.00) {                   // If you have connected it wrong, Dallas read this temperature! :)   if (t == -127.00) {                   // If you have connected it wrong, Dallas read this temperature! :)
-    Serial.println("Temp error!");+    Serial.println(F("Temp error!")); 
 +    // Blink 2 time when temp error 
 +    digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(100); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); 
 +    delay(1000);
     return;     return;
   }   }
Řádek 75: Řádek 96:
   strcpy(host, domain);     // Copy /domain/ in to the /host/   strcpy(host, domain);     // Copy /domain/ in to the /host/
   strcat(host, ".tmep.cz"); // Add ".tmep.cz" at the end of the /host/. /host/ is now "/domain/.tmep.cz"   strcat(host, ".tmep.cz"); // Add ".tmep.cz" at the end of the /host/. /host/ is now "/domain/.tmep.cz"
-  const int httpPort = 80; 
      
-  Serial.print("Connecting to "); Serial.println(host); +  Serial.print(F("Connecting to ")); Serial.println(host); 
-  if (!client.connect(host, httpPort)) {+  if (!client.connect(host, 80)) {
     // If you didn't get a connection to the server     // If you didn't get a connection to the server
-    Serial.println("Connection failed");+    Serial.println(F("Connection failed")); 
 +    // Blink 3 times when host connection error 
 +    digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(100); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(100); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); 
 +    delay(1000);
     return;     return;
   }   }
-  Serial.println("Client connected");+  Serial.println(F("Client connected"));
  
   // Make an url. We need: /?guid=t   // Make an url. We need: /?guid=t
Řádek 90: Řádek 113:
          url += "=";          url += "=";
          url += t;          url += t;
-  Serial.print("Requesting URL: "); Serial.println(url);+  Serial.print(F("Requesting URL: ")); Serial.println(url);
      
   // Make a HTTP GETrequest.   // Make a HTTP GETrequest.
Řádek 97: Řádek 120:
                "Connection: close\r\n\r\n");                "Connection: close\r\n\r\n");
  
 +  // Blik 1 time when send OK
 +  digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH);
 +  
   // Workaroud for timeout   // Workaroud for timeout
   unsigned long timeout = millis();   unsigned long timeout = millis();
   while (client.available() == 0) {   while (client.available() == 0) {
     if (millis() - timeout > 5000) {     if (millis() - timeout > 5000) {
-      Serial.println(">>> Client Timeout !");+      Serial.println(F(">>> Client Timeout !"));
       client.stop();       client.stop();
 +      // Blink 4 times when client timeout
 +      digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(100); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH); delay(100); digitalWrite(2, LOW); delay(100); digitalWrite(2, HIGH);
 +      delay(1000);
       return;       return;
     }     }
Řádek 110: Řádek 139:
      
   // Wait for another round   // Wait for another round
-  delay(sleep);+  delay(sleep*60000);
 } }
 </file> </file>