Skocz do zawartości
Mrpatryk

Przesyłanie danych na strone WWW

Pomocna odpowiedź

1 godzinę temu, kaczakat napisał:

127.0.0.1 to taki przykładowy IP czy taki faktycznie wstawiłeś do kodu?

tak wiem ze jest to lokalny adres, mam w xampie mysql i php postawiony IP serwera lokalnego 127.0.0.1 port 80, i nie mogę się nijak połączyć ;/

1 godzinę temu, deshipu napisał:

Może to, że 127.0.0.1 to jest zawsze lokalny adres — czyli adres tej maszyny, na której działa program. Jak rozumiem, ty się chcesz łączyć z innym komputerem, musisz więc podać jego zewnętrzny adres.

Właśnie chce połączyć się lokalnie , mam mysql w xampp'ie i php tez , umierszczam skrypt w xampp'ie i skrypt działa , błąd jest łączenia się z baza z poziomu esp ;/ nie wiem dlaczego nie chce połaczyc , port podany oraz ardess ip. 

Udostępnij ten post


Link to post
Share on other sites

Bo z poziomu ESP adres 127.0.0.1 wskazuje na ESP, a nie na twój komputer.

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, deshipu napisał:

Bo z poziomu ESP adres 127.0.0.1 wskazuje na ESP, a nie na twój komputer.

zmieniłem na adres mojej karty sieciowej po ipv4 , zaraz zobaczymy ,

też nie działa. To jak bedzie lokalny serwer xampa ? jakie bedzie miał IP ? mi pokazuje na phpmyadmin ze serwer 127.0.0.1 jest xampa mysql . a skoro esp jest podlaczony do tego samego wifi to powinien ten adres przypisac jako adres xampp, dobrze rozumiem ? 

Podałem teraz zamiast ip lokalnego serwera brame domyślną i niby wszystko przechodzi i łączy, jednak nie wysyła nic do bazy danych ani na stronke ... 

Udostępnij ten post


Link to post
Share on other sites

Jeśli twoja baza danych jest skonfigurowana tak, że słucha tylko na lokalnym adresie IP (127.0.0.1), to nie połączysz się z nią z zewnątrz. Takie ustawienia są domyślnie specjalnie, dla bezpieczeństwa.

Udostępnij ten post


Link to post
Share on other sites

W kwestii formalnej: domyślnie MySQL nie słucha nawet na adresie sieciowym 127.0.0.1, tylko na unix socket (chyba, że ktoś to na windowsie postawił).

Tak dla jełopów które majom problemy z dokumentacjom: 127.0.0.1 (inaczej "localhost") to w języku sieci oznacza "ja". A jeśli chcesz się połączyć np. z Kazikiem czy Mietkiem, to trzeba mu dać jakieś namiary (bo Mietek to nie ja, ale jakiś inny facet).

To tak samo jak ze zbieraniem na flaszkę. Jak nie masz kasy, to "ja" też nie ma (bo to w końcu ta sama osoba). No, ale Mietek może mieć, nie?

Tylko nie pytaj tu jaki jest adres Mietka, bo to Twój kumpel a nie nasz.

 

Udostępnij ten post


Link to post
Share on other sites
10 minut temu, deshipu napisał:

Jeśli twoja baza danych jest skonfigurowana tak, że słucha tylko na lokalnym adresie IP (127.0.0.1), to nie połączysz się z nią z zewnątrz. Takie ustawienia są domyślnie specjalnie, dla bezpieczeństwa.

szukam własnie jak właczyc tą opcje na xampie na lokalnym serwerze 

Udostępnij ten post


Link to post
Share on other sites

Tylko port 80 to chyba nie baza danych, więc ty chyba raczej chcesz się łączyć ze swoją aplikacją webową?

Udostępnij ten post


Link to post
Share on other sites
4 minuty temu, deshipu napisał:

Tylko port 80 to chyba nie baza danych, więc ty chyba raczej chcesz się łączyć ze swoją aplikacją webową?

Chcę tak zrobic by przesyłac dane z czujnikow do bazy danych , a potem zrobie stronke php by odczytywala wartosci z bazy .

Program mam tak jak na poprzedniej stronie, wypełniłem go danymi , zmieniłem w PHP , w bazie zrobilem base esp, tabele esp1 i reszta tak jak ma byc,  skrypt tez napisalem , a esp nie wysyła ani na stronke ani do bazy ... 

Udostępnij ten post


Link to post
Share on other sites

@Mrpatryk, kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu programy są odpowiednio formatowane i kolorowane, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Poprawiłem wcześniejsze Twoje posty z tego tematu, ale pamiętaj o tym w przyszłości 😉

Udostępnij ten post


Link to post
Share on other sites
#include <ESP8266WiFi.h>
const char* ssid= "******";
const char* password = "*******";
const int httpPort = 80;
const char* host = "127.0.0.1"; //IP serwera z MySQL
float temp=22.26, humidity=35.33;
  void setup() {
  Serial.begin(115200);
 WiFi.begin(ssid, password);  
 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
 }
