datalog op webserver
4 berichten
• Pagina 1 van 1
datalog op webserver
Hoi,
mijnontmaagding op dit forum...
Ik heb een simpele sensor, BMP085 temperatuur en druk.
Op mijn webserver draait een php scriptje dat data in een database stopt.
In onderstaande code wordt de ethernetshield verbonden, de sensor uitgelezen. Die waarden wil ik een url stoppen en de webserver aanroepen. Het lukt bijna.
Hoe krijg ik de waarden van de sensor in de url?
Hoe krijg ik het voor mekaar dat de url in de loop, altijd, wordt aangeroepen? Nu gebeurt it slecht eenmalig. De verbinding blijft open, toch?
mijnontmaagding op dit forum...
Ik heb een simpele sensor, BMP085 temperatuur en druk.
Op mijn webserver draait een php scriptje dat data in een database stopt.
In onderstaande code wordt de ethernetshield verbonden, de sensor uitgelezen. Die waarden wil ik een url stoppen en de webserver aanroepen. Het lukt bijna.
Hoe krijg ik de waarden van de sensor in de url?
Hoe krijg ik het voor mekaar dat de url in de loop, altijd, wordt aangeroepen? Nu gebeurt it slecht eenmalig. De verbinding blijft open, toch?
- Code: Alles selecteren
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xEE, 0xEB, 0xFE, 0xFD };
char server[] = "www.mywebsite.nl";
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,1,177);
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup()
{
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Sensor niet gevonden, check aansluitingen");
while (1) {}
}
// Open serial communications and wait for port to open:
Serial.begin(9600);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
}
else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop()
{
Serial.print("Temperatuur = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Druk = ");
Serial.print(bmp.readPressure()/100);
Serial.println(" mBar");
// Make a HTTP request:
client.println("GET /trigger.php?temp=220&pressure=1015 HTTP/1.1");
client.println("Host: www.mywebsite.nl");
client.println();
delay(5000);
}
Advertisement
Re: datalog op webserver
Je kunt een pagina reloaden met standaard HTML code:
client.println("<meta http-equiv=\"refresh\" url=http://192.168.40.24");
client.println("<meta http-equiv=\"refresh\" url=http://192.168.40.24");
Re: datalog op webserver
Dan beantwoord ikmijn eigen vraag wel
- Code: Alles selecteren
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xBE, 0xCC, 0xEE, 0xEF, 0xFE, 0xED };
char server[] = "www.mijnwebsite.nl"; // name address for Google (using DNS)
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,1,98);
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
}
void loop()
{
if (client.connect(server, 80)) {
Serial.print("Connected...");
client.print("GET /pagina.php?temperatuur=");
Serial.print("GET /pagina.php?temperatuur=");
client.print(bmp.readTemperature());
Serial.print(bmp.readTemperature());
client.print("&pressure=");
Serial.print("&pressure=");
client.print(bmp.readPressure());
Serial.print(bmp.readPressure());
client.println(" HTTP/1.1");
Serial.println(" HTTP/1.1");
client.println("Host: www.mijnwebsite.nl");
Serial.println("Host: www.mijnwebsite.nl");
client.println("Connection: close");
Serial.println("Connection: close");
client.println();
Serial.println();
delay(100);
client.stop();
}
else {
// If you didn't get a connection to the server:
Serial.println("Connection failed");
}
delay(299900); // 5 minuten delay. 100millisec hadden we reeds, dus 5x60x1000-100=299900
}
Re: datalog op webserver
Mooi, opslaan op een webserver is dus gelukt, ik neem aan dat je de opgeslagen waardes ook wilt uitlezen ?
Hier een url van een tooltje wat ik gebruik om waardes weer te geven: http://morrisjs.github.io/morris.js/index.html
Dit is open source.
Mocht je nog vragen hebben dan horen we het wel weer.
Bedankt voor het delen van je oplossing trouwens
Ik kom net terug van vakantie, dus zag je vraag pas nadat je zelf de oplossing al had gevonden
Hier een url van een tooltje wat ik gebruik om waardes weer te geven: http://morrisjs.github.io/morris.js/index.html
Dit is open source.
Mocht je nog vragen hebben dan horen we het wel weer.
Bedankt voor het delen van je oplossing trouwens
Ik kom net terug van vakantie, dus zag je vraag pas nadat je zelf de oplossing al had gevonden
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten