Skocz do zawartości

Pomocna odpowiedź

@Leoneq Wrzuć zipa z całym projektem bo trochę mi się to nie składa a chciałbym gotową wersje zobaczyć ewentualnie dodaj w spoilerze 

Zamierzam taki zip dodać pod koniec kursu. Więc maks. do 15 marca powinieneś mieć całego zipa z projektem i bibliotekami.

Cytat

<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body>

Po co się dodaje integrity oraz crossorigin?

(edytowany)

Dodaje się te argumenty dla bezpieczeństwa, podczas ładowania skryptów np. z CDN. Integrity kontroluje czy plik nie został zmieniony (np. podczas ataku), a crossorigin informuje przeglądarkę o tym, kto chce zasoby (no, a przynajmniej ja tak to sobie tłumaczę). Anonymous nie potrzebuje potwierdzenia tożsamości, a use-credentials wymaga dodatkowych informacji do ustalenia tożsamości. Jeżeli chcesz dołączyć pliki lokalne, np. z dysku czy FS - nie przejmuj się tymi argumentami. Myślę że @ethanak ci to lepiej wytłumaczy.

Edytowano przez Leoneq
  • Lubię! 1
  • 7 miesiące później...

Cześć, mieliście taki problem, że podczas próby wgrania pliku index.html poprzez "Upload File System Image" wyskakiwał wam taki komunikat? "There is no task provider registered for tasks of type "PlatformIO"."

  • 1 rok później...

nie weim dlaczego na mojej stronie po wgraniu tego kodu co jest w kursie mam pustke ? Gdzie dokładnie mam dać mój plik index.html? w nowym folderu czy to może tego wina ? bo kod mam chyba dobry 

//int dioda = 12;
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <LCD_I2C.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <FS.h>
#define dioda 2
LCD_I2C lcd(0x27, 16, 2);

 // Default address of most PCF8574 modules, change according

 const char* ssid = "Livebox-49E8";
const char* pass = "20C5487147E40CF90637C96663";
WiFiClient client; //obiekt wifi
ESP8266WebServer server(80);

//WiFiClient client;
String getPage()
{
  String strona;
  File file = SPIFFS.open("/index.html", "r");
  while(file.available()) strona+=(char)file.read();
  file.close();
  return strona;
}

void handleRoot()
{ 
  server.send (200, "text/html", getPage());
}

void handleOn()
{
  digitalWrite(dioda, LOW);
  server.send(200, "text/html", getPage());
}

void handleOff()
{
  digitalWrite(dioda, HIGH);
  server.send(200, "text/html", getPage()); 
}

void setup()
{
    pinMode(dioda, OUTPUT);
    lcd.begin(); // If you are using more I2C devices using the Wire library use lcd.begin(false)
                 // this stop the library(LCD_I2C) from calling Wire.begin()
    lcd.backlight();
    WiFi.begin(ssid, pass); //połącz z Wifi
  lcd.setCursor(0, 0);
  lcd.print("Laczenie ");
  while(WiFi.status() != WL_CONNECTED) //wyświetlaj animacje dopóki się nie połączyliśmy
  {
    lcd.setCursor(10,0);
    lcd.print(".");
    delay(400);
    lcd.setCursor(10,0);
    lcd.print(" ");
    delay(400);
  }
  lcd.setCursor(0, 0); //napisz, że połączono i wyświetl IP
  lcd.print("Polaczono! ");
  lcd.setCursor(0, 1);
  lcd.print("IP: ");
  lcd.print(WiFi.localIP());
  lcd.setCursor(0, 0);
lcd.print("SPIFFS ");
if(!SPIFFS.begin()) lcd.println("x");
else lcd.println("√");
  server.on("/", handleRoot);
  server.on("/on", handleOn);
  server.on("/off", handleOff);
  server.begin();
    
}




void loop()
{
    server.handleClient(); //obsługa serwera


}

 

192.PNG

dat.PNG

(edytowany)

Pytanie kontrolne: gdzie wgrałaś?

Pytanie kontrolne #2: co pokazuje wget z  włączonym wyświetlaniem nagłówków?

Pytanie kontrolne #3: co pokazuje sama funkcja getPage (np. wrzuć wypisanie rezultatu na końcu setup)

Jeszcze jedno: https://randomnerdtutorials.com/esp8266-web-server-spiffs-nodemcu/

