Konuyu Oyla:
  • Derecelendirme: 4/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Nodemcu ile Delphi json haberleşme
#1
Merhaba Nodemcudan delphiye json olarak bilgi gönderip ve delphiden nodemcuya komut göndereceğiz bu projeyi paylaşmak istedim umarım delphican ailesine katkım olur

dvWgrp.jpg


4Adet röle kontrol edip ve sıcaklık bilgisini okiyacağız bu proje örnek amaçlıdır kendinize göre uyarliyabilirsiniz.

Öncelikle Nodemcumuza Kodu yükliyelim



#include <ESP8266WiFi.h> // nodemcu kütüphanesi
#include <ArduinoJson.h> // json kütüphanesi
const char* ssid = "wifi-name"; // wifi adı
const char* password = "wifi-pass."; // wifi şifresi


int role1 = 4;  // D2
int role2 = 00; // D3
int role3 = 14; // D5
int role4 = 12; // D6
WiFiServer server(80);
void setup() {
 Serial.begin(9600);
 delay(10);

 pinMode(role1, OUTPUT); // röle1 çıkış olarak tanımlandı
 pinMode(role2, OUTPUT); // röle2 çıkış olarak tanımlandı
 pinMode(role3, OUTPUT); // röle3 çıkış olarak tanımlandı
 pinMode(role4, OUTPUT); // röle4 çıkış olarak tanımlandı
 Serial.println();
 Serial.println();
 Serial.print("Bağlanılıyor ");
 Serial.println(ssid);

 WiFi.begin(ssid, password);

 while (WiFi.status() != WL_CONNECTED) { // Bağlantı yok ise
   delay(500);
   Serial.print(".");
 }
 Serial.println("");
 Serial.println("WIFI bağlandı.");

 // Start the server
 server.begin();
 Serial.println("server başlatıldı");

 // Print the IP address
 Serial.print("Lütfen Bu Adrese Bağlanınız ");
 Serial.print("http://");
 Serial.print(WiFi.localIP()); // Ip adresini Serial ekrana yaz
 Serial.println("/");

}

void loop() {


 WiFiClient client = server.available(); // Nodemcuya bağlanan varmı
 if (!client) {
   return;
 }

 
 Serial.println("Yeni Client");
 while (client.available()) client.read();


 String request = client.readStringUntil('\r');
 Serial.println(request);
 client.flush();



 if (request.indexOf("/role1=ON") != -1)  { // '/role1=ON' Komutu Geldiyse Röle 1'i Aç
   digitalWrite(role1, HIGH);

 }
 if (request.indexOf("/role1=OFF") != -1)  { // '/role1=OFF' Komutu Geldiyse Röle 1'i Kapat
   digitalWrite(role1, LOW);

 }

 if (request.indexOf("/role2=ON") != -1)  { // '/role2=ON' Komutu Geldiyse Röle 2'i Aç
   digitalWrite(role2, HIGH);

 }
 if (request.indexOf("/role2=OFF") != -1)  { // '/role2=OFF' Komutu Geldiyse Röle 2'i Kapat
   digitalWrite(role2, LOW);

 }

 if (request.indexOf("/role3=ON") != -1)  { // '/role3=ON' Komutu Geldiyse Röle 3'i Aç
   digitalWrite(role3, HIGH);

 }
 if (request.indexOf("/role3=OFF") != -1)  { // '/role3=OFF' Komutu Geldiyse Röle 3'i Kapat
   digitalWrite(role3, LOW);

 }
 if (request.indexOf("/role4=ON") != -1)  { // '/role4=ON' Komutu Geldiyse Röle 4'i Aç
   digitalWrite(role4, HIGH);

 }
 if (request.indexOf("/role4=OFF") != -1)  { // '/role4=OFF' Komutu Geldiyse Röle 4'i Kapat
   digitalWrite(role4, LOW);

 }
 int deger; // değer adında integer tipli bir değişken tanımlanılıyor
 double sicaklik; //sicaklik adında double tipli bir değişken tanımlanılıyor
 deger = analogRead(A0); // analog değeri oku deger değişkenine at
 sicaklik = Termistor(deger);
 /////////////////////////////////////////JSON OLUŞTURMA///////////////////////////////////////////////////////////////
 //JSON oluştur
 StaticJsonBuffer<500> jsonBuffer;
 JsonObject& root = jsonBuffer.createObject();
 JsonObject& okunan = root.createNestedObject("Arduino_okunan");
 okunan["SICAKLIK"] = sicaklik;

 JsonObject& digitalokunan = root.createNestedObject("Digital_durumlar");
 digitalokunan["ROLE1"] = digitalRead(role1);
 digitalokunan["ROLE2"] = digitalRead(role2);
 digitalokunan["ROLE3"] = digitalRead(role3);
 digitalokunan["ROLE4"] = digitalRead(role4);
 root.printTo(Serial);
 delay(1);
 ////////////////////////////////////////////////////////////////////////////////////////////////////////




 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: application/json");
 client.println("Connection: close");
 client.println();


 root.prettyPrintTo(client);

 delay(1);
 Serial.println("Client disonnected");
 Serial.println("");
}
double Termistor(int analogOkuma) //Sıcaklık okuma matematiksel işlemler
{
 double sicaklik;
 sicaklik = log(((10240000 / analogOkuma) - 10000));
 sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik )) * sicaklik );
 sicaklik = sicaklik - 273.15;
 return sicaklik;
}

