Arduino + UV传感器+以太网+ LED +发送数据

时间:2017-03-29 21:09:26

标签: mysql arduino ethernet

我正在制作一个包含arduino +以太网盾+ leds + UV传感器的项目,我需要将数据(我从传感器接收到的)发送到mysql数据库

#include <Wire.h>
#include "Adafruit_SI1145.h"
#include <SPI.h>
#include <Ethernet.h>

//leds
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

//arduino pin usado + leds nr pins usados
#define PIN            6
#define NUMPIXELS      20


Adafruit_SI1145 uv = Adafruit_SI1145();
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

//delay leds
int delayval = 25; // delay for half a second


byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Enter the IP address for Arduino, as mentioned we will use 192.168.0.16
// Be careful to use , insetead of . when you enter the address here
IPAddress ip(192,168,137,11);



IPAddress server(192,168,137,1); // IMPORTANT: If you are using XAMPP you will have to find out the IP address of your computer and put it here (it is explained in previous article). If you have a web page, enter its address (ie. "www.yourwebpage.com")
//char server[] = "localhost";

// Initialize the Ethernet server library
EthernetClient client;

void setup() {

  // Serial.begin starts the serial connection between computer and Arduino
  Serial.begin(9600);
pixels.begin();


  //start UV sensor
  if (! uv.begin()) {
    Serial.println("UV desligado");
  }

  Serial.println ("UV ligado");

  // start the Ethernet connection
  Ethernet.begin(mac, ip);

}

void loop() {
 if (client.connect(server,80) > 0) {

     while(client.connected()) {

   // get data from sensor
   float UVindex = uv.readUV();
   UVindex /= 100.0;
   Serial.print("UV BEFORE LEDS/DB");Serial.println(UVindex);


     if(UVindex==0.02){
   Serial.print("UV: ");  Serial.println(UVindex);

     for(int i=0;i<NUMPIXELS;i++){
      pixels.setPixelColor(i, pixels.Color(150,0,0)); // Moderately bright green color.
      pixels.show(); // This sends the updated pixel color to the hardware.
       delay(delayval); // Delay for a period of time (in milliseconds)
         }

  }
  else if(UVindex == 0.01){
    Serial.print("UV: ");  Serial.println(UVindex);

     for(int i=0;i<NUMPIXELS;i++){
      pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.
      pixels.show(); // This sends the updated pixel color to the hardware.
       delay(delayval); // Delay for a period of time (in milliseconds)

         }
  }

   else if(UVindex == 0.03){
    Serial.print("UV: ");  Serial.println(UVindex);

     for(int i=0;i<NUMPIXELS;i++){
      pixels.setPixelColor(i, pixels.Color(0,0,150)); // Moderately bright green color.
      pixels.show(); // This sends the updated pixel color to the hardware.
       delay(delayval); // Delay for a period of time (in milliseconds)

         }
  }

      // Header start
     Serial.println("connected");
     client.print("GET /arduino_client_UV_VALUES/pap/getUV.php?");
     client.print("uv=");
     client.print(UVindex);
     client.println(" HTTP/1.1");
     client.println("Host: 192.168.137.1");
     //client.println("Connection: close");
     client.println();
     // Header finish

     delay(1000);

    }



Serial.println();

  } else {
    Serial.println(server);
    Serial.println("connection failed");
  }


  // Give the server some time to recieve the data and store it. I used 10 seconds here. Be advised when delaying. If u use a short delay, the server might not capture data because of Arduino transmitting new data too soon.
  delay(1000);
}

这是我的代码...我的问题是连接总是失败,我不知道该怎么做。有人能帮我吗?

除连接

外,一切正常

1 个答案:

答案 0 :(得分:0)

尝试更改以下内容

IPAddress server(192,168,137,1);

char server[] = "192.168.137.1";