• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino ESP8266 komunikacja z serwerem (PHP i GET)
#1
Witam posiadam moduł WiFi podłączony pod moje arduino uno. Za jego pomocą chciałem zrobić stację pogodową synchronizowaną z serwerem, ale mam problemy z przesłaniem danych na serwer.
Kod:
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(10, 11); // RX, TX
 
void setup() {
  Serial.begin(9600);
  while(!Serial);
  Serial.println("to dziala");
  mySerial.begin(115200);
  //mySerial.begin(9600);
  pinMode(4, OUTPUT);
   
  while(!wyslij("AT","OK",100))
  {
   digitalWrite(4, HIGH);
   delay(1000);
   Serial.println(mySerial.readString());
   digitalWrite(4, LOW);
   delay(1000);
  }
 
   
  delay(3000);
  if(wyslij("AT+CWJAP=\"Wifi\",\"Dominik1\"","OK",5000));
  Serial.println("XD");
 
   
   
}
 
 
String s="GET /recive.php?temp_wew=3 HTTP/1.1\r\nHost: mip.cba.pl.com\r\n\r\n";
 
 
void loop() {
  Serial.println(s.length());
   mySerial.println("AT+CIPSTART=\"TCP\",\"mip.cba.pl\",80");
  delay(1000);
  Serial.println(mySerial.readString());
  mySerial.println("AT+CIPSEND=61");
  delay(1000);
  Serial.println(mySerial.readString());
  mySerial.println(s);
  delay(1000);
  Serial.println(mySerial.readString());
  delay(10000);
 
   
   
}
boolean wyslij(String Komenda_AT, char *Odpowiedz_AT, int czas_czekania)
{
  mySerial.println(Komenda_AT);
  delay(czas_czekania);
  while(mySerial.available() > 0)
  {
    if(mySerial.find(Odpowiedz_AT))
    {
    
      return 1;
    }
  }
  return 0; 
}


Jest to kod na Arduino, może niezbyt schludnie napisane, ale na razie wszystko testuje i przepisuję po kilka razy dlatego może to tak wyglądać

Kod PHP:
AT+CIPSTART="TCP",#mip.cba.pl",80
 
ALREADY CONNECTED
 
ERROR
 
AT
+CIPSEND=61
 
OK

 
 
busy s
./.C⸮C!⸮Y,⸮⸮⸮ѕ⸮5
 
SEND OK
 
+IPD,1460:HTTP/1.1 4 

to dostaje w porcie szeregowym. Niby wszystko ładnie ale na serwerze i w bazie danych bez zmian.


Nie mam pojęcia czemu tak się dzieje. Kiedy wszystko wklepuje w przeglądarkę (www.mip.cba.pl/recive.php?temp_wew=100     <- to tylko jeden parametr, jest ich więcej, ale testuje to nie potrzebuję na razie więcej) to wszystko ładnie działa.


Kod PHP:
<?php
    if
(isset($_GET['temp_wew']))
    {
        $temp_wew;
        $temp_zew;
        $naw_wew;
        $naw_zew;
        $gleba;
 
        $temp_wew
=$_GET["temp_wew"];
        $temp_zew=$_GET["temp_zew"];
        $naw_wew=$_GET["naw_wew"];
        $naw_zew=$_GET["naw_zew"];
        $gleba=$_GET["gleba"];
 
        require_once
"connect.php";
 
        $connect 
= new mysqli($host$db_user$db_password$db_name);
 
        if
($connect->connect_errno!=0)
        {
            echo"Error: ".$connect->connect_errno;
        }
        else
        
{
 
            $connect
->query("SET CHARSET utf8");
            $connect->query("SET CHARSET utf8");("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
 
            $sql 
"INSERT INTO dane VALUES (NULL, '$temp_wew', '$temp_zew', '$naw_wew', '$naw_zew', '$gleba')";
            $connect->query($sql);
 
 
            $connect
->close();
 
        
}
 
 
    
}
 
 
 
?>

Tu jeszcze kod PHP obsługujący GET i wklepujący dane do bazy danych
 
Odpowiedź
  


Wiadomości w tym wątku
Arduino ESP8266 komunikacja z serwerem (PHP i GET) - przez BanditPlayGame - 10-08-2019, 18:07

Skocz do:


Przeglądający: 1 gości