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:
stil dosyası:
mysqle veri eklemek için bir şifre oluşturulmuştur phpye get ederken passs=TESTAMAÇLI yazımalıdır
örnek1: nodemcuda veri eklerken http://localhost:81/arduino/nodemcu.php?...TESTAMACLI
örnek2: delphiden veri eklerken http://localhost:81/arduino/nodemcu.php?/s1=1&s2=2&a1=3&pass=TESTAMACLI gördüğünüz gibi bu şekilde tüm platformlardan veri ekliyebilriiz
bu kadar... :
Anlatımım pek iyi dğeildir kusura bakmayın elimden gelen bukadar kolay gelsin
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: (Select All)
<?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: (Select All)
<?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
}
}
?>
PHP Kod: (Select All)
html, body{
background-color: #F2F2F2;
font-family: Arial;
font-size: 1em;
}
table{
border-spacing: 0;
border-collapse: collapse;
margin: 0 auto;
}
th{
padding: 8px;
background-color: #FF837A;
border: 1px solid #FF837A;
}
td{
padding: 10px;
background-color: #FFF;
border: 1px solid #CCC;
}
div.notes{
font-family: arial;
text-align: center;
}
div.current{
font-size: 58px;
font-family: arial black;
text-align: center;
}
mysqle veri eklemek için bir şifre oluşturulmuştur phpye get ederken passs=TESTAMAÇLI yazımalıdır
örnek1: nodemcuda veri eklerken http://localhost:81/arduino/nodemcu.php?...TESTAMACLI
örnek2: delphiden veri eklerken http://localhost:81/arduino/nodemcu.php?/s1=1&s2=2&a1=3&pass=TESTAMACLI gördüğünüz gibi bu şekilde tüm platformlardan veri ekliyebilriiz
bu kadar... :
Anlatımım pek iyi dğeildir kusura bakmayın elimden gelen bukadar kolay gelsin