Serial.println(WiFi.localIP());
}
void loop() {
  Serial.print("temperatura: ");
 Serial.println(temp);  
 
 temp+=1.02; //zmieniamy wartości do bazy danych dla lipy
 humidity+=1.05;  
 if(temp>40) 
 {
   temp=21.26;
   humidity=34.33;
 }

  WiFiClient client; //wysylanie do PHP i MySQL
 
  if (client.connect(host, 80))  {
String url = "/esp.php";
   url += "ID=1"; 
   url += "t="; 
   url += temp;
   url += "h="; 
   url += humidity;
 client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");  
 Serial.print("wyslano");
 }
  else
 {
Serial.println("connection failed"); 
 }
 delay(5000);               
}
<?php

define('DB_HOST','127.0.0.1') ;
define ('DBPORT', 'localhost:3306)'); 
define ('DBNAME', 'esp'); // nazwa bazy danych
define ('DBUSER', 'root'); // nazwa usera ustawic w PHPMYADMIN
define ('DBPASS', '1234'); // haslo usera ustawic w PHPMYADMIN
define ('dbconnection','mysql');
/* Laczenie z baza danych */
$con = mysqli_connect("localhost:3306","root", "1234" ) or die('Nie polaczono!');
mysqli_select_db ($con, 'esp' ) or die ('Brak polaczenia z baza danych!');
mysqli_query($con,'SET NAMES utf8');
$id = ($_GET['ID']); 
$temp = ($_GET['t']);
$hum = ($_GET['h']);

if ($id == '1') {
    $total = mysqli_result(mysqli_query("SELECT count(*) FROM `esp1`"),0);
    mysqli_query("INSERT INTO esp1 (temp,hum) values ('".$temp."','".$hum."') ");
}
echo 'Ок';
?>

Takie coś mam i dlaczego to nie dodaje mi do bazy danych nic . Moze ktoś to rozkmini.

Ma ktoś może jakiś gotowiec na przesyłanie danych do bazy danych ? pod ESP8266

próbowałem już wszystkiego chyba 🙂 i nerwica mnie bierze.

Udostępnij ten post


Link to post
Share on other sites

Na dysku mam odpalony serwer WWW, skrypt PHP jest po prostu częścią tego serwera, dlatego łączysz się do niego na IP serwera i port 80. Odpalony skrypt łączy się już na wewnętrzne IP bo na tym samym serwerze (dysku sieciowym) mam odpalony MySQL. Dlatego w skrypcie PHP jest to IP 127.0.0.1. Oczywiście baza jest już skonfigurowana i przetestowana. Dane przesyłane są przez skrypt PHP do bazy. Inny skrypt robi z tego wykresy i pokazuje przebieg zdarzeń przesyłanych z ESP w postaci wykresów wg fantazji programisty. Trochę klocków do całości Ci jeszcze brakuje. ESP możesz się zacząć bawić jak działa Ci wstawianie z palca. Ethanak napisał na pierwszej stronie, że nie trzeba PHP, mi nie udało się wtedy połączyć bezpośrednio z bazą z innego komputera, dlatego zrobiłem to krok po kroku jak w znalezionym przykładzie - przygotowanie bazy, PHP i kod ESP.

Udostępnij ten post


Link to post
Share on other sites

A więc tak esp8266 łaczy mi się  mam podana witryne mojej strony z tym skryptem esp.php, port 80,  do tego na stronce tez wyskakuje OK czyli polaczenie z baza danych jest. ESP8266 nie przesyła nic do zmiennych id, hum ,temp dlaczego ? kod z 1 strony ktory mi podeslales . Wszystko zrobilem na hostingu cba.pl . nawet wykupilem wersje pro bo podobno free nie przyjmuje adresów zzewnatrz. 

Udostępnij ten post


Link to post
Share on other sites

Jak się łączy a nie wstawia to znaczy, że skrypt PHP nie pasuje do bazy danych. Akurat miałem na biurku ESP01, wgrałem kod i potwierdzam, że "U mnie działa".

php.thumb.jpg.ba69f264d7deddf552cfabca93886edf.jpg

Oczywiście powyższy wykres to już z zupełnie innego PHP niż ten do wgrywania.

Nie jest to jednak to samo, ja mam serwer w domu, nie mam np. hasła usera żeby się dobrać do PHP, bo serwer jest tylko domowym dyskiem bez dostępu z zewnątrz. Nie wiem co Ty tam musisz sobie jeszcze pododawać na hostingu komercyjnym. Pewnie byłaby lipa, jakby każdy mógł odpalać sobie PHP u Ciebie i wrzucać jakieś wartości z sufitu.

Udostępnij ten post


Link to post
Share on other sites

to samo mialem na lokalnym serwerze z xampa . plik php wrzucilem przez ftp do plikow " strony internetowej" dzieki czemu moge ją wyświetlac z dowolnego urzadzenia nie będącego w mojej sieci lokalnej . jak jak napisac np kod by esp logowal sie do ftp i tam wrzucał wartosci id itp do php ? 

wrzuciłem do skryptu by wyświetlał zmienne jako echo itp . jednakże on zadnych zmiennych nie dostaje od arduino. http://infeligentny-dom.cba.pl/esp.php coś takiego.

Udostępnij ten post


Link to post
Share on other sites

Co ma z tym wspólnego ftp?

Poza tym podaj kod tego tworu w php, bo to że stwierdziłeś iż żadnych zmiennych od Arduino nie dostaje to niekoniecznie musi być prawda - już parę osób z czymś takim walczyło i okazało się że wszystko jest OK tylko kod w php był do kitu...

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij, aby zacząć pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...