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.

