Arduino Buffer POST PHP

时间:2014-10-10 05:12:54

标签: php mysql arduino arduino-uno

我正在尝试构建一个应用程序,它通过带有Arduino的PS / 2阅读器读取BarCode,并将其发送到MySQL数据库,这是我正在使用的代码,但它似乎无法正常工作与PHP部分。我做错了什么?感谢任何帮助,对任何英语错误感到抱歉。

    #include <PS2Keyboard.h>
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // RESERVED MAC ADDRESS
EthernetClient client;


int SCAN_ENTER = 0x5a; int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 3; // Clock is only output. 
int dataPin = 2; // The data pin is bi-directional
                // But at the moment we are only interested in receiving   
int ledPin = 13;  // When a SCAN_ENTER scancode is received the LED blink
int clockValue = 0; byte dataValue;
byte scanCodes[10] = {0x45,0x16,0x1e,0x26,0x25,0x2e,0x36,0x3d,0x3e,0x46}; char characters[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int quantityCodes = 10;
char buffer[64] = {};   // This saves the characters (for now only numbers) 
int bufferPos = 0; 
int bufferLength = 64;

void setup() {
    pinMode(dataPin, INPUT);                                               
    pinMode(clockPin, INPUT);                                              
    pinMode(ledPin, OUTPUT);                                               
    Serial.begin(9600);    

    if (Ethernet.begin(mac) == 0) {
        Serial.println("Failed to configure Ethernet using DHCP"); 

}
 }


void loop() {

     dataValue = dataRead();                                               
    // If there is a break code, skip the next byte                        
    if (dataValue == SCAN_BREAK) {                                         
        breakActive = 1;                                                     
    }                                                                      
    // Translate the scan codes to numbers                                 
    // If there is a match, store it to the buffer                         
    for (int i = 0; i < quantityCodes; i++) {                              
        byte temp = scanCodes[i];                                            
        if(temp == dataValue){                                               
            if(!breakActive == 1){                                             
                buffer[bufferPos] = characters[i];                               
                bufferPos++;                                                     
            }                                                                  
        }                                                                    
    }                                                                      
    //Serial.print('*'); // Output an asterix for every byte               
    // Print the buffer if SCAN_ENTER is pressed.                          
    if(dataValue == SCAN_ENTER){                                           
        Serial.print("");  //Texto antes do codigo                                        
        // Read the buffer                                                   
        int i=0;                                                                                                 
        if (buffer[i] != 0) {                                                
            while(buffer[i] != 0) {                                            
                Serial.print( buffer[i] );                                       
                buffer[i] = 0;                                                   
                i++;                                                             
            }                                                                  

        Serial.println("");                                          
        bufferPos = 0;                                                       
        // Blink the LED                                                       
        digitalWrite(ledPin, HIGH);                                          
        delay(300);                                                          
        digitalWrite(ledPin, LOW);                                           

     }
               if (client.connect("192, 168, 0, 66",80)) { // REPLACE WITH YOUR SERVER ADDRESS
        client.println("POST /add.php HTTP/1.1"); 
        client.println("Host: 192, 168, 0, 66"); // SERVER ADDRESS HERE TOO
        client.println("Content-Type: application/x-www-form-urlencoded"); 
        client.print("Content-Length: "); 
        client.println(buffer[i]); 
        client.println(); 
        client.print( buffer[i] ); 
    } 
        }
    if (client.connected()) { 
        client.stop();  // DISCONNECT FROM THE SERVER
    }
    if(dataValue != SCAN_BREAK){                                           
        breakActive = 0;                                                     
    }                                                                      
    dataValue = 0;                                                         
  }

int dataRead() {
    byte val = 0;                                                          
    // Skip start state and start bit                                      
    while (digitalRead(clockPin));  // Wait for LOW.                       
    // clock is high when idle                                             
    while (!digitalRead(clockPin)); // Wait for HIGH.                      
    while (digitalRead(clockPin));  // Wait for LOW.                       
    for (int offset = 0; offset < 8; offset++) {                           
        while (digitalRead(clockPin));         // Wait for LOW               
        val |= digitalRead(dataPin) << offset; // Add to byte                
        while (!digitalRead(clockPin));        // Wait for HIGH              
    }                                                                      
// Skipping parity and stop bits down here.                            
    while (digitalRead(clockPin));           // Wait for LOW.              
    while (!digitalRead(clockPin));          // Wait for HIGH.             
    while (digitalRead(clockPin));           // Wait for LOW.              
    while (!digitalRead(clockPin));          // Wait for HIGH.             
    return val;                                                            
}

0 个答案:

没有答案