Programma Ardino voor ESP32

Status
Niet open voor verdere reacties.

ludostevens

Gebruiker
Lid geworden
26 nov 2009
Berichten
11
Beste forumleden.

Ik heb een programma voor arduino dat tempertuurgegevens via een ethernetshield en een php script in mijn msql database zet.

Nu wil ik graag via een wifi verbinding met een esp32 de gegevens in mijn database zetten.

Kan misschien iemand mijn arduino code aanpassen voor een esp32 board via wifi.

hieronder de code die ik gebruik voor de arduino

/***************************************************************************************************************************
PROJEKT: Temperaturlogger *
Beschreibung: Temperaturwerte von 2 ds18S20 Temperatursensoren werden an ein php-Script gesendet, *
dass diese Daten in eine MySQL-Datenbank schreibt, *
*
*
Folgende Werte müssen angepasst werden *
--------------------------------------------------------------------------------------------------------------------------*
Intervall = Zeitraum in welchen Abständen die Temperaturdaten vom Arduino zur Datenbank übertragen werden sollen, *
mac[] = MAC-Adresse des Ethernet Shields *
ip[] = IP-Adresse über die der Arduino erreichbar sein soll. *
server[] = IP-Adresse des Servers auf den die Daten übertragen werden sollen. herauszufinden mit ping www.domain.de *
host[] = Name der Domain zu der die Verbindung aufgebaut werden soll *
url[] = Pfad und Name der Datei die für den Upload der übergebenen Daten zur Datenbank zuständig ist. *
key[] = Kennwort dass mit dem Kennwort in der php-Datei übereinstimmen muss (Sicherheitsaspekt) *
*****************************************************************************************************************************/

Code:
#include <SPI.h>
#include <Ethernet.h>             // library for ethernet functions
#include <DallasTemperature.h>    // library for temperature sensors
#include <OneWire.h>              // library for the onewire bus
 
OneWire  ds(7);                         // pin für Temperatursensoren
 

DeviceAddress sensor11 = { 0x10, 0x48, 0x1A, 0x69, 0x2, 0x8, 0x0, 0xD4 }; // warmtepomp CV aanvoer sensor) 
DeviceAddress sensor12 = { 0x10, 0x9C, 0xE2, 0x68, 0x2, 0x8, 0x0, 0xDB }; // warmtepomp koelleiding gas sensor )
DeviceAddress sensor13 = { 0x10, 0x76, 0xE5, 0x68, 0x2, 0x8, 0x0, 0x6C }; // warmtepomp CV retour sensor )
DeviceAddress sensor14 = { 0x10, 0x5C, 0x13, 0x69, 0x2, 0x8, 0x0, 0xA0 }; // warmtepomp koelleiding vloeistof sensor )
DeviceAddress sensor15 = { 0x10, 0x7A, 0x8, 0x69, 0x2, 0x8, 0x0, 0xA8 }; // warmtepomp aan (relais)
DeviceAddress sensor16 = {  }; // warmtepomp buffer boven
DeviceAddress sensor17 = {  }; // warmtepomp buffer onder

 
 
 
 

 

 
//ETHERNET-SETTINGS
byte mac[]     = { 0x68, 0x3F, 0x5D, 0x85, 0x6A, 0xB2 };    // MAC-Adresse des Arduino
byte ip[]      = { 192, 168, 2, 198 };                     // IP-Adresse des Arduino
byte gateway[] = { 192.168, 2, 254 };                    // Gateway
byte subnet[]  = { 255, 255, 255, 0 };                    // SubNet
byte server[]  = { 192, 168, 2, 9 };                     // IP-Adresse des Servers
 
EthernetClient client;
char host[]    = "86.82.113.458";                      // Domain
char url[]     = "/arduino/SaveTempToMySQL1.php"; // Pfad zur PHP-Datei
char key[]     = "kees22??196?";                      // Kennwort aus PHP-Datei
char c;                                                     // Variable für Rückgabe des Servers
 
long Interval  = 1;                                        // Upload-Interval in Minuten
DallasTemperature sensors(&ds);                                
int numSensors;                                             // Variable zum speichern der Anzahl der Temperatur-Sensoren
 
void setup()
{
  delay(1000);
 
  Serial.begin(9600); 
  Serial.flush();
  delay(200);
 
  Serial.println("Arduino TemperaturLogger");
  Serial.println("Ethernet initialisieren...");  
 
  Ethernet.begin(mac, ip);
  Interval = Interval * 1007 * 24;                            // Das in Minuten angegebene Interval in Millisekunden umrechnen
  delay(2000);                                                // warten, bis Ethernet gestartet
 
  //Sensoren abfragen
  sensors.begin();
  Serial.println("Temperatur-Sensoren ermitteln...");
 
  numSensors = sensors.getDeviceCount();                      // Anzahl der angeschlossenen Sensoren in numSensors speichern
 
  if(numSensors > 0)                                          // Es wurde mindestens 1 Sensor gefunden                                        
  {
    Serial.print(numSensors);
    Serial.println( " Temperatur-Sensoren gefunden.");
  }          
  else                                                        // Es wurde kein Sensor gefunden
  {
    Serial.println("Keine Temperatur-Sensoren gefunden.");
  }
}
 
