Открытие HTML странички

IUS
Offline
Зарегистрирован: 15.01.2015

Доброго времени суток. Просмотрел первые 3листа подобной темы не нашел, если уже есть дайте ссылку.

Вопрос в следующем: через WEB сервер , открывать страничку HTML которая лежит , на SD карте.

Аппаратную часть я уже запустил. Осталось разобраться с чтением странички.

Нашёл http://www.ladyada.net/learn/arduino/ethfiles.html но очень на мой взгляд мозг взрывает, и к томуже с библиотеками какая-то лажа , не смог скачать.

Прошу не писать по поводу вирусов и безопасности, мнеб пока разобраться с азами.

Подскажите плиз с кодом, а лучше ссылочку. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Собрать аппаратную часть в случае с ардуино ну просто глобальная задача :) Вы спросили какую то ерунду. У вас есть где то сервер и вы хотите что бы клиенты открывали файлы с sd карты воткнутой в вашу аппаратную часть ардуино ? 

Может это чем то поможет http://forum.amperka.ru/threads/ethernet-sd-card.126/

IUS
Offline
Зарегистрирован: 15.01.2015

Уточню вопрос.

В строке  File f = SD.open("STR.html");   Serial.println(f);  В F  не пишится 1 , хотя другие расширения читаются прекрасно.

ниже пример кода. что не так?

 #include <Ethernet.h>

#include <SD.h>

#include <SPI.h>
 
#define BUFFER_SIZE 192
#define ETH_SS 10
#define SD_SS 4
 
#define SWITCH_TO_W5100 digitalWrite(4,HIGH); digitalWrite(10,LOW)
#define SWITCH_TO_SD digitalWrite(10,HIGH); digitalWrite(4,LOW)
#define ALL_OFF digitalWrite(10,HIGH); digitalWrite(4,HIGH)
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
EthernetServer server(80);
 
void setup() 
{
  Serial.begin(9600);
  
  pinMode(4, OUTPUT);
  pinMode(10, OUTPUT);
  SWITCH_TO_W5100;
      Ethernet.begin(mac,ip);
      server.begin();
  SWITCH_TO_SD;
      if (!SD.begin(4)) Serial.println("initialization failed!");
      else Serial.println("initialization done.");
  }
void loop()
{
    EthernetClient client = server.available();
    byte buff[BUFFER_SIZE];
 
    if (client) {
        boolean eol = true;
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
                if (c == '\r')
                    continue;
 
                if (c == '\n' && eol) {
                    File f = SD.open("STR.html");
                     Serial.println(f);
                     if (f) {
                        client.println("HTTP/1.1 200 OK");
                        client.println("Content-Type: text/html");
                        client.println();
                       while (true) {
                            int n = f.read((char*)buff, BUFFER_SIZE);
                            if (!n)
                                break;
                            client.write(buff, n);
                        }
 
                        f.close();
                    } else {
                        client.println("HTTP/1.1 404 Not Found");
                        client.println("Content-Type: text/plain");
                        client.println();
                        client.println("Not found");
                        client.println();
                    }
 
                    break;
                }
 
                eol = (c == '\n');
            }
        }
 
        client.stop();
    }
}

 

#include <Ethernet.h>
#include <SD.h>
#include <SPI.h>
 
#define BUFFER_SIZE 192
#define ETH_SS 10
#define SD_SS 4
 
#define SWITCH_TO_W5100 digitalWrite(4,HIGH); digitalWrite(10,LOW)
#define SWITCH_TO_SD digitalWrite(10,HIGH); digitalWrite(4,LOW)
#define ALL_OFF digitalWrite(10,HIGH); digitalWrite(4,HIGH)
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
EthernetServer server(80);
 
void setup() 
{
  Serial.begin(9600);
  
  pinMode(4, OUTPUT);
  pinMode(10, OUTPUT);
  SWITCH_TO_W5100;
      Ethernet.begin(mac,ip);
      server.begin();
  SWITCH_TO_SD;
      if (!SD.begin(4)) Serial.println("initialization failed!");
      else Serial.println("initialization done.");
  }
void loop()
{
    EthernetClient client = server.available();
    byte buff[BUFFER_SIZE];
 
    if (client) {
        boolean eol = true;
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
                if (c == '\r')
                    continue;
 
                if (c == '\n' && eol) {
                    File f = SD.open("STR.html");
                     Serial.println(f);
                     if (f) {
                        client.println("HTTP/1.1 200 OK");
                        client.println("Content-Type: text/html");
                        client.println();
                       while (true) {
                            int n = f.read((char*)buff, BUFFER_SIZE);
                            if (!n)
                                break;
                            client.write(buff, n);
                        }
 
                        f.close();
                    } else {
                        client.println("HTTP/1.1 404 Not Found");
                        client.println("Content-Type: text/plain");
                        client.println();
                        client.println("Not found");
                        client.println();
                    }
 
                    break;
                }
 
                eol = (c == '\n');
            }
        }
 
        client.stop();
    }
}
IUS
Offline
Зарегистрирован: 15.01.2015

Еще раз привет .

Сам допер (как говорится дело было не в бобине) Я пытался прочитать файл HTML , а всего-то надо было прочитать его как ТХТ .

И тогда он в браузере  открывается как HTML, правда почему-то русски шрифт не хочет отображать, но на это у меня ещё пару часиков есть, если что подскажите , буду очень рад . 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Это надо с файлом играться.Менять кодировки.В теме про шрифты было,да я запамятовал.Попробуйте сохранить вашу страничку в UTF,win1251.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Да у вас тут прям клоунада какая то !!!! Вы бы хоть чуть чуть чего нибудь почитали.... Библиотека c помощью которой вы пытаетесь открыть файл в явном виде поддерживает только файлы со стркутурой имени СТРОГО 8 символов имени+ 3 символа расширения. Измените расширение файла на специально заточенное под такой расклад HTM. Или смените библиотеку на расширенную и ройте инет на тему трансляции имени в короткий формат ... Блин ну просто цирк.....

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

quote=IUS]

И тогда он в браузере  открывается как HTML, правда почему-то русски шрифт не хочет отображать, но на это у меня ещё пару часиков есть, если что подскажите , буду очень рад . 

[/quote]

на HTML нужен тег  <meta charset="windows-1251">

IUS
Offline
Зарегистрирован: 15.01.2015

Спасибо, большое.

А небылоб-цирка, я-б не спрашивал, а отвечал:) А чтоб чтото прочитать, надо знать что читить:) в любом случае большое спасибо, хотя просьба кидать ссылки где читать . 

Я-ж тока учусь.

pastry777
Offline
Зарегистрирован: 16.01.2014

Не,не настолько строго....строго не больше 8+3....