ESP8266 MySQL Veritabanına Veri Ekleme, Arduino ESP8266 php, Arduino ESP8266 PHP get, NodeMCU SQL server, Arduino ESP8266 sql, Esp8266 mysql library, ESP8266 HTTP POST, Esp01 mysql, ESP8266 HTTP GET example, ESP8266 MySQL connector, ESP8266 PHP Web server, SQL server ESP8266, ESP8266 database connection, ESP8266 PHP MySQL, Arduino to MySQL database
XAMPP Programını İndirip Yüklenmesi
XAMPP Programını Çalıştıralım
MySQL phpMyAdmin Açalım
“dbnodemcu” adında yeni bir veri tabanı oluşturalım
“tbdata” adında “5” sütun sayılı tablo oluşturalım
Oluşturduğumuz tabloyo aşağıdaki resimdeki gibi dolduralım
“id” yi A_I(Auto Increment) işaretliyelim
Ve sonra aşağıdaki pencere gelicek “git” diyerek onaylıyalım
Sonra oluşturduğumuz tabloyu kaydelim
Oluşturduğumuz tablo aşağıdaki şekilde olması lazım
ESP8266 MySQL Veritabanına Veri Ekleme Kodları
PHP Kodları
connect.php
<?php $servername = "localhost"; $username = "root"; $password = ""; try { $conn = new PDO("mysql:host=$servername;dbname=dbnodemcu", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
save.php
<?php include('connect.php'); $sensor1= $_GET['sensor1']; $sensor2= $_GET['sensor2']; $sensor3= $_GET['sensor3']; $sql = "INSERT INTO `tbdata`(`sensor1`, `sensor2`, `sensor3`) VALUES ($sensor1,$sensor2,$sensor1)"; $conn->query($sql); ?>
Arduino IDE ve Kodları
Arduino IDE’ye http://arduino.esp8266.com/stable/package_esp8266com_index.json bu kodu ekliyelim
Arduino NodeMCU_MySQL.ino kodu
#include <ESP8266WiFi.h> const char* ssid = "BURAYA WİFİ ADI YAZILACAK"; const char* password = "BURAYA WİFİ ŞİFRESİ YAZILACAK"; const char* host = "BUARAYA BİLGİSAYARIN IP ADRESİ 192... İLE BAŞLAYAN"; float sensor1=50; float sensor2=60; float sensor3=70; float sensor4=80; void setup() { Serial.begin(9600); delay(10); //WiFi ağına bağlanarak başlıyoruz Serial.println(); Serial.println(); Serial.print("connecting to WiFi "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); // int value = 0; } void loop(){ //=============================================== // Sensörleri okumak için ayrılan alan sensor1=sensor1+ 2; sensor2+=2; sensor3+=2; //=============================================== //delay(5000); //++value; Serial.print("connecting to "); Serial.println(host); //TCP bağlantıları oluşturmak için WiFiClient sınıfını kullanın WiFiClient client; const int httpPort = 80; if(!client.connect(host,httpPort)){ Serial.println("connection faild "); return; } //Şimdi istek için bir URI oluşturduk String url = "/wifi/save.php?"; url += "sensor1="; url += sensor1; url += "&sensor2="; url += sensor2; url += "&sensor3="; url += sensor3; Serial.print("Requesting URL: "); Serial.println(url); //Bu, isteği sunucuya gönderir client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0){ if(millis() - timeout > 5000){ Serial.println(">>> client Timeout !"); client.stop(); return; } } //Cevabın tüm satırlarını sunucudan oku ve seriye yazdır while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } String line = client.readStringUntil('\r'); Serial.print(line); Serial.println(); Serial.println("closing connecting"); delay(10000); }
http://localhost/KAYDEDİLEN_DOSYA_ADI/save.php?sensor1=122&sensor2=234&sensor3=347
LOCOLHOST BİLGİSAYARIN VEYA SUNUCUNUN IP ADRESİ
www.cihancalli.com.tr Adresindeki Arduino Yazıları
Öncellikle eline sağlık ama işlem adımlarını yazsaydın ve bu php dosyalarını nereye koyacağız bu konuları da belirtmiş olsaydın bence daha anlaşılır olurdu
En kısa zamanda yeniden düzenleme yapacağım. Tavsiyeniz için teşekkür ederim.
const char* host = “000.000.000.000”; bu kısma ne yazmamız gerekiyor.
ayrıca espwifi ağına bağlandığı halde
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”)
bu komut satırında takılı kalıyor
Bilgisayrın ip adresini yazıcaksın ve yazıyı yeniden düzenledim test ettim son halini hiç bir sorun yok. Tekrar bir sorun olursa yazabilşrsiniz. Sayfamı ziyarte ettiğiniz için teşekkür ederim