Bu kodu nodemcumuza yükledikten sonra sıra geldi Delphi kısmına

Rest client,Restrequrest ve response componentlerini formumuza ekliyoruz

sıcaklık bilgisini labele butonlarla ise nodemcuya komut göndereceğiz
Restclient'in base url kısmına nodemcunun ip adresini yazıyorız VE RootUnit adlı pas dosyasını projemize ekliyoruz

unit RootUnit;


interface

uses Generics.Collections, Rest.Json;

type

TDigital_durumlarClass = class
private
 FROLE1: String;
 FROLE2: String;
 FROLE3: String;
 FROLE4: String;
public
 property ROLE1: String read FROLE1 write FROLE1;
 property ROLE2: String read FROLE2 write FROLE2;
 property ROLE3: String read FROLE3 write FROLE3;
 property ROLE4: String read FROLE4 write FROLE4;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TDigital_durumlarClass;
end;

TArduino_okunanClass = class
private
 FSICAKLIK: String;
public
 property SICAKLIK: String read FSICAKLIK write FSICAKLIK;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TArduino_okunanClass;
end;

TRootClass = class
private
 FArduino_okunan: TArduino_okunanClass;
 FDigital_durumlar: TDigital_durumlarClass;
public
 property Arduino_okunan: TArduino_okunanClass read FArduino_okunan write FArduino_okunan;
 property Digital_durumlar: TDigital_durumlarClass read FDigital_durumlar write FDigital_durumlar;
 constructor Create;
 destructor Destroy; override;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TRootClass;
end;

implementation

{TDigital_durumlarClass}


function TDigital_durumlarClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TDigital_durumlarClass.FromJsonString(AJsonString: string): TDigital_durumlarClass;
begin
 result := TJson.JsonToObject<TDigital_durumlarClass>(AJsonString)
end;

{TArduino_okunanClass}


function TArduino_okunanClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TArduino_okunanClass.FromJsonString(AJsonString: string): TArduino_okunanClass;
begin
 result := TJson.JsonToObject<TArduino_okunanClass>(AJsonString)
end;

{TRootClass}

constructor TRootClass.Create;
begin
 inherited;
 FArduino_okunan := TArduino_okunanClass.Create();
 FDigital_durumlar := TDigital_durumlarClass.Create();
end;

destructor TRootClass.Destroy;
begin
 FArduino_okunan.Free;
 FDigital_durumlar.Free;
 inherited;
end;

function TRootClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TRootClass.FromJsonString(AJsonString: string): TRootClass;
begin
 result := TJson.JsonToObject<TRootClass>(AJsonString)
end;

end.

form1 kodu:

unit Unit1;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
 FMX.Controls.Presentation, FMX.StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
   procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 sicaklik:string;

 role1:string;
 role2:string;
 role3:string;
 role4:string;
implementation

{$R *.fmx}

uses RootUnit;

procedure TForm1.Button1Click(Sender: TObject);
var
RootUnit: TRootClass;

begin
Application.ProcessMessages;
 RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
Rootunit := TRootClass.FromJsonString(RESTResponse1.Content);
  end;
  sicaklik:=RootUnit.Arduino_okunan.SICAKLIK; //Sıcaklık bilgisini sıcaklık değişkenine ata
  role1:=RootUnit.Digital_durumlar.ROLE1;  // burada RÖLE1 açık olup olmadığını kontrol ediyoruz
  role2:= RootUnit.Digital_durumlar.ROLE2; // burada RÖLE2 açık olup olmadığını kontrol ediyoruz
  role3:= RootUnit.Digital_durumlar.ROLE3; // burada RÖLE3 açık olup olmadığını kontrol ediyoruz
  role4:= RootUnit.Digital_durumlar.ROLE4; // burada RÖLE4 açık olup olmadığını kontrol ediyoruz
  end);

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role1=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role1=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role2=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role2=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role3=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role3=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role4=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role4=OFF';
RESTRequest1.Execute;
end;
  end);
end;


end.
WWW
Cevapla
#2
Forumdaki donanım içerikli konuları zenginleştirdiğiniz için teşekkürler.
Cevapla
#3
Değerli ve DelphiCan'a yakışır (Yeni Nesil) bir çalışma olmuş. Teşekkürler.

Button1 Onclick olayında, RESTRequest bileşenini iki defa iç içe çalışırmışsınız. Bir Execute yeterli olacaktır.
DelphiCan'dır!
Cevapla
#4
farkettim hocam teşekkürler
WWW
Cevapla
#5
(30-11-2018, Saat: 23:09)arsl01 Adlı Kullanıcıdan Alıntı: Merhaba Nodemcudan delphiye json olarak bilgi gönderip ve delphiden nodemcuya komut göndereceğiz bu projeyi paylaşmak istedim umarım delphican ailesine katkım olur

dvWgrp.jpg


4Adet röle kontrol edip ve sıcaklık bilgisini okiyacağız bu proje örnek amaçlıdır kendinize göre uyarliyabilirsiniz.

Öncelikle Nodemcumuza Kodu yükliyelim



#include <ESP8266WiFi.h> // nodemcu kütüphanesi
#include <ArduinoJson.h> // json kütüphanesi
const char* ssid = "Basbug-nenis"; // wifi adı
const char* password = "AdAnA01."; // wifi şifresi


int role1 = 4;  // D2
int role2 = 00; // D3
int role3 = 14; // D5
int role4 = 12; // D6
WiFiServer server(80);
void setup() {
 Serial.begin(9600);
 delay(10);

 pinMode(role1, OUTPUT); // röle1 çıkış olarak tanımlandı
 pinMode(role2, OUTPUT); // röle2 çıkış olarak tanımlandı
 pinMode(role3, OUTPUT); // röle3 çıkış olarak tanımlandı
 pinMode(role4, OUTPUT); // röle4 çıkış olarak tanımlandı
 Serial.println();
 Serial.println();
 Serial.print("Bağlanılıyor ");
 Serial.println(ssid);

 WiFi.begin(ssid, password);

 while (WiFi.status() != WL_CONNECTED) { // Bağlantı yok ise
   delay(500);
   Serial.print(".");
 }
 Serial.println("");
 Serial.println("WIFI bağlandı.");

 // Start the server
 server.begin();
 Serial.println("server başlatıldı");

 // Print the IP address
 Serial.print("Lütfen Bu Adrese Bağlanınız ");
 Serial.print("http://");
 Serial.print(WiFi.localIP()); // Ip adresini Serial ekrana yaz
 Serial.println("/");

}

void loop() {


 WiFiClient client = server.available(); // Nodemcuya bağlanan varmı
 if (!client) {
   return;
 }

 
 Serial.println("Yeni Client");
 while (client.available()) client.read();


 String request = client.readStringUntil('\r');
 Serial.println(request);
 client.flush();



 if (request.indexOf("/role1=ON") != -1)  { // '/role1=ON' Komutu Geldiyse Röle 1'i Aç
   digitalWrite(role1, HIGH);

 }
 if (request.indexOf("/role1=OFF") != -1)  { // '/role1=OFF' Komutu Geldiyse Röle 1'i Kapat
   digitalWrite(role1, LOW);

 }

 if (request.indexOf("/role2=ON") != -1)  { // '/role2=ON' Komutu Geldiyse Röle 2'i Aç
   digitalWrite(role2, HIGH);

 }
 if (request.indexOf("/role2=OFF") != -1)  { // '/role2=OFF' Komutu Geldiyse Röle 2'i Kapat
   digitalWrite(role2, LOW);

 }

 if (request.indexOf("/role3=ON") != -1)  { // '/role3=ON' Komutu Geldiyse Röle 3'i Aç
   digitalWrite(role3, HIGH);

 }
 if (request.indexOf("/role3=OFF") != -1)  { // '/role3=OFF' Komutu Geldiyse Röle 3'i Kapat
   digitalWrite(role3, LOW);

 }
 if (request.indexOf("/role4=ON") != -1)  { // '/role4=ON' Komutu Geldiyse Röle 4'i Aç
   digitalWrite(role4, HIGH);

 }
 if (request.indexOf("/role4=OFF") != -1)  { // '/role4=OFF' Komutu Geldiyse Röle 4'i Kapat
   digitalWrite(role4, LOW);

 }
 int deger; // değer adında integer tipli bir değişken tanımlanılıyor
 double sicaklik; //sicaklik adında double tipli bir değişken tanımlanılıyor
 deger = analogRead(A0); // analog değeri oku deger değişkenine at
 sicaklik = Termistor(deger);
 /////////////////////////////////////////JSON OLUŞTURMA///////////////////////////////////////////////////////////////
 //JSON oluştur
 StaticJsonBuffer<500> jsonBuffer;
 JsonObject& root = jsonBuffer.createObject();
 JsonObject& okunan = root.createNestedObject("Arduino_okunan");
 okunan["SICAKLIK"] = sicaklik;

 JsonObject& digitalokunan = root.createNestedObject("Digital_durumlar");
 digitalokunan["ROLE1"] = digitalRead(role1);
 digitalokunan["ROLE2"] = digitalRead(role2);
 digitalokunan["ROLE3"] = digitalRead(role3);
 digitalokunan["ROLE4"] = digitalRead(role4);
 root.printTo(Serial);
 delay(1);
 ////////////////////////////////////////////////////////////////////////////////////////////////////////




 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: application/json");
 client.println("Connection: close");
 client.println();


 root.prettyPrintTo(client);

 delay(1);
 Serial.println("Client disonnected");
 Serial.println("");
}
double Termistor(int analogOkuma) //Sıcaklık okuma matematiksel işlemler
{
 double sicaklik;
 sicaklik = log(((10240000 / analogOkuma) - 10000));
 sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik )) * sicaklik );
 sicaklik = sicaklik - 273.15;
 return sicaklik;
}

Bu kodu nodemcumuza yükledikten sonra sıra geldi Delphi kısmına

Rest client,Restrequrest ve response componentlerini formumuza ekliyoruz

sıcaklık bilgisini labele butonlarla ise nodemcuya komut göndereceğiz
Restclient'in base url kısmına nodemcunun ip adresini yazıyorız VE RootUnit adlı pas dosyasını projemize ekliyoruz

unit RootUnit;


interface

uses Generics.Collections, Rest.Json;

type

TDigital_durumlarClass = class
private
 FROLE1: String;
 FROLE2: String;
 FROLE3: String;
 FROLE4: String;
public
 property ROLE1: String read FROLE1 write FROLE1;
 property ROLE2: String read FROLE2 write FROLE2;
 property ROLE3: String read FROLE3 write FROLE3;
 property ROLE4: String read FROLE4 write FROLE4;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TDigital_durumlarClass;
end;

TArduino_okunanClass = class
private
 FSICAKLIK: String;
public
 property SICAKLIK: String read FSICAKLIK write FSICAKLIK;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TArduino_okunanClass;
end;

TRootClass = class
private
 FArduino_okunan: TArduino_okunanClass;
 FDigital_durumlar: TDigital_durumlarClass;
public
 property Arduino_okunan: TArduino_okunanClass read FArduino_okunan write FArduino_okunan;
 property Digital_durumlar: TDigital_durumlarClass read FDigital_durumlar write FDigital_durumlar;
 constructor Create;
 destructor Destroy; override;
 function ToJsonString: string;
 class function FromJsonString(AJsonString: string): TRootClass;
end;

implementation

{TDigital_durumlarClass}


