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.
#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ć
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.
<?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