Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4.33/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Nodemcu Mysql bağlantısı
#1
Merhaba geçen konuda nodemcuyu json ile haberleştirmiştik birçok yöntem olduğu gibi buda 2.yöntem 
Php den yola çıkarak tüm platforman hem kontrol edilebilir hemde veri okunabilir.

php, gelen veriyi okuyor ve mysqle kayıt ediyor

php kodu:

PHP Kod:
<?php
require_once("veri.class.php"); //pdo ile veri işlemleri yapabilmemiz için gerekli sınıf
$db_adi="nodemcu"$db_kullanici="root"$db_sifre=""//Mysql ile ilgili ayarlar
$DB = new veriler//sınıfı çağırdık ve DB ismi verdik değişkenle

    
    
if (isset($_GET['s1'])) {     $s1 $_GET['s1'];    } //burası biraz saçma. eğer get ile s1=BURASI ayarlandıysa $s1 değişkeni eşittirin sağ tarafı olsun
    
if (isset($_GET['s2'])) { $s2 $_GET['s2'];     } //$s2 değişkeni bir üst mantık
 
   if (isset($_GET['a1'])) { $a1 $_GET['a1'];     }    //$a1 değişkeni bir üst mantık
    
if (isset($_GET['pass'])) {     $pass $_GET['pass'];} //nodemcu eşleşme şifresi get ile geldi
         
        
date_default_timezone_set('Europe/Istanbul'); //zaman dilimi olarak ist. belirlendi
    
    
$sorgu =$DB->query("SELECT * FROM veriler"); //veri çekmek için pdo ya sorgu cümlesi yolla
$sonuc $sorgu->fetchAll(); //gelen sonuçları bir dizide topla ($sonuc adlı dizide)

//BURAYA KADAR DB BAĞLANTISI SAĞLADIK VE TEST AMAÇLI girdiğimiz birinci veriyi çektik.


    
$passcode "TESTAMACLI"//nodemcu eşleşme...
    
    // Check if password is right. (If there is no password, assume no data is trying to be entered and skip over this.)
    
if(isset($pass) && ($pass == $passcode)){  // get ile gelen şifre, bu dosyanın 20.satırındaki ile eşleşiyor ise...
        
        
        
if(isset($s1)&&isset($s2)&&isset($a1)){
         
//sıcaklık ve nem değerleri geldi ise...
             
$simdi date("Y-m-d H:i:s"); //yıl-ay-gün saat-saniye-salise
            
            
$sorgu$DB->prepare("INSERT INTO veriler values(NULL,?,?,?,?)"); //sorgu cümlesi hazırla. bunu 14.satırdan farklı yapma sebebimiz veri çekme değil GIRME kodu olmasından
            
$sorgu->execute(array($s1,$s2,$simdi,$a1)); //cümleyi veritabanında değişkenleri yerine koyarak sorgula. soru işaretleri yerine değişkenleri SIRASIYLA oturt
             
 
        
}
        else {
            echo 
"kullanım biçimi yanlış";
    }
    
    }
    else {
        echo 
"ŞİFRE YANLIŞ VERİ EKLEYEMEZSİNİZ";
        
    }
    
//die();//burada öldürmüşüz.
    
?>

<html>
    <head>
        <title>Sıcaklık Değerleri</title>
        <link rel="stylesheet" type="text/css" href="stildosyam.css">
        <meta http-equiv="refresh" content="10">
    </head>
    <body>
        <?php
        
         
            $display 
15;
            
// Create connection.
             
$sor $DB->query("SELECT * FROM veriler order by id desc limit $display");
             
$satirlar $sor->fetchAll(); //var olan kayıtları getir ve sonuçları diziye aktar
             
        
if($sor->rowCount()<1){
            
//gelen sonuç 1 den küçükse (yok ise)
            
echo "herhangi bir veri bulunamadı";
            
        }
        else{
            echo 
"Toplam ".$sor->rowCount()." adet sonuç bulundu<br>".$display." kadarı gösteriliyor";
            
//sonuç var ise bir tablo oluştur ve sonuç satırlarını bas
            
echo "<table><tr><th>Tarih</th><th>Sıcaklık (C)</th><th>Nem</th><th>Analog</th></tr>";
            
//tablo içine satırları gireceğiz. üstteki sıraya sadık kalarak
            
foreach($satirlar as $sid=>$teksatir){
                echo 
'<tr><td>'.$teksatir["zaman"].'</td><td>'.$teksatir["sicaklik"].'</td><td>'.$teksatir["nem"].'</td><td>'.$teksatir["analog"].'</td></tr>';
                
            }
            
            
            echo 
"</table>";
            
        }
        
        
        
?>
    </body>
</html> 
PHP Kod:
<?php
class veriler extends PDO{
    
    public function 
__construct(){
        global 
$db_adi$db_kullanici$db_sifre;
        
//yeni pdo bağlantı şekli
            
try{
         
parent::__construct('mysql:host=localhost;dbname='.$db_adi.';charset=UTF8'$db_kullanici$db_sifre,array(
                            
PDO::ATTR_PERSISTENT => false,
                            
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ,
                            
PDO::ATTR_EMULATE_PREPARES => false,        //güvenlik maksatlı 
                            
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
                            
//$sorgu->fetchAll(PDO::FETCH_ASSOC); parantez içine gerek kalmadı
 
                           ));
                            
            } catch (
PDOException $e){      die($e->getMessage());    }
         
        }
    public function 
__destruct(){
                                 
//BiR ŞEY YAPMASIN
                                    
}
}
?>
stil dosyası: 

PHP Kod:
htmlbody{
            
background-color#F2F2F2;
            
font-familyArial;
            
font-size1em;
        }
        
table{
            
border-spacing0;
            
border-collapsecollapse;
            
margin0 auto;
        }
        
th{
            
padding8px;
            
background-color#FF837A;
            
border1px solid #FF837A;
        
}
        
td{
            
padding10px;
            
background-color#FFF;
            
border1px solid #CCC;
        
}
        
        
div.notes{
            
font-familyarial;
            
text-aligncenter;
        }
        
        
div.current{
            
font-size58px;
            
font-familyarial black;
            
text-aligncenter;
        } 


mysqle veri eklemek için bir şifre oluşturulmuştur phpye get ederken passs=TESTAMAÇLI yazımalıdır 

örnek1: nodemcuda veri eklerken Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol 
örnek2: delphiden veri eklerken Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol gördüğünüz gibi bu şekilde tüm platformlardan veri ekliyebilriiz 

y6m910.png

Ll20NJ.png

bu kadar... :Smile

Anlatımım pek iyi dğeildir kusura bakmayın elimden gelen bukadar kolay gelsin
Cevapla
#2
Merhaba,

Cihazdan veriyi aldığınız tarafı göremedim. Cihazdan verinin alınıp PHP' ye post edildiği taraf da olsa iyi olurdu bu konuda.

Teşekkürler...
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#3
onuda ekliyorum hocam teşekkürler
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Nodemcu ile Delphi json haberleşme arsl01 8 282 03-12-2018, Saat: 09:27
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi