Buggfix Plus
Aktuellt datum och tid: 17.17 2019-03-18

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 9 inlägg ] 
Författare Meddelande
InläggPostat: 20.38 2019-01-06 

Blev medlem: 23.36 2010-01-11
Inlägg: 30
God dag!

Jag har laborerat med WiFi modul och fått det att fungera. Arduinon kopplar upp sig mot WiFi och skickar ut min html kod när jag anropar den IP adressen.

Nu till mitt problem.

Jag har en avståndsmätare av enklaste modell som i exempelkoden skriver till serielmonitor. Det jag nu skulle vilja göra är att värdet från avståndsmätaren skall skickas till webbsidan.
I nuläget skickas bara exakt den text jag för in i html koden, har gjort några mediokra försök att hänvisa in värdet men den skriver bara "distance" på websidan.

Bifogar min kod här så kanske ni kan hjälpa mig. Jag har använt mig av koden som finns på kjell&co.

Längst ner finns avståndsmätarens kodsnutt.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#include "WiFiEsp.h"
#include <SoftwareSerial.h>


// Create WiFi module object on GPIO pin 6 (RX) and 7 (TX)
SoftwareSerial Serial1(6, 7);

// Declare and initialise global arrays for WiFi settings
char ssid[] = "HD-EXT";
char pass[] = "********";

// Declare and initialise variable for radio status
int status = WL_IDLE_STATUS;

// Create a web server on port 80
WiFiEspServer server(80);

 int inputPin=2; //ECHO pin
 int outputPin=4; //TRIG pin

void setup() {
// Initialize serial for debugging
  Serial.begin(115200);
 
  // Initialize serial for ESP module
  Serial1.begin(9600);
 
  // Initialize ESP module
  WiFi.init(&Serial1);

  // Check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
   
    // Don't continue
    while (true);
  }
 
  // Attempt to connect to WiFi network
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
   
    // Connect to WPA/WPA2 network
    status = WiFi.begin(ssid, pass);
  }

  Serial.println("You're connected to the network");
  printWifiStatus();

  // Start the web server
  server.begin();
}
 void printWifiStatus() {
 
  // Print the SSID of the network
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // Print the IP address
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

}

void loop() {

// Listen for incoming clients
  WiFiEspClient client = server.available();

  if (client) {
    Serial.println("New client");
   
    // An HTTP request ends with a blank line
    boolean currentLineIsBlank = true;
   
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);

        // If you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          Serial.println("Sending response");

          // Send a standard HTTP response header
          client.print(
            "HTTP/1.1 200 OK\r\n"
            "Content-Type: text/html\r\n"
            "Connection: close\r\n"
            "\r\n");
          client.print("<!DOCTYPE HTML>\r\n");
          client.print("<html>\r\n");
          client.print("<head>\r\n");
          client.print("<title>My Arduino</title>\r\n");
          client.print("</head>\r\n");
          client.print("<body>\r\n");
          client.print("<h1>distance</h1>\r\n");
          client.print("<p>We're online!</p>\r\n");
          client.print("</body>\r\n");
          client.print("</html>\r\n");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
   
    // Give the web browser time to receive the data
    delay(10);

    // Close the connection:
    client.stop();
    Serial.println("Client disconnected");
  }
   {
   digitalWrite(outputPin, HIGH); //Trigger ultrasonic detection
   delayMicroseconds(10);
   digitalWrite(outputPin, LOW);
   int distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection
   distance= distance/58; //Calculate distance
   Serial.println(distance); //Print distance
   delay(2000);
 }
}


Det är alltså där det nu står ”distance” i HTML koden jag vill ha in värdet


Senast redigerad av EonX 21.08 2019-01-06, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 20.56 2019-01-06 

Blev medlem: 11.20 2009-05-26
Inlägg: 5563
Ort: Kristinehamn
Skall det inte stå:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
int distance =pulseIn(echoPin, HIGH); //Read ultrasonic reflection

i stället för:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
int distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection


Upp
 Profil  
 
InläggPostat: 21.00 2019-01-06 

Blev medlem: 23.36 2010-01-11
Inlägg: 30
Jag har kört ”bara” den koden och då skriver den ut allt som den ska. Men jag håller med dig, det ser mer rätt ut. Jag provar att ändra det. Tackar :)


Upp
 Profil  
 
InläggPostat: 22.34 2019-01-06 