void loop()
{

  float temp11 = getTemperature(sensor11);  // warmtepomp aanvoer sensor
  float temp12 = getTemperature(sensor12);  // warmtepomp koelleiding gas sensor
  float temp13 = getTemperature(sensor13);  // warmtepomp retour sensor
  float temp14 = getTemperature(sensor14);  // warmtepomp koelleiding vloeistof sensor
  float temp15 = getTemperature(sensor15);  // warmtepomp aan (relais)
  float temp16 = getTemperature(sensor16);  // warmtepomp buffer boven
  float temp17 = getTemperature(sensor17);  // warmtepomp buffer onder

  
  
  // Temperatur von Sensor 10 ermitteln
 

  Serial.print("Temp11: ");
  Serial.println(temp11);
  Serial.print("Temp12: ");
  Serial.println(temp12);
  Serial.print("Temp13: ");
  Serial.println(temp13);
  Serial.print("Temp14: ");
  Serial.println(temp14);
  Serial.print("Temp15: ");
  Serial.println(temp15);
  Serial.print("Temp16: ");
  Serial.println(temp16);
  Serial.print("Temp17: ");
  Serial.println(temp17);



 
  Daten_senden(temp11, temp12, temp13, temp14, temp15, temp16, temp17);                                 // Temperaturdaten an Server übertragen
 
  delay(1700);
 
  byte maxReads = 10;  //Seconds
  while ((maxReads-- > 0) && client.connected())              // Antwort des Servers lesen
  {
    delay(3000);
    while (client.available())
    {
      char response = client.read();
      Serial.print(response);
    }
  }
  client.stop();
  Serial.println("Done.");
  client.flush();
 
  delay(Interval);
}
 
/******************************
                              *
  Daten an Server schickenn   *
                              *
*******************************/
void Daten_senden(float T11, float T12, float T13, float T14, float T15, float T16, float T17)
{
  if (client.connect(server, 80)) // Verbindung zum Server aufbauen
  {
    Serial.println("Verbunden, Sende Daten...");
    client.print("GET " + String(url));
    Serial.println("GET " + String(url));
    client.print("&T11=");
    Serial.print("&T11=");
    client.print(T11);
    Serial.println(T11);
    client.print("&T12=");
    Serial.print("&T12=");
    client.print(T12);
    Serial.println(T12);
    client.print("&T13=");
    Serial.print("&T13=");
    client.print(T13);
    Serial.println(T13);
    client.print("&T14=");
    Serial.print("&T14=");
    client.print(T14);
    Serial.println(T14);
    client.print("&T15=");
    Serial.print("&T15=");
    client.print(T15);
    Serial.println(T15);
    client.print("&T16=");
    Serial.print("&T16=");
    client.print(T16);
    Serial.println(T16);
    client.print("&T17=");
    Serial.print("&T17=");
    client.print(T17);
    Serial.println(T17);
    client.print("&key=" + String(key));
    Serial.print("&key=" + String(key));
    client.println(" HTTP/1.1");
    Serial.println(" HTTP/1.1");
    client.print("Host: " + String(host));
    Serial.print("Host: " + String(host));
    client.println();
    Serial.println();
    client.println("User-Agent: Arduino");
    Serial.println("User-Agent: Arduino");
    client.println("Connection: close");
    Serial.println("Connection: close");
    client.println();
    Serial.println();
  }
  else
  {
    Serial.println(" ***** VERBINDUNG KANN NICHT HERGESTELLT WERDEN *****");
  }
}
 
/*************************************
                                     *
  Temperatur der Sensoren auslesen   *
                                     *
*************************************/
void writeTimeToScratchpad(byte* address)
{
  ds.reset();
  ds.select(address);
  ds.write(0x44,1);
  delay(3000);
}
 
void readTimeFromScratchpad(byte* address, byte* data)
{
  ds.reset();
  ds.select(address);
  ds.write(0xBE);
  for (byte i=0;i<9;i++)
  {
    data[i] = ds.read();
  }
}
 
float getTemperature(byte* address)
{
  int tr;
  byte data[12];
 
  writeTimeToScratchpad(address);
 
  readTimeFromScratchpad(address,data);
 
  tr = data[0];
 
  if (data[1] > 0x80)
  {
    tr = !tr + 1; //two's complement adjustment
    tr = tr * -1; //flip value negative.
  }
 
   int cpc = data[7];
   int cr = data[6];
 
   tr = tr >> 1;
 
   return tr - (float)0.25 + (cpc - cr)/(float)cpc;
}
 
Laatst bewerkt door een moderator:
Ik heb de code tags om je tekst geplaatst dat leest iets makkelijker.
 
Plaatst je vraag in een forum van Arduino.
Ik heb ook eens een countdown clocks gemaakt.
Ik kan geen weg met de codes van Arduino ik moet ook zoeken en afhalen van internet.

https://randomnerdtutorials.com/insider/
 

Bijlagen

  • ESP8266_Web_Server_with_Arduino_IDE.zip
    1,6 MB · Weergaven: 44
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan