|
var AnaForm: TclForm; MqttIstemci: TCLMqttClient; SicaklikYazi, ToprakYazi, DepoYazi, YagmurYazi, BaslikYazi, LblStatus: TclProLabel; PompaDugme: TclProButton; BaslikPanel, SicaklikPanel, ToprakPanel, DepoPanel, YagmurPanel: TclProPanel; LogoResim: TclProImage; MqttBagliMi: Boolean; void BaglantiKuruldu; { MqttBagliMi = True; MqttIstemci.Subscribe('isabet/iot/data', 1); LblStatus.Text = 'SİSTEM DURUMU: ÇEVRİMİÇİ ✅'; LblStatus.clProSettings.FontColor = clAlphaColor.clLightgreen; LblStatus.SetclProSettings(LblStatus.clProSettings); }
void BaglantiKoptu; { MqttBagliMi = False; LblStatus.Text = 'SİSTEM DURUMU: BAĞLANTI KESİLDİ ❌'; LblStatus.clProSettings.FontColor = clAlphaColor.clRed; LblStatus.SetclProSettings(LblStatus.clProSettings); } void MesajGeldi; var mesaj: String; { mesaj = AnaForm.clPayload; if (mesaj == '') Exit; SicaklikYazi.Text = '🌡️ Hava: ' + Clomosy.CLParseJSON(mesaj, 'temp') + '°C'; ToprakYazi.Text = '💧 Toprak Nemi: %' + Clomosy.CLParseJSON(mesaj, 'soil'); if (Clomosy.CLParseJSON(mesaj, 'rain') == '1') { YagmurYazi.Text = '🌧️ Durum: Yagmur Yagiyor'; YagmurYazi.clProSettings.FontColor = clAlphaColor.clRed; } else { YagmurYazi.Text = '☀️ Durum: Hava Acik'; YagmurYazi.clProSettings.FontColor = clAlphaColor.clLightgreen; } YagmurYazi.SetclProSettings(YagmurYazi.clProSettings); if (Clomosy.CLParseJSON(mesaj, 'water') == '1') { DepoYazi.Text = '🌊 Depo: DOLU'; DepoYazi.clProSettings.FontColor = clAlphaColor.clLightgreen; } else { DepoYazi.Text = '🌊 Depo: BOS ⚠️'; DepoYazi.clProSettings.FontColor = clAlphaColor.clRed; } DepoYazi.SetclProSettings(DepoYazi.clProSettings); } void PompaDugmeTiklandi; { if (not MqttBagliMi) { ShowMessage('Sunucu bağlantısı bekleniyor...'); Exit; }
MqttIstemci.Channel = 'isabet/iot/control'; if (PompaDugme.Text == 'SULAMAYI BASLAT') { MqttIstemci.Send('IOT|VALVE|ON', 1, False); PompaDugme.Text = 'DURDUR'; PompaDugme.clProSettings.BackgroundColor = clAlphaColor.clRed; } else { MqttIstemci.Send('IOT|VALVE|OFF', 1, False); PompaDugme.Text = 'SULAMAYI BASLAT'; PompaDugme.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen; } PompaDugme.SetclProSettings(PompaDugme.clProSettings); }
{ MqttBagliMi = False;
AnaForm = TclForm.Create(Self); AnaForm.SetFormColor('#1B2631', '', clGNone); MqttIstemci = AnaForm.AddNewMQTTClient(AnaForm, 'MqttIstemci'); AnaForm.AddNewEvent(MqttIstemci, tbeOnMQTTClientMessage, 'MesajGeldi'); AnaForm.AddNewEvent(MqttIstemci, tbeOnMQTTClientConnected, 'BaglantiKuruldu'); AnaForm.AddNewEvent(MqttIstemci, tbeOnMQTTClientDisconnected, 'BaglantiKoptu');
MqttIstemci.BrokerHost = 'broker.hivemq.com'; MqttIstemci.Port = 1883; BaslikPanel = AnaForm.AddNewProPanel(AnaForm, 'BaslikPanel'); BaslikPanel.Align = alTop; BaslikPanel.Height = 60; BaslikPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C3E50'); BaslikPanel.SetclProSettings(BaslikPanel.clProSettings); BaslikYazi = AnaForm.AddNewProLabel(BaslikPanel, 'BaslikYazi', 'Isabet-IoT Akilli Sulama Sistemi'); BaslikYazi.Align = alClient; BaslikYazi.clProSettings.FontSize = 18; BaslikYazi.clProSettings.FontColor = clAlphaColor.clWhite; BaslikYazi.clProSettings.FontHorzAlign = palCenter; BaslikYazi.clProSettings.FontVertAlign = palCenter; BaslikYazi.SetclProSettings(BaslikYazi.clProSettings); LogoResim = AnaForm.AddNewProImage(AnaForm, 'LogoResim'); LogoResim.Align = alTop; LogoResim.Height = 180; LogoResim.clProSettings.PictureSource = 'https://resmim.net/cdn/2026/05/12/C0AxYH.jpg'; LogoResim.clProSettings.PictureStretch = True; LogoResim.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1B2631'); LogoResim.SetclProSettings(LogoResim.clProSettings); LblStatus = AnaForm.AddNewProLabel(AnaForm, 'LblStatus', 'SİSTEM BAĞLANTISI BEKLENİYOR'); LblStatus.Align = alTop; LblStatus.Height = 30; LblStatus.clProSettings.FontSize = 11; LblStatus.clProSettings.FontColor = clAlphaColor.clGray; LblStatus.clProSettings.FontHorzAlign = palCenter; LblStatus.SetclProSettings(LblStatus.clProSettings);
SicaklikPanel = AnaForm.AddNewProPanel(AnaForm, 'SicaklikPanel'); SicaklikPanel.Align = alTop; SicaklikPanel.Height = 70; SicaklikPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495E'); SicaklikPanel.clProSettings.RoundHeight = 15; SicaklikPanel.SetclProSettings(SicaklikPanel.clProSettings); SicaklikYazi = AnaForm.AddNewProLabel(SicaklikPanel, 'SicaklikYazi', '🌡️ Hava: --°C'); SicaklikYazi.Align = alClient; SicaklikYazi.clProSettings.FontSize = 16; SicaklikYazi.clProSettings.FontColor = clAlphaColor.clWhite; SicaklikYazi.clProSettings.FontHorzAlign = palCenter; SicaklikYazi.clProSettings.FontVertAlign = palCenter; SicaklikYazi.SetclProSettings(SicaklikYazi.clProSettings); ToprakPanel = AnaForm.AddNewProPanel(AnaForm, 'ToprakPanel'); ToprakPanel.Align = alTop; ToprakPanel.Height = 70; ToprakPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495E'); ToprakPanel.clProSettings.RoundHeight = 15; ToprakPanel.SetclProSettings(ToprakPanel.clProSettings); ToprakYazi = AnaForm.AddNewProLabel(ToprakPanel, 'ToprakYazi', '💧 Toprak Nemi: --%'); ToprakYazi.Align = alClient; ToprakYazi.clProSettings.FontSize = 16; ToprakYazi.clProSettings.FontColor = clAlphaColor.clWhite; ToprakYazi.clProSettings.FontHorzAlign = palCenter; ToprakYazi.clProSettings.FontVertAlign = palCenter; ToprakYazi.SetclProSettings(ToprakYazi.clProSettings); YagmurPanel = AnaForm.AddNewProPanel(AnaForm, 'YagmurPanel'); YagmurPanel.Align = alTop; YagmurPanel.Height = 70; YagmurPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495E'); YagmurPanel.clProSettings.RoundHeight = 15; YagmurPanel.SetclProSettings(YagmurPanel.clProSettings); YagmurYazi = AnaForm.AddNewProLabel(YagmurPanel, 'YagmurYazi', '☀️ Durum: --'); YagmurYazi.Align = alClient; YagmurYazi.clProSettings.FontSize = 16; YagmurYazi.clProSettings.FontColor = clAlphaColor.clWhite; YagmurYazi.clProSettings.FontHorzAlign = palCenter; YagmurYazi.clProSettings.FontVertAlign = palCenter; YagmurYazi.SetclProSettings(YagmurYazi.clProSettings); DepoPanel = AnaForm.AddNewProPanel(AnaForm, 'DepoPanel'); DepoPanel.Align = alTop; DepoPanel.Height = 70; DepoPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495E'); DepoPanel.clProSettings.RoundHeight = 15; DepoPanel.SetclProSettings(DepoPanel.clProSettings); DepoYazi = AnaForm.AddNewProLabel(DepoPanel, 'DepoYazi', '🌊 Depo: --'); DepoYazi.Align = alClient; DepoYazi.clProSettings.FontSize = 16; DepoYazi.clProSettings.FontColor = clAlphaColor.clWhite; DepoYazi.clProSettings.FontHorzAlign = palCenter; DepoYazi.clProSettings.FontVertAlign = palCenter; DepoYazi.SetclProSettings(DepoYazi.clProSettings); PompaDugme = AnaForm.AddNewProButton(AnaForm, 'PompaDugme', 'SULAMAYI BASLAT'); PompaDugme.Align = alBottom; PompaDugme.Height = 80; PompaDugme.clProSettings.BackgroundColor = clAlphaColor.clDarkgreen; PompaDugme.clProSettings.FontColor = clAlphaColor.clWhite; PompaDugme.clProSettings.FontSize = 18; PompaDugme.clProSettings.RoundHeight = 20; PompaDugme.SetclProSettings(PompaDugme.clProSettings); AnaForm.AddNewEvent(PompaDugme, tbeOnClick, 'PompaDugmeTiklandi'); MqttIstemci.Connect; AnaForm.Run; } buraya kadar geldim ama ![]() bu oldu ne yapmalıyım  < defer="" ="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" -cf-beacon=""version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"_timing":"name":"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true,"location_startswith":null" crossorigin="anonymous">
|