A w ogóle to lepiej użyć LittleFS albo (to już trudnuejsze) FatFS.

Edytowano przez ethanak

srozsz.thumb.PNG.7424f8eaa65e79e724693cd5d8930cc0.PNG  czy chodzi o zainstalowanie jakiegos rozszezenia , którego nie mam ? jesli tak jakiego?

//int dioda = 12;
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <LCD_I2C.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <FS.h>
#define dioda 2
LCD_I2C lcd(0x27, 16, 2);

 // Default address of most PCF8574 modules, change according

 const char* ssid = "Livebox-49E8";
const char* pass = "20C5487147E40CF90637C96663";
WiFiClient client; //obiekt wifi
ESP8266WebServer server(80);

//WiFiClient client;
String getPage()
{
  String strona;
  File file = SPIFFS.open("/index.html", "r");
  while(file.available()) strona+=(char)file.read();
  file.close();
  return strona;
}

void handleRoot()
{ 
  server.send (200, "text/html", getPage());
}

void handleOn()
{
  digitalWrite(dioda, LOW);
  server.send(200, "text/html", getPage());
}

void handleOff()
{
  digitalWrite(dioda, HIGH);
  server.send(200, "text/html", getPage()); 
}

void setup()
{
    pinMode(dioda, OUTPUT);
    lcd.begin(); // If you are using more I2C devices using the Wire library use lcd.begin(false)
                 // this stop the library(LCD_I2C) from calling Wire.begin()
    lcd.backlight();
    WiFi.begin(ssid, pass); //połącz z Wifi
  lcd.setCursor(0, 0);
  lcd.print("Laczenie ");
  while(WiFi.status() != WL_CONNECTED) //wyświetlaj animacje dopóki się nie połączyliśmy
  {
    lcd.setCursor(10,0);
    lcd.print(".");
    delay(400);
    lcd.setCursor(10,0);
    lcd.print(" ");
    delay(400);
  }
  lcd.setCursor(0, 0); //napisz, że połączono i wyświetl IP
  lcd.print("Polaczono! ");
  lcd.setCursor(0, 1);
  lcd.print("IP: ");
  lcd.print(WiFi.localIP());
  lcd.setCursor(0, 0);
lcd.print("SPIFFS ");
if(!SPIFFS.begin()) lcd.println("x");
else lcd.println("√");
  server.on("/", handleRoot);
  server.on("/on", handleOn);
  server.on("/off", handleOff);
  server.begin();
    
}




void loop()
{
    server.handleClient(); //obsługa serwera


}

 

Nie wiem, moja rada: rzuć to PlatformIO do przetrwalnika, rób takie rzeczy na Arduino IDE, jak się tam nauczysz to będziesz mogła przejść na PlatformIO, czy (tak jak ja) na arduino-builder, esptool i makefile. 

BTW Atoma (czy inny edytor) możesz podpiąć do Arduino IDE.

Arduino IDE to połączenie fatalnego edytora z całkiem niegłupim frameworkiem. Do zbudowania strony jest potrzebny serwer i edytor. Serwer jest dokładnie ten sam czy używasz Arduino IDE, czy PlatformIO, czy czegokolwiek. Jak się uprzesz to możesz używać vi/vim, notepad++ czy emacsa - i tak wszystko wyląduje w builderze Arduino.

Domyslam sie że masz Windowsa - podepnij sobie notepad++ jako edytor do IDE (w preferencjach "użyj zewnętrznego edytora"). Pod Linuksem bardzo wygodny jest Geany, ale nie wiem czy wersja pod Win ma to samo co oryginalna linuksowa.

Jak masz wątpliwości co mozna zrobić w Arduino IDE to polecam mojego czytaka - raczej niewiele widzialem bardziej zaawansowantch kodów na Arduino.

Próbuj, trzy razy nie wyjdzie, za czwartym jest szansa.

I proszę - nie zgrywaj księżniczki na ziarnku grochu.  Użyj czasem googla czy wyszukiwarki z forum bo może się to skończyć tak jak ostatnio: podalem rozwiazanie ale komuś się forma  nie spodobała, i wyladowałaś w czarnej d...

Powodzenia.

  • Lubię! 1

No i lekcja numer jeden z używania wyszukiwarki ,:)

Poczekaj, za pół godziny będę w domu to podrzucę link - chyba że sama wcześniej znajdziesz 😞

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...