ESP32 integrierten Hall-Effekt-Sensor verwenden

Alle ESP32-Karten haben einen eingebauten Hall-Effekt-Sensor. Der Hall-Effekt-Sensor kann Änderungen des Magnetfeldes in seiner Umgebung erkennen. Je größer das Magnetfeld ist, desto höher ist die Ausgangsspannung des Hall-Effekt-Sensors.

Der Arduino verfügt über eine Funktion hallRead(), welche die durch das Magnetfeld erzeugte Spannungsdifferenz als Analogwert zurückgibt. Je stärker das externe Magnetfeld ist, desto höher ist der von der Funktion zurückgegebene Analogwert.

Öffnen wir die Arduino IDE, wählen wir das entsprechende ESP32-Board und den Port aus und laden wir den untenstehenden Code hoch.

int hallValue;

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  hallValue = hallRead();

  Serial.print("ESP32 Hall effect sensor value: ");
  Serial.println(hallValue);

  delay(1000);
}

Wenn der Upload abgeschlossen ist, öffnen wir den seriellen Monitor.

Nähern wir uns dem ESP32 Hall-Sensor mit einem Magneten und sehen wir uns an, wie sich die von der hallRead-Funktion zurückgegebenen Werte ändern.

Wenn wir den Magnet umdrehen, ändert sich das Vorzeichen der Werte. Je nach Polarität des Magneten ist der vom Hall-Effekt-Sensor zurückgegebene Wert positiv oder negativ.

Je näher der Magnet am Sensor ist, desto höher sind die absoluten Werte.

ESP32 NodeMCU WLAN Module
ESP32 Dev Kit C V4 NodeMCU WLAN/WiFi Development Board

Werbung

Erstellen wir einen Türsensor mit dem eingebauten Hall-Sensor des ESP32

A következő példa bemutatja, hogyan építsünk ajtó/ablak nyitásérzékelőt ESP32-vel és mágnessel.

int hallValue;
const int thresholdValue = 40;

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  hallValue = hallRead();

  Serial.print("ESP32 Hall effect sensor value: ");
  Serial.print(hallValue);

  if(abs(hallValue) < thresholdValue)
  {
    Serial.println(" - The door is open!");
  }
  else
  {
    Serial.println(" - The door is closed!");
  }
  Serial.println();
  delay(1000);
}

Im obigen Beispiel haben wir einen Grenzwert definiert, und speichern in der Konstante thresholdValue.

Vergleichen wir diesen Wert mit dem HallValue-Wert und wenn er unter dem Grenzwert liegt, wurde der Magnet wahrscheinlich aus der Nähe des eingebauten Hall-Effekt-Sensors des ESP32 entfernt. Eine Benachrichtigung, die diesem Wert entspricht, wird auf dem seriellen Monitor angezeigt.

Shelly Door/Window Sensor

Shelly Tür-/Fensterdetektor, Wi-Fi, kompatibel mit Alexa und Google Home

werbung – amazon.de

Shelly Tür-/Fensterdetektor

Wi-Fi, sendet Smartphone-Benachrichtigungen, einfache Installation, kompatibel mit Alexa und Google Home

Senden wir eine Push-Nachricht wenn die Tür geöffnet wird

Der folgende Code kann verwendet werden, um eine Push-Nachricht vom ESP32 an das angegebene Gerät (Telefon, Tablet, Computer) zu senden, wenn eine Tür geöffnet wird.

Weitere Informationen zur Verwendung von ESP32 und Pushsafer finden hier.

#include <WiFi.h>
#include <WiFiClient.h>
#include <Pushsafer.h>

#define PushsaferKey "Your_private_key"         // http://pushsafer.com

int hallValue;
int thresholdValue = 40;
bool pushsaferFlag = false;

const char ssid[] = "SSID";                     // Your SSID
const char password[] = "Password";             // Your password

WiFiClient client;
Pushsafer pushsafer(PushsaferKey, client);

void setup()
{
  WiFi.mode(WIFI_STA);
  delay(100);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
  }
}

void loop()
{
  hallValue = hallRead();
  if(abs(hallValue) < thresholdValue)
  {
    if(!pushsaferFlag)
    {
      struct PushSaferInput input;
      input.message = "The door is open!";
      input.title = "Attention!";
      input.sound = "6";
      input.vibration = "1";
      input.icon = "1";
      input.iconcolor = "#00FF00";
      input.priority = "1";
      input.device = "xxxxx";                 // Your Device ID:  http://pushsafer.com
      pushsafer.sendEvent(input);
      pushsaferFlag = true;
    }
  }
  else
  {
    pushsaferFlag = false;
  }
  delay(300);
}

SP8266 Vierkanal Wifi Relais IOT Smart Home Handy APP Fernbedienung
ESP32-CAM-MB 2640 Kameramodul WiFi Bluetooth-Entwicklungsplatine, USB auf serielle Port

werbung

ESP8266 ESP-01S mit USB-Adapter WLAN WiFi Modul