Skip to Content
Proje ListesiOrta6. Uzaktan Servo Kilit

6. Uzaktan Servo Kilit

PxServ’den kilitli veya acik komutu alıp SG90 servoyu iki tanımlı açı arasında hareket ettirin. Komut ile cihazın uyguladığı durumun ayrı anahtarlarda tutulmasını öğrenin.

Seviye: Orta · Süre: 40 dakika

Donanım ve güç

  • ESP32 DevKit V1, SG90 mikro servo
  • Arduino Library Manager’dan ESP32Servo
  • Servo için kararlı harici 5 V güç kaynağı
ServoBağlantı
SinyalGPIO 18
VCCHarici 5 V
GNDHarici kaynak GND ve ESP32 GND ortak

Servoyu ESP32’nin 3V3 pininden beslemeyin. Bu örnek fiziksel güvenlik kilidi değil, masaüstü mekanizma prototipidir.

Tam kod

#include <PxServ.h> #include <ESP32Servo.h> const char* WIFI_SSID = "wifi_ssid"; const char* WIFI_PASSWORD = "wifi_sifre"; const char* PXSERV_API_KEY = "pxserv_api_anahtariniz"; const int SERVO_PIN = 18; const int LOCKED_ANGLE = 15; const int OPEN_ANGLE = 95; PxServ client(PXSERV_API_KEY); Servo lockServo; String appliedState = ""; void applyState(String state) { if (state == "acik") { lockServo.write(OPEN_ANGLE); appliedState = "acik"; } else { lockServo.write(LOCKED_ANGLE); appliedState = "kilitli"; } delay(500); client.setData("servo-kilit/durum", appliedState); } void setup() { Serial.begin(115200); lockServo.setPeriodHertz(50); lockServo.attach(SERVO_PIN, 500, 2400); lockServo.write(LOCKED_ANGLE); appliedState = "kilitli"; delay(500); PxServ::connectWifi(WIFI_SSID, WIFI_PASSWORD); client.setData("servo-kilit/durum", "kilitli"); } void loop() { PxServ::Callback command = client.getData("servo-kilit/komut"); if (command.status == 200 && command.data != appliedState) { applyState(command.data == "acik" ? "acik" : "kilitli"); } delay(2000); }

Test

Servo kolunu mekanizmaya bağlamadan önce açıları test edin. Ardından komut anahtarını acik ve kilitli arasında değiştirin. Mekanizma sınırlarına zorlanıyorsa LOCKED_ANGLE ve OPEN_ANGLE değerlerini küçültün; servo sürekli zorlanmamalıdır.

Profesyonel not

Kod yalnızca hedef açının yazıldığını onaylar; gerçek konumu ölçmez. Güvenilir kilit doğrulaması için limit switch veya konum sensörü eklenmelidir.

Son güncelleme