Ağ bağlantısı olmayan Arduino Nano’yu seri port üzerinden Hermetry’ye bağlamak
Merhabalar. Elimde bir Arduino Nano var, atölyedeki bir kompresörün yağ sıcaklığını (MAX6675) ve basıncını (analog sensör) okuyor. Nano’da ne Wi-Fi ne Ethernet var. Yanında USB ile bağlı bir Raspberry Pi 3 duruyor, Pi’de internet var.
İnternette “MQTT over serial” diye kütüphaneler gördüm, Nano MQTT paketlerini seri porttan Pi’ye gönderiyor, Pi de bunu broker’a aktarıyor gibi. Hermetry’ye böyle bağlanabilir miyim? Yoksa daha düzgün bir yöntem var mı? Bir de ileride ikinci bir Nano ekleyeceğim, onu da düşünmek lazım.
Seri hattın hızı yetiyor mu MQTT için? Hangi baud’da çalışıyorsun?
Şu an 9600, ama değiştirebilirim.
MQTT’yi seri hatta taşımaya gerek yok bence, Hermetry için TLS de gerekiyor, Nano onu zaten yapamaz. Bende iki tane böyle Nano var, şöyle çalışıyor:
Nano her 10 saniyede bir satır JSON basıyor:
Serial.print("{"oil_temp":");
Serial.print(t, 1);
Serial.print(","pressure_bar":");
Serial.print(p, 2);
Serial.println("}");
Pi’de Python, pyserial ile satırı okuyor, paho-mqtt ile 8883’e TLS’le bağlanıp v1/telemetry‘ye QoS 1 gönderiyor:
line = ser.readline().decode(errors='ignore').strip()
try:
data = json.loads(line)
except ValueError:
continue # bozuk satırı atla
if isinstance(data, dict):
client.publish('v1/telemetry', json.dumps(data), qos=1)
O try/except önemli: Nano reset atınca ya da hat parazit yapınca yarım satır geliyor. JSON olmayan bir gövdeyi Hermetry raw diye tek bir anahtar olarak saklıyor, sonra telemetri sekmesinde saçma metinler görürsün.
İkinci Nano gelince Pi’yi gateway yap: cihazı eklerken “This device is a gateway” seç, iki Nano’yu v1/gw/telemetry ile ayrı alt cihaz olarak gönder, mesela {"Kompresor-1": {"values": {...}}, "Kompresor-2": {...}}. Her biri Hermetry’de kendi cihazı olur, alarmları ayrı kurarsın.
Biz sahada RS485 ile aynı mantığı kullanıyoruz, uzun kabloda USB yerine iyi gidiyor. Kısa mesafede USB yeter.
Çok net oldu, teşekkürler Hakan Bey. Satır satır JSON’a geçtim, ilk gün gerçekten iki tane bozuk satır yakaladı try/except. Baud’u da 115200 yaptım. İkinci Nano gelince gateway’e geçeceğim.
- You must be logged in to reply to this topic.
Join the conversation
Sign in to ask and answer, like helpful posts and mark the reply that solved your problem. Every contribution earns points and levels.

