Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Derya Toprak

deryat12

@toprak-d · Kasım 2025 tarihinde katıldı

Yeni üye

Otomasyon mühendisi · ilaç

Konular
1
Yanıtlar
16
Puan
0
Yeni üye10 için Üye puan

Oluşturulan forum yanıtları

15 yazı görüntüleniyor – 1 ile 15 arası (toplam 16)

Yapay zekâ tarafından English dilinden çevrildi ·

Peki kart Manuel modundayken kartın Komutlar bölümü hâlâ çalışıyor mu? Pompayı elle çalıştıracağımız an tam olarak bu.

♥ 0

Uno’nun USB tarafını ana işlemci değil, yanındaki ATmega16U2 yönetiyor ve o sadece seri port gibi davranıyor. 16U2’yi yeniden programlayıp klavye yapanlar var ama zahmetli. Biz ilaç tarafında etiket yazıcısına benzer bir şey yaptık, şöyle kurdum:

Doğrudan USB’si olan bir kart lazım. Leonardo veya Pro Micro (ATmega32u4) Keyboard.h ile klavye olur. Ben ESP32-S3’ü tercih ederim: hem Wi-Fi’si var hem yerel USB’si, tek kart hem Hermetry’ye MQTT ile bağlanıyor hem klavye oluyor. Arduino-ESP32 core’unda USBHIDKeyboard var.

Hermetry tarafında kartın profiline Commands sekmesinden dozaj.yaz diye bir komut ekle, tek parametre: deger (Number, min-max aralığını gir ki saçma bir değer hiç gitmesin). Tier’ı Privileged yap, “High impact” işaretle; gönderen onaylamak zorunda kalır ve kayıt audit log’a düşer.

Kart tarafı kabaca:

void komutGeldi(int id, float deger) {
  if (deger < 0.2 || deger > 3.0) { cevap(id, false); return; }
  char s[12];
  dtostrf(deger, 0, 2, s);
  Keyboard.print(s);
  Keyboard.write(KEY_RETURN);
  cevap(id, true);           // v1/rpc/res/{id} {"ok": true}
}

En büyük risk odak: klavye yazdığı yere yazar. Operatör o sırada başka bir pencerede ise değer oraya gider. Biz komuttan önce programın penceresini öne getiren bir kısayol (Alt+Tab değil, programın kendi kısayolu) yazdırdık, sonra alana Tab ile gittik.

Kabul edilen çözüm♥ 9

Ayşe’nin sorusu birinci sorun, kodunuz da ikinci. İkisini de geçen yıl aynı kurulumda yaşadım.

1. Gerilim: RFM95 3.3 V çipi, SPI pinleri 5 V’a toleranslı değil. Mega’nın MOSI, SCK, NSS ve RESET çıkışları 5 V. Modül bir süre “çalışıyor gibi” yapıyor, sonra kilitleniyor. Araya bir seviye dönüştürücü koyun (74LVC245 ya da en azından MOSI/SCK/NSS’de dirençli bölücü). Modül hasar görmüş olabilir, yenisiyle deneyin. Daha basiti 3.3 V çalışan bir kart.

2. onReceive bir kesmeden çağrılıyor. İçinde Serial.print, String birleştirme ve hele MQTT publish yaparsanız kesme çok uzun sürer, Ethernet shield de SPI’yi kullandığı için LoRa ile aynı hatta çakışıyorlar. Kesmede sadece bayrak kaldırın, işi loop()’ta yapın:

volatile int rxSize = 0;
void onReceive(int size) { rxSize = size; }

void loop() {
  if (rxSize) {
    char buf[64]; int n = 0;
    while (LoRa.available() && n < 63) buf[n++] = (char)LoRa.read();
    buf[n] = 0; rxSize = 0;
    gonderHermetry(buf);
    LoRa.receive();          // tekrar alma moduna al
  }
  mqtt.loop();
}

Ethernet shield ile RFM95’in CS pinleri ayrı olsun, birini seçerken öbürü HIGH kalsın.

Kabul edilen çözüm♥ 5

Röle de olur ama günde iki anahtarlama için MOSFET daha sessiz ve temiz. Benim önerim:

Lojik seviyeli N-kanal bir MOSFET (IRLZ44N gibi), low-side bağlantı. Lambaların artısı doğrudan 12V’a, eksisi MOSFET’in drain’ine, source aküye (eksi). Gate’e Pi’nin GPIO’sundan 100 Ω seri direnç, gate ile source arasına 10k pull-down. Pull-down olmazsa Pi açılırken lambalar yanıp söner. 4 A’de IRLZ44N soğutucusuz rahat çalışır, Pi’nin eksisi ile akünün eksisini birleştirmeyi unutma.

Zamanlama için Hermetry’de Kurallar kartını kullan:

  • Ne zaman: Gün doğumu veya gün batımı, gün batımı, ofset -15 dakika
  • Sonra: Komut gönder, cihaz Pi, komut light.set, parametre on: true
  • İkinci bir kural: gün doğumu, on: false

Komutu cihaz profilinin Commands kataloğuna eklemen lazım. Bir de yerin konumu girilmiş olmalı, yoksa kart kaydetmiyor: cihazın üstündeki en yakın varlığın konumu kullanılıyor. Ayrıntılar: Kurallar kartı: tetikleyiciler.

Pi tarafında v1/rpc/req/+ konusuna abone ol, light.set gelince pini sür, cevabı v1/rpc/res/<id> ile dön. Mevsim derdi de böylece kalmaz.

Kabul edilen çözüm♥ 3

Çok net oldu, teşekkürler Esra Hanım. Vanayı Opening’e bağladım, SP için set point kartı koydum, Kp’yi ekrandan kaldırdım. Komutu ilk başta Privileged yapmıştım, panodan “This command cannot be sent from a board” hatası aldım, Basic’e çektik ama kartı sadece vardiya şefleri görsün diye ayrı bir panoya koyduk.

♥ 1
15 yazı görüntüleniyor – 1 ile 15 arası (toplam 16)