function TDigital_durumlarClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TDigital_durumlarClass.FromJsonString(AJsonString: string): TDigital_durumlarClass;
begin
 result := TJson.JsonToObject<TDigital_durumlarClass>(AJsonString)
end;

{TArduino_okunanClass}


function TArduino_okunanClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TArduino_okunanClass.FromJsonString(AJsonString: string): TArduino_okunanClass;
begin
 result := TJson.JsonToObject<TArduino_okunanClass>(AJsonString)
end;

{TRootClass}

constructor TRootClass.Create;
begin
 inherited;
 FArduino_okunan := TArduino_okunanClass.Create();
 FDigital_durumlar := TDigital_durumlarClass.Create();
end;

destructor TRootClass.Destroy;
begin
 FArduino_okunan.Free;
 FDigital_durumlar.Free;
 inherited;
end;

function TRootClass.ToJsonString: string;
begin
 result := TJson.ObjectToJsonString(self);
end;

class function TRootClass.FromJsonString(AJsonString: string): TRootClass;
begin
 result := TJson.JsonToObject<TRootClass>(AJsonString)
end;

end.

form1 kodu:

unit Unit1;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
 FMX.Controls.Presentation, FMX.StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
   procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 sicaklik:string;

 role1:string;
 role2:string;
 role3:string;
 role4:string;
implementation

{$R *.fmx}

uses RootUnit;

procedure TForm1.Button1Click(Sender: TObject);
var
RootUnit: TRootClass;

begin
Application.ProcessMessages;
 RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
Rootunit := TRootClass.FromJsonString(RESTResponse1.Content);
  end;
  sicaklik:=RootUnit.Arduino_okunan.SICAKLIK; //Sıcaklık bilgisini sıcaklık değişkenine ata
  role1:=RootUnit.Digital_durumlar.ROLE1;  // burada RÖLE1 açık olup olmadığını kontrol ediyoruz
  role2:= RootUnit.Digital_durumlar.ROLE2; // burada RÖLE2 açık olup olmadığını kontrol ediyoruz
  role3:= RootUnit.Digital_durumlar.ROLE3; // burada RÖLE3 açık olup olmadığını kontrol ediyoruz
  role4:= RootUnit.Digital_durumlar.ROLE4; // burada RÖLE4 açık olup olmadığını kontrol ediyoruz
  end);

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role1=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role1=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role2=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role2=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role3=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role3=OFF';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role4=ON';
RESTRequest1.Execute;
end;
  end);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
RESTRequest1.ExecuteAsync(
  procedure
  begin
    if RESTRequest1.Response.StatusCode = 200 then
    begin
RESTRequest1.Resource:='role4=OFF';
RESTRequest1.Execute;
end;
  end);
end;


end.

Merhaba,

Elinize sağlık. Projeyi tam olarak paylaşıp, donanım gereksinimlerini de ekleyebilir misiniz ?

İyi çalışmalar.
Cevapla
#6
Okuldan zaman bulamadim ama musait olunca eklerim
WWW
Cevapla
#7
Emeğinize sağlık gayet güzel bir çalışma olmuş.
Cevapla
#8
Tesekkkur ederim
WWW
Cevapla
#9
Çok Teşekkürler , farklı bir örnek olmuş.
Cevapla
#10
Bu kodu stm32f4 kartına göre yapabilirmiyiz
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi RabbitMq 3ddark 8 4.233 21-11-2022, Saat: 18:26
Son Yorum: 3ddark
  Raspberry Pi, MQTT ve Delphi SimaWB 15 12.118 26-01-2022, Saat: 15:08
Son Yorum: Jakarta2
  OpenAI GPT3 Nedir? Delphi ile Kullanımı Tan Ay 1 2.033 07-05-2021, Saat: 15:40
Son Yorum: mrmarman
  Delphi ve PLC Haberleşmesi hk. Abdullah ILGAZ 12 15.152 24-08-2020, Saat: 19:02
Son Yorum: Onur
Thumbs Up Delphi 10.3 ile mobil uygulamadan esp32 cihazına bluetooth le ile metin gönderme AlpDmr 8 11.338 19-04-2020, Saat: 13:26
Son Yorum: AlpDmr



Konuyu Okuyanlar: 1 Ziyaretçi