PHP ile ESP8266 Web Sitesine Veri Gönderme (Arduino)

Kreb0

Hectopat
Katılım
13 Temmuz 2017
Mesajlar
26
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar merhaba, kodlarımı bırakıyorum. index.php dosyamı hosta yükledim ama internet sayfamı açınca bağlantı yapıldı diyor ama phpMyAdmin veri tabanıma bir şey kaydolmuyor.

Kod:
Arduino

#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>  
#define ssid "   " //kablosuz ağınızın adını buraya girin  bu kısımlar      normalde dolu
#define pass "   " //kablosuz ağınızın şifresini buraya girin
#define server "degeraktarma.000webhostapp.com " //ornek.com şeklinde alan adınızı girin
String apiKey="a";

float temp;

const int oneWireBus = 4;
OneWire oneWire(oneWireBus);
DallasTemperature sensor(&oneWire);
WiFiClient client;

void setup()
{
       Serial.begin(9600);
       delay(1000);
       sensor.begin();

       Serial.print("Ağa bağlanılıyor: ");
       Serial.println(ssid);


       WiFi.begin(ssid, pass);

      while (WiFi.status() != WL_CONNECTED)
     {
            delay(100);
            Serial.print("Lütfen bekleyiniz...");
     }
      Serial.println("");
      Serial.println("Ağa bağlanıldı");

}

void loop()
{
 
      sensor.requestTemperatures();
      float temperatureC = sensor.getTempCByIndex(0);

      if (client.connect(server,21))   //   "184.106.153.149" or api.thingspeak.com
      { 
       String sendData = apiKey+"&field1="+String(temperatureC)+"\r\n\r\n";
      
       //Serial.println(sendData);
     
     
       client.print("POST /index.php HTTP/1.1");
       client.print("Host: degeraktarma.000webhostapp.com");
       client.print("Connection: close\n");
       client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
       client.print("Content-Type: application/x-www-form-urlencoded\n");
       client.print("Content-Length: ");
       client.print(sendData.length());
       client.print("\n\n");
       client.print(sendData);
       Serial.print("Sıcaklık degeri: ");
       Serial.print(temperatureC);
       Serial.println(" Veri ThingSpeak'e aktarılıyor...");
     
      }



     
      client.stop();

      Serial.println("Gönderiliyor.");
 
delay(2000);


Php kodlarım


<?php



$sicaklik = $_GET['temperatureC']; // s değeri arduinonun gönderdiği değişken adı
if (!$nem) { // eğer değerler alınmazsa 0 yazdıracak
  $nem = 0;
}
if (!$sicaklik) {
  $sicaklik = 0;
}

$db = new PDO("mysql:host=localhost;dbname='   ', '   ', '   ');
/* Burada yildizları ve içerisini veritabanı adı,kullaniciadi,sifre ile değiştiriyoruz yildizlarida siliyoruz dbname="deneme" gibi */
if($db)
{
    echo("baglanti basarili");
             
}
else
    echo("baglanti basarisiz");

$now = new DateTime();
$datenow = $now->format("Y-m-d H:i:s"); //tarih saati yazdiriyoruz

$insert = $db->query("INSERT INTO `bitirme` (`id`, `tarih`,`sicaklik`,`nem`) VALUES (NULL, CURRENT_TIMESTAMP , '".$sicaklik."', '".$nem."')");
//insert komutunda önemli olan isimler ve siralamanın doğru olması
if ( $insert ){
    $last_id = $db->lastInsertId();
    print "insert islemi basarili";
}
else
{
print "insert islemi basarisiz";
}

$db = null;





?>







}
 
Selam, ESP'den field1 key'i ile POST request atip PHP tarafinda query string kontrol etmissiniz. Ayni zamanda $nem degiskenini almamisiniz.
Ilgili degeri query string'e ekleyip gonderdigimde 500 aliyorum. Insert sorgunuzde problem olabilir.

PHP kodunun basina ini_set('display_errors', 1); ekleyerek gorebilirsiniz muhtemelen exception'i.

----

Ayni url'i tekrar calistirdim, 500 ortadan kalmis sanirim. Sadece basit bi key problemi olabilir. Ustte verdigim url'i calistirip db'ye kayit ekleniyor mu kontrol edebilir misin?
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı