2015-03-01 2 views
0

У меня есть arduino wifi shield.I хочу прочитать текстовый файл с веб-страницы с некоторыми командами. Я буду разбирать команды из html-файла и собираться управлять arduino с веб-страницы, например что .. Проблема в том, что я не понимаю, как мне читать данные, так что arduino будет удаленно открывать led.If я использую код ниже каждый раз, когда мне нужно открыть последовательный монитор, чтобы включить led.But, я хочу, чтобы этот процесс завершен внутри arduino, я не хочу зависеть от последовательного монитора. Как я сказал, он должен работать, когда он не подключен к компьютеру. Как я могу это сделать, я хочу знать, что я должен понять, прежде всего, чтобы это сделать.Чтение данных из Интернета с использованием arduino wifi shield

#include <SPI.h> 
#include <WiFi.h> 
char lf=10; 
int x=0; 
char ssid[] = "AIRTIES_RT-205"; // your network SSID (name) 
char pass[] = ""; // your network password (use for WPA, or use as key for WEP) 
int keyIndex = 0;   // your network key Index number (needed only for WEP) 
String readString, readString1; 
int status = WL_IDLE_STATUS; 
// if you don't want to use DNS (and reduce your sketch size) 
// use the numeric IP instead of the name for the server: 
//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS) 
char server[] = "taylankaan-001-site1.myasp.net"; // name address for Google (using DNS) 

// 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): 
WiFiClient client; 

void setup() { 
    //Initialize serial and wait for port to open: 
    Serial.begin(9600); 
    while (!Serial) { 
    ; // wait for serial port to connect. Needed for Leonardo only 
    } 

    // check for the presence of the shield: 
    if (WiFi.status() == WL_NO_SHIELD) { 
    Serial.println("WiFi shield not present"); 
    // don't continue: 
    while (true); 
    } 

    String fv = WiFi.firmwareVersion(); 
    if (fv != "1.1.0") 
    Serial.println("Please upgrade the firmware"); 

    // 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. Change this line if using open or WEP network: 
    status = WiFi.begin(ssid); 

    // wait 10 seconds for connection: 
    delay(10000); 
    } 

    //printWifiStatus(); 

    //Serial.println("\nStarting connection to server..."); 
    // if you get a connection, report back via serial: 
    if (client.connect(server, 80)) { 
    Serial.println("connected to server"); 
    // Make a HTTP request: 
    client.println("GET /asp.txt HTTP/1.1"); 
    client.println("Host: taylankaan-001-site1.myasp.net"); 
    client.println("Connection: close"); 
    client.println(); 
    } 
} 
String command; 

void loop() { 

while(client.connected() && !client.available()) delay(1); //waits for data 
    while (client.connected() || client.available()) { //connected or data available 
    char c = client.read(); 

    if (c == '\n') { 
     parseCommand(command); 
     command = ""; 
    } 
    else { 
     command += c; 
    } 

    } 

    if (!client.connected()) { 
    Serial.println(); 
    Serial.println("disconnecting from server."); 
    client.stop(); 

    while (true); 
    } 
    } 





void printWifiStatus() { 
    // print the SSID of the network you're attached to: 
    Serial.println("Connected to network"); 

    Serial.print(WiFi.SSID()); 


if(WiFi.RSSI()>=-35){ 
    Serial.println("Very good connection"); 
    } 
    if(WiFi.RSSI()>=-65 && WiFi.RSSI()<-35){ 
    Serial.println("%50 good connected"); 
    } 
    if(WiFi.RSSI()<-65){ 
    Serial.println("Worst connection"); 
    } 


    } 




void parseCommand(String com) { 
    String part1; 
    String part2; 

    //PINON 13 

    part1 = com.substring(0, com.indexOf(" ")); 

    part2 = com.substring(com.indexOf(" ") + 1); 

    if (part1.equalsIgnoreCase("openled")) { 

    digitalWrite(9, HIGH); 
    } 
} 

ответ

0

хорошо это было смешно, но после реализации его о последовательном порту я попробовал несколько вещей, и причина для меня, чтобы ждать последовательного порта: (! Serial) в то время как { ; // ждать подключения последовательного порта. Нужно только для Леонардо } Мне не нравилось, что для этого используется, и теперь видят, что это предотвращает все, кроме последовательного порта.

Смежные вопросы