Skip to Content

3. Bulut Bağlantılı Buton Sayacı

Her geçerli buton basışını sayın ve toplamı PxServ’e gönderin. Proje, dijital girişte dahili pull-up kullanımını ve basit buton sıçraması önlemeyi öğretir.

Seviye: Başlangıç · Süre: 25 dakika

Gerekenler

  • ESP32 DevKit V1
  • Anlık basmalı buton
  • Breadboard ve jumper kablolar

Bağlantılar

Buton ucuBağlantı
1GPIO 18
2GND

Kod INPUT_PULLUP kullandığı için harici direnç gerekmez. Butona basılmadığında giriş HIGH, basıldığında LOW okunur.

PxServ anahtarı

AnahtarÖrnek değer
buton-sayaci/toplam7

Tam kod

#include <PxServ.h> const char* WIFI_SSID = "wifi_ssid"; const char* WIFI_PASSWORD = "wifi_sifre"; const char* PXSERV_API_KEY = "pxserv_api_anahtariniz"; const int BUTTON_PIN = 18; PxServ client(PXSERV_API_KEY); unsigned long pressCount = 0; bool previousButton = HIGH; void setup() { Serial.begin(115200); pinMode(BUTTON_PIN, INPUT_PULLUP); PxServ::connectWifi(WIFI_SSID, WIFI_PASSWORD); client.setData("buton-sayaci/toplam", "0"); } void loop() { bool currentButton = digitalRead(BUTTON_PIN); if (previousButton == HIGH && currentButton == LOW) { delay(25); if (digitalRead(BUTTON_PIN) == LOW) { pressCount++; PxServ::Callback result = client.setData( "buton-sayaci/toplam", String(pressCount) ); Serial.print("Toplam: "); Serial.print(pressCount); Serial.print(" | Durum: "); Serial.println(result.status); } } previousButton = currentButton; delay(10); }

Test

Butona kontrollü biçimde beş kez basın. Seri Monitör ve PxServ paneli 5 göstermelidir. Kart yeniden başladığında bu öğretici sayaç sıfırlanır; kalıcı sayaç sonraki aşamalarda cihaz belleği veya buluttaki mevcut değer okunarak geliştirilebilir.

Sorun giderme

  • Tek basış birden fazla sayılıyorsa buton temasları gürültülüdür; delay(25) değerini 40–50 ms deneyin.
  • Sayaç hiç artmıyorsa butonun breadboard üzerindeki doğru karşılıklı bacaklarını kullandığınızdan emin olun.
Son güncelleme