Blev medlem: 10.47 2015-02-26
Inlägg: 5
Jo, men felet är ju att du bara skriver ut texten "distance" i din html. Du ska göra en funktion av det sista där den hämtar värdet till en variabel som du sen skriver ut i html.


Upp
 Profil  
 
InläggPostat: 22.39 2019-01-06 

Blev medlem: 23.36 2010-01-11
Inlägg: 30
I see, men i slutet är ju distance en int som skrivs ut i serial printer, och då visas ju rätt värde.

Behöver jag göra nått mer med själva värdet (alltså int distance) innan jag kan stoppa in det i HTML koden? Och i så fall hur bör jag göra det?


Upp
 Profil  
 
InläggPostat: 23.01 2019-01-06 

Blev medlem: 10.47 2015-02-26
Inlägg: 5
Kanske så här
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#include "WiFiEsp.h"
#include <SoftwareSerial.h>


// Create WiFi module object on GPIO pin 6 (RX) and 7 (TX)
SoftwareSerial Serial1(6, 7);

// Declare and initialise global arrays for WiFi settings
char ssid[] = "HD-EXT";
char pass[] = "********";

// Declare and initialise variable for radio status
int status = WL_IDLE_STATUS;

// Create a web server on port 80
WiFiEspServer server(80);

 int inputPin=2; //ECHO pin
 int outputPin=4; //TRIG pin

void setup() {
// Initialize serial for debugging
  Serial.begin(115200);
 
  // Initialize serial for ESP module
  Serial1.begin(9600);
 
  // Initialize ESP module
  WiFi.init(&Serial1);

  // Check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
   
    // Don't continue
    while (true);
  }
 
  // Attempt to connect to WiFi network
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
   
    // Connect to WPA/WPA2 network
    status = WiFi.begin(ssid, pass);
  }

  Serial.println("You're connected to the network");
  printWifiStatus();

  // Start the web server
  server.begin();
}
 void printWifiStatus() {
 
  // Print the SSID of the network
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // Print the IP address
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

}

void loop() {

// Listen for incoming clients
  WiFiEspClient client = server.available();

  if (client) {
    Serial.println("New client");
   
    // An HTTP request ends with a blank line
    boolean currentLineIsBlank = true;
   
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);

        // If you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          Serial.println("Sending response");

          // Send a standard HTTP response header
          client.print(
            "HTTP/1.1 200 OK\r\n"
            "Content-Type: text/html\r\n"
            "Connection: close\r\n"
            "\r\n");
          client.print("<!DOCTYPE HTML>\r\n");
          client.print("<html>\r\n");
          client.print("<head>\r\n");
          client.print("<title>My Arduino</title>\r\n");
          client.print("</head>\r\n");
          client.print("<body>\r\n");
          client.print("<h1>distance");
          client.print(getDistance());
          client.print("</h1>\r\n");
          client.print("<p>We're online!</p>\r\n");
          client.print("</body>\r\n");
          client.print("</html>\r\n");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
   
    // Give the web browser time to receive the data
    delay(10);

    // Close the connection:
    client.stop();
    Serial.println("Client disconnected");
  }
}

int getDistance(void)
{
   digitalWrite(outputPin, HIGH); //Trigger ultrasonic detection
   delayMicroseconds(10);
   digitalWrite(outputPin, LOW);
   int distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection
   distance= distance/58; //Calculate distance
   Serial.println(distance); //Print distance
   return distance;   
}


Upp
 Profil  
 
InläggPostat: 20.38 2019-01-07 

Blev medlem: 23.36 2010-01-11
Inlägg: 30
Fungerar alldeles utmärkt. Tack så mycket för hjälpen :)


Upp
 Profil  
 
InläggPostat: 21.15 2019-01-07 
Admin
Användarvisningsbild

Blev medlem: 14.59 2003-05-26
Inlägg: 7786
Ort: Solna
Eftersom du hade distance i mellan " " ihop med annan text så ser den inte distance som en variabel utan som text.


Upp
 Profil  
 
InläggPostat: 10.48 2019-01-08 

Blev medlem: 23.36 2010-01-11
Inlägg: 30
Hur fungerar själva mätningen med denna kod?

Görs en mätning när jag uppdaterar webbsidan eller mäter avståndsmätaren hela tiden?


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 9 inlägg ] 

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: papabear och 4 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
    Electrokit
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010