Tränkesensor



Ein einfacher Ultraschallsensor zur Überwachung der Tränkeaktivität von Sauen übers Smartphone.
Benötigte Materialien

Für den Sensor:
- Ultraschallensor HC-SR04
- ESP32-DevKitC V4
- Jumper Kabel
Für das Gehäuse und die Stromversorgung:
- Micro-USB Kabel
- Powerbank oder USB-Netzadapter
- Abzweigdosen, Tupperwaredose, Metall- oder Holzgehäuse ...
Notebook, Smartphone, WLAN im Stall
Ultraschallsensor Und Mikroprozessor Verbinden


Gnd zu Gnd (Orange)
Echo zu Pin 2 (Grün)
Trig zu 0 (Gelb)
Vcc zu 5V (Rot)
Blynk Installieren Und Projekt Anlegen








Mithilfe der „Blynk“-App werden die vom Ultraschallsensor gemessenen Distanzen vom Sensor über WLAN an einen Server und das gekoppelte Smartphone gesendet. Dort können die Sensordaten in Form eines Graphen mobil ausgelesen werden. Die App ist für Android und iOS als Basisvariante kostenfrei erhältlich und kann über die jeweiligen App-Stores installiert werden.
Unter „New Project“ ein neues Projekt anlegen. Namen der Bucht in der der Sensor montiert werden soll als Namen für das Projekt verwenden. „ESP32 Dev Board“ als Gerät auswählen und WiFi als Verbindungstyp angeben. Nach dem Bestätigen, die Kennzahl (“Auth-Code) notieren. Diese wird benötigt um den Sensor mit der App zu koppeln.
Die Projekte können selbst aus Bausteinen, sogenannten “Widgets” zusammengestellt werden. Für den Tränkesensor wird die Darstellung der Daten in einem Koordinatensystem benötigt. Dazu „SuperChart“ auswählen und in die vorhandene Fläche einpassen.
In den Darstellungsoptionen die Werte für die x- und y-Achse aktivieren und den Titel „Distanz“ vergeben. Unter „Datastreams“ werden die eingehenden Daten zugewiesen. Hier den Titel „cm“ vergeben und in den Einstellungen „Virtual Pin 5“ auswählen, an diese Schnittstelle werden die Daten des Sensors gesendet. Über die Play/Stop Schaltfläche im oberen rechten Bildrand wird das Widget aktiviert und deaktiviert. Ist der dem Projekt zugeordnete Sensor nicht mit dem WLAN verbunden bzw. die Stromzufuhr nicht gegeben, können keine Daten gesendet werden („Bucht 1 offline“).
Arduino Entwicklungsumgebung Installieren Und ESP 32 Verbinden






Die Programmierung des Microcontrollers erfolgt in der Entwicklungsumgebung von Arduino (IDE), das Programm ist kostenlos für Windows, Linux und macOS verfügbar.(Hier: https://www.heise.de/download/product/arduino-ide-84057 oder hier: https://www.arduino.cc/en/software) Nach dem ersten Start kann unter „Preferences“ die Sprache auf Deutsch umgestellt werden.
Damit die Arduino IDE den ESP32-Microcontroller erkennt, müssen die „Core“ Dateien installiert werden. Dazu unter: "Datei" -> "Voreinstellungen" die Schaltfläche "Zusätzliche Boardverwalter-URLs" aufrufen und folgenden Link einfügen: https://dl.espressif.com/dl/package_esp32_index.json
Wenn der PC den Microcontroller nicht erkennt, kann das daran liegen das vom verwendeten USB-Kabel Datenübertragung nicht unterstützt wird oder dass der USB-Treiber nicht installiert ist. Hilft es nicht ein paar unterschiedliche Kabel auszuprobieren, muss der Treiber für den USB-Konverter (CP210x) heruntergeladen und installiert werden. (Link: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers)
In der Arduino IDE muss unter „Werkzeuge -> Port“ festgelegt werden mit welchem USB Anschluss („COM Port“) der Mikrocontroller verbunden ist. Um das herauszufinden den Windows Geräte-Manager öffnen und den ESP32 aus- und wieder einstecken, um zu erkennen welcher COM-Port im Unterpunkt „Anschlüsse“ dadurch aktiviert wird („Silicon Labs CP210x USB to UART Bridge“).
Danach kann der ESP32 im Boardverwalter unter "Werkzeuge" -> "Board" -> "Boardverwalter" aktiviert werden. Im Suchfeld "esp32" eingeben, den Eintrag von “Espressif Systems“ auswählen und installieren.
Unter „Werkzeuge -> Boards“ das Modell des Mikroprozessors (“ESP32 Dev Module“), als Upload Speed „115200“ und als Programmer „Arduino as ISP ATmega32U4“.
Unter „Sketch -> Bibliothek einbinden -> Bibliothek verwalten“ die Bibliothek „Blynk“ von Volodymyr Shymansky installieren.
Code Auf ESP32 Laden



Den Code in den Editor kopieren. Unter „void setup“ das passende WLAN Passwort/Kennung und die jeweilige Blynk-Authentifizierung einsetzen. Mit einem Klick auf „Hochladen“ wird das Programm auf den Mikroprozessor gespielt. Während das Programm versucht die Verbindung zum ESP32 aufzubauen („Connecting…“) muss kurz der Boot Knopf am Mikroprozessor gedrückt werden.
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "AUTH-CODE_BLYNK";
char ssid[] = "NAME_WLAN";
char pass[] = "PASSWORT_WLAN";
const int trig = 0;
const int echo = 2;
long dauer;
int distanz;
BlynkTimer timer;
void sendSensor()
{
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite (trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
dauer = pulseIn(echo, HIGH);
distanz = dauer*0.034/2;
Blynk.virtualWrite(V5, distanz);
}
void setup()
{
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
Gehäuse Bauen Und Montieren





Als Gehäuse kann jeder Behälter verwendet werden der groß genug für den Mikroprozessor und Sensor ist. Die USB Verbindung sowie das Gehäuse muss gut abdichten. Wichtig dabei ist es auf leichte Zugänglichkeit achten. Für den Ultraschallsensor müssen zwei passende Löcher gebohrt werden.
Der Sensor wird in ungefähr einem Meter Höhe oberhalb der Tränke angebracht. Benutzt ein Tier die Tränke, verringert sich der gemessene Abstand auf Rücken- bis Schulterhöhe (50-70cm). Diese Abweichungen sind deutlich zu sehen und geben Rückschluss auf die Tränke-Häufigkeit.
Bei der Montage bedenken: Schallwellen bilden einen Kegel. Abhängig von der Montagehöhe muss der Sensor deshalb mehr oder weniger Abstand zur Wand haben. Der Sensor sollte möglichst waagrecht zur Tränkeroberfläche positioniert sein, die Messungen sind am genauesten wenn der Schall im rechten Winkel auf die Oberfläche trifft.
Die Tränkehäufigkeit ist zwischen den Tieren und sogar zwischen den Würfen eines Tieres stark unterschiedlich und reicht üblicherweise von etwa 5 bis 15 Besuchen am Tränker pro Tag. Am Tag vor der Geburt ist die Sau meistens viel häufiger am Tränker und am Tag nach der Geburt viel seltener.