|
var MainForm: TclForm; MyMQTT: TCLMqttClient; TempLbl, SoilLbl, TankLbl, RainLbl: TclLabel; PmpBtn: TclProButton; HeaderPnl: TclProPanel;
void OnMQTTConnected; { MyMQTT.Subscribe('isabet/iot/data', 1); }
void OnMQTTMessage; var msg: String; { msg = MainForm.clPayload; if (msg == '') Exit; TempLbl.Text = '🌡️ Hava: ' + Clomosy.CLParseJSON(msg, 'temp') + '°C'; SoilLbl.Text = '💧 Toprak Nemi: %' + Clomosy.CLParseJSON(msg, 'soil'); if (Clomosy.CLParseJSON(msg, 'rain') == '1') { RainLbl.Text = '🌧️ Durum: Yağmur Yağıyor'; RainLbl.TextSettings.FontColor = clAlphaColor.clRed; } else { RainLbl.Text = '☀️ Durum: Hava Açık'; RainLbl.TextSettings.FontColor = clAlphaColor.clLightgreen; }
if (StrToInt(Clomosy.CLParseJSON(msg, 'tank')) > 20) { TankLbl.TextSettings.FontColor = clAlphaColor.clRed; } else { TankLbl.TextSettings.FontColor = clAlphaColor.clWhite; } TankLbl.Text = '🌊 Depo: ' + Clomosy.CLParseJSON(msg, 'tank') + ' cm'; }
void OnPumpClick; { MyMQTT.Channel = 'isabet/iot/ctrl';
if (PmpBtn.Text == 'SULAMAYI BAŞLAT') { MyMQTT.Send('PUMP_ON', 1, False); PmpBtn.Text = 'DURDUR'; PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clRed; } else { MyMQTT.Send('PUMP_OFF', 1, False); PmpBtn.Text = 'SULAMAYI BAŞLAT'; PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen; } PmpBtn.SetclProSettings(PmpBtn.clProSettings); }
{ MainForm = TclForm.Create(Self); MainForm.SetFormColor('#1B2631', '', clGNone); MyMQTT = MainForm.AddNewMQTTClient(MainForm, 'MyMQTT'); MainForm.AddNewEvent(MyMQTT, tbeOnMQTTClientMessage, 'OnMQTTMessage'); MainForm.AddNewEvent(MyMQTT, tbeOnMQTTClientConnected, 'OnMQTTConnected'); MyMQTT.BrokerHost = '192.168.1.20'; MyMQTT.Port = 1883; MyMQTT.Connect;
HeaderPnl = MainForm.AddNewProPanel(MainForm, 'HeaderPnl'); HeaderPnl.Align = alTop; HeaderPnl.Height = 80; HeaderPnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C3E50'); HeaderPnl.SetclProSettings(HeaderPnl.clProSettings);
TempLbl = MainForm.AddNewLabel(HeaderPnl, 'TempLbl', 'Bekleniyor...'); TempLbl.Align = alCenter; TempLbl.TextSettings.FontColor = clAlphaColor.clWhite;
SoilLbl = MainForm.AddNewLabel(MainForm, 'SoilLbl', '💧 Toprak: --'); SoilLbl.Align = alTop; SoilLbl.Margins.Top = 40; SoilLbl.TextSettings.HorzAlign = taCenter;
RainLbl = MainForm.AddNewLabel(MainForm, 'RainLbl', '☀️ Durum: --'); RainLbl.Align = alTop; RainLbl.Margins.Top = 10; RainLbl.TextSettings.HorzAlign = taCenter;
TankLbl = MainForm.AddNewLabel(MainForm, 'TankLbl', '🌊 Depo: --'); TankLbl.Align = alTop; TankLbl.Margins.Top = 10; TankLbl.TextSettings.HorzAlign = taCenter;
PmpBtn = MainForm.AddNewProButton(MainForm, 'PmpBtn', 'SULAMAYI BAŞLAT'); PmpBtn.Align = alBottom; PmpBtn.Height = 80; PmpBtn.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen; PmpBtn.clProSettings.FontColor = clAlphaColor.clWhite; PmpBtn.SetclProSettings(PmpBtn.clProSettings); MainForm.AddNewEvent(PmpBtn, tbeOnClick, 'OnPumpClick'); MainForm.Run; } https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|