SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Nein, dies ist kein kommerzielles Angebot. So hoch sind die Kosten für die Komponenten des Systems, das Sie nach dem Lesen des Artikels zusammenstellen können.

Ein wenig Hintergrundgeschichte:

Vor einiger Zeit beschloss ich, Bienen zu halten, und sie kamen tatsächlich... für eine ganze Saison, aber sie sind nicht aus der Winterruhe gekommen.
Und das, obwohl ich scheinbar alles richtig gemacht habe – Herbstfütterung, Isolation gegen die Kälte.
Der Bienenstock war ein klassischer Holzstock des „Dadant“-Systems mit 10 Rahmen aus 40-mm-Brettern.
Aber in diesem Winter haben selbst erfahrene Imker aufgrund der Temperaturschwankungen viel mehr verloren als gewöhnlich.

So kam die Idee für ein Überwachungssystem für den Zustand des Bienenstocks.
Nach der Veröffentlichung mehrerer Artikel auf Habré und Gesprächen im Imkerforum beschloss ich, vom Einfachen zum Komplexen zu gehen.
Das Gewicht ist der einzige unbestrittene Parameter, aber typischerweise überwachen die bestehenden Systeme nur einen „Referenz“-Bienenstock.
Wenn mit ihm etwas nicht stimmt (zum Beispiel der Ausflug eines Schwarmes oder Bienenkrankheiten), werden die Messwerte irrelevant.

Deshalb wurde entschieden, das Gewicht von drei Bienenstöcken mit einem Mikrocontroller gleichzeitig zu überwachen und die weiteren „Extras“ später hinzuzufügen.
Am Ende entstand ein autarkes System mit einer Laufzeit von etwa einem Monat bei einer einzigen Ladung der 18650-Batterie und dem Versand von Statistiken einmal täglich.
Die Konstruktion wurde so einfach wie möglich gehalten, damit sie auch ohne Schaltpläne nur anhand von Fotos reproduziert werden kann.

Die Logik funktioniert folgendermaßen: Bei der ersten Inbetriebnahme/Rücksetzung werden die Werte der unter den Bienenstöcken installierten Sensoren im EEPROM gespeichert.
Jeden Tag nach Sonnenuntergang wacht das System auf, liest die Werte aus und sendet eine SMS mit der Gewichtänderung über einen Tag und seit dem Einschalten.
Außerdem wird der Spannungswert der Batterie übermittelt, und wenn dieser auf 3,5 V sinkt, wird eine Warnung ausgegeben, dass eine Aufladung notwendig ist, denn unter 3,4 V schaltet das Kommunikationsmodul nicht ein, und die Gewichtswerte „driften“ bereits.

„Erinnerst du dich, wie alles begann? Alles war neu und zum ersten Mal.“
SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €
Ja, genau so ein „Hardware“-Set war anfangs vorhanden, allerdings haben nur die Dehnungsaufnehmer und Kabel den Sprung zur Endversion überstanden, aber dazu später mehr.
Tatsächlich wird eine Kabeltrommel nicht benötigt, sie hatte lediglich den gleichen Preis wie 30 Meter am Stück.

Wenn dich der Abbau von 3 SMD-LEDs und einer halben Hundertschaft von gewöhnlichen (mit Ausgängen) Lötpunkten nicht schreckt – dann auf zur Sache!

Dafür benötigen wir die folgende Ausrüstung/materialien:

  1. Arduino Pro Mini 3V
    Achten Sie auf den linearen Spannungsregler — er sollte genau 3.3V sein — auf dem Chip mit der Kennzeichnung KB 33/LB 33/DE A10 — ich habe von den Chinesen etwas erhalten, und die gesamte Charge
    von Platinen im Geschäft war mit 5-Volt-Reglern und Quarzen mit 16MHz.
  2. USB-Ttl mit dem CH340-Chip — es kann sogar 5-Volt sein, aber dann muss während des Flashens des Mikrokontrollers die Arduino vom GSM-Modul getrennt werden, um letzteres nicht zu beschädigen.
    Platten mit dem PL2303-Chip funktionieren nicht unter Windows 10.
  3. GSM-Kommunikationsmodul Goouu Tech IOT GA-6-B oder AI-THINKER A-6 Mini.
    Warum habe ich mich für dieses entschieden? Neoway M590 — ein Modul, das besondere Tricks erfordert, GSM SIM800L — hat mir nicht gefallen wegen des nicht standardmäßigen 2.8V Logikpegels, der auch mit einem 3-Volt-Arduino angepasst werden muss.
    Außerdem hat die Lösung von AiThinker einen minimalen Energieverbrauch (beim Versenden von SMS habe ich keinen Stromverbrauch über 100mA gesehen).
  4. GSM GPRS Antenne 3DBI (auf dem obigen Foto — eine rechteckige Platine mit "Schwanz", auf 9 Uhr)
  5. Starterpaket von einem Anbieter, der eine gute Abdeckung im Bereich Ihrer Bienenzucht hat.
    Ja, das Paket muss zunächst in einem herkömmlichen Telefon aktiviert werden, die PIN-Anfrage beim Anmelden DEAKTIVIEREN und das Guthaben aufladen.
    Jetzt gibt es viele Optionen mit Namen wie „Sensor“, „IoT“ – diese haben eine etwas geringere Abonnementgebühr.
  6. Dupont-Kabel 20 cm, männlich-männlich – 3 Stück (zum Anschluss eines Arduino an USB-TTL)
  7. 3 Stück HX711 – ADC für Waagen
  8. 6 Dehnungssensoren für ein Gewicht von bis zu 50 kg
  9. 15 Meter 4-adriges Telefonkabel – zur Verbindung von Gewichtseinheiten mit ARDUINO.
  10. Fotoresistor GL5528 (es ist wichtig, genau diesen zu verwenden, mit einem Dunkelwiderstand von 1 MΩ und einem Lichtwiderstand von 10-20 kΩ) und zwei gewöhnliche Widerstände auf 20 kΩ
  11. Ein Stück doppelseitiges „dickes“ Klebeband 18x18 mm – zur Befestigung des Arduino an dem Kommunikationsmodul.
  12. Batteriehalter 18650 und die Batterie selbst ~2600 mAh.
  13. Ein wenig Wachs oder Paraffin (Aromakerzen-Tischkerze) – für den Feuchtigkeitsschutz des HX711.
  14. Ein Stück Holzblock 25x50x300 mm für die Basis der Dehnungssensoren.
  15. Dutzend Schrauben mit Unterlegscheibe 4,2x19 mm zur Befestigung der Sensoren an der Basis.

Die Batterie kann von Laptop-Reparaturen genommen werden – das ist um ein Vielfaches günstiger als neu, und die Kapazität wird viel höher sein als bei der chinesischen UltraFire – ich habe 1500 gegenüber 450 bekommen (das ist bei Fire 6800 😉

Darüber hinaus werden Geschicklichkeit, ein EPSN-25 Lötkolben, Kolophonium und LOT-POS-60 benötigt.

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Vor 5 Jahren benutzte ich einen sowjetischen Lötkolben mit einer Kupferspitze (ich konnte mich einfach nicht mit Lötstationen anfreunden — ich nahm sie zum Testen und beendete die Schaltung mit dem EPSN).
Doch nach dem Ausfall und einigen schrecklichen chinesischen Nachahmungen, bei denen die letzte den Namen Sparta trug — ein so robustes Teil wie der Name selbst, blieb ich
bei einem Produkt mit Temperaturregler stehen.

Also, los geht's!

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Zuerst lösen wir die beiden LEDs aus dem GSM-Modul (der Ort, an dem sie waren, ist mit einem orangefarbenen Oval umrandet).
Die SIM-Karte stecken wir mit den Kontaktflächen zur Leiterplatte, die abgeschrägte Ecke im Foto ist mit einem Pfeil gekennzeichnet.

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Als nächstes führen wir das gleiche Verfahren mit der LED auf der Arduino-Platine durch (Oval links vom quadratischen Chip),
löten wir das 4-pole Steckerleiste (1) ein.
Wir nehmen zwei 20k Widerstände, verdrehen die Anschlüsse auf einer Seite, und löten die Verbindung in das Loch des Kontakts A5, die übrigen Anschlüsse in RAW und GND der Arduino-Platine (2).
Den Fotowiderstand kürzen wir auf 10 mm und löten ihn an die Anschlüsse GND und D2 der Platine (3).

Jetzt ist es Zeit für das blaue Klebeband mit doppelseitigem Klebstoff — wir kleben es auf den Halter für die SIM-Karte des Kommunikationsmoduls und darauf — das Arduino — die rote (silberne) Taste zeigt zu uns und befindet sich über der SIM-Karte.

Wir löten die Stromversorgung: Plus vom Kondensator des Kommunikationsmoduls (4) an den RAW-Kontakt des Arduino.
Das Modul benötigt zur Stromversorgung 3,4-4,2 V, und sein PWR-Kontakt führt zu einem Step-Down-Spannungswandler. Daher muss beim Betrieb mit Li-Ion-Batterien die Spannung diesen Teil der Schaltung umgehen.

Im Arduino selbst führen wir die Stromversorgung jedoch über einen linearen Wandler zu — bei geringen Stromverbräuchen beträgt der Spannungsabfall (Drop-Out) 0,1 V.
Indem wir stabilisierte Spannung an die HX711-Module anlegen, entfallen Anpassungen für eine geringere Spannung (und gleichzeitig die Erhöhung von Störungen, die durch diesen Vorgang entstehen könnten).

Anschließend löten wir Jumpers (5) zwischen den Kontakten PWR-A1, URX-D4 und UTX-D5, die 'Masse' GND-G (6) und schließlich die Stromversorgung vom Halter für die 18650-Batterien (7) und schließen die Antenne (8) an.
Jetzt nehmen wir den USB-TTL-Konverter und verbinden ihn mit Jumperkabeln mit dem ARDUINO (Steckerleiste 1) an die Kontakte RXD-TXD und TXD-RXD, GND-GND:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Das oben gezeigte Bild zeigt die erste von drei Versionen des Systems, das zur Fehlersuche verwendet wurde.

Jetzt lenken wir für eine Weile von dem Lötkolben ab und kommen zum Softwareteil.
Ich werde die Schritte für Windows beschreiben:
Zuerst müssen wir die Software herunterladen und installieren/entpacken Arduino IDE — die aktuelle Version ist 1.8.9, aber ich verwende 1.6.4

Um es einfach zu halten, entpacken wir das Archiv in den Ordner C:arduino-«Ihre_Version», darin befinden sich die Ordner /dist, drivers, examples, hardware, java, lib, libraries, reference, tools sowie die ausführbare Datei arduino (neben anderen).

Jetzt benötigen wir eine Bibliothek für die Arbeit mit dem ADC HX711 — die grüne Schaltfläche „clone or download“ — download ZIP.
Der Inhalt (Ordner HX711-master) wird in das Verzeichnis C:arduino-«Ihre_Version»libraries gelegt

Und natürlich den Treiber für USB-TTL vom gleichen GitHub — aus dem entpackten Archiv wird einfach die Installationsdatei SETUP gestartet.

Okay, starten wir das Programm C:arduino-«Ihre_Version»arduino und konfigurieren es.

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Gehen Sie zu „Werkzeuge“ und wählen Sie das Board „Arduino Pro oder Pro Mini“, Prozessor Atmega 328 3.3V 8 MHz, Port — eine Nummer außer dem systemeigenen COM1 (dieser erscheint nach der Installation des CH340-Treibers, wenn der USB-TTL-Adapter verbunden ist).

Okay, wir kopieren das folgende Sketch (Programm) und fügen es in das Fenster der Arduino IDE ein.

char phone_no[]="+123456789012"; // Your phone number that receive SMS with counry code 
#include <avr/sleep.h>  // ARDUINO sleep mode library
#include <SoftwareSerial.h> // Sofrware serial library
#include "HX711.h" // HX711 lib. https://github.com/bogde/HX711
#include <EEPROM.h> // EEPROM lib.
HX711 scale0(10, 14);
HX711 scale1(11, 14);
HX711 scale2(12, 14);
#define SENSORCNT 3
HX711 *scale[SENSORCNT];

SoftwareSerial mySerial(5, 4); // Set I/O-port TXD, RXD of GSM-shield  
byte pin2sleep=15; //  Set powerON/OFF pin

float delta00; // delta weight from start
float delta10;
float delta20;
float delta01; // delta weight from yesterday
float delta11;
float delta21;

float raw00; //raw data from sensors on first start
float raw10;
float raw20;
float raw01; //raw data from sensors on yesterday
float raw11;
float raw21;
float raw02; //actual raw data from sensors
float raw12;
float raw22;

word calibrate0=20880; //calibration factor for each sensor
word calibrate1=20880;
word calibrate2=20880;

word daynum=0; //numbers of day after start

int notsunset=0;

boolean setZero=false;

float readVcc() { // Read battery voltage function
  long result1000;
  float rvcc;  
  result1000 = analogRead(A5);
  rvcc=result1000;
  rvcc=6.6*rvcc/1023;
  return rvcc;
}

void setup() { // Setup part run once, at start

  pinMode(13, OUTPUT);  // Led pin init
  pinMode(2, INPUT_PULLUP); // Set pullup voltage
  Serial.begin(9600);
  mySerial.begin(115200); // Open Software Serial port to work with GSM-shield
  pinMode(pin2sleep, OUTPUT);// Itit ON/OFF pin for GSM
  digitalWrite(pin2sleep, LOW); // Turn ON modem
  delay(16000); // Wait for its boot 

scale[0] = &scale0; //init scale
scale[1] = &scale1;
scale[2] = &scale2;

scale0.set_scale();
scale1.set_scale();
scale2.set_scale();

delay(200);

setZero=digitalRead(2);

if (EEPROM.read(500)==EEPROM.read(501) || setZero) // first boot/reset with hiding photoresistor
//if (setZero)
{
raw00=scale0.get_units(16); //read data from scales
raw10=scale1.get_units(16);
raw20=scale2.get_units(16);
EEPROM.put(500, raw00); //write data to eeprom
EEPROM.put(504, raw10);
EEPROM.put(508, raw20);
for (int i = 0; i <= 24; i++) { //blinking LED13 on reset/first boot
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(13, LOW);
    delay(500);
  }
}
else {
EEPROM.get(500, raw00); // read data from eeprom after battery change
EEPROM.get(504, raw10);
EEPROM.get(508, raw20);
digitalWrite(13, HIGH); // turn on LED 13 on 12sec. 
    delay(12000);
digitalWrite(13, LOW);
}

delay(200); // Test SMS at initial boot

//
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS="");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.println("INITIAL BOOT OK");
  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
 if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

//  

raw02=raw00;
raw12=raw10;
raw22=raw20;

//scale0.power_down(); //power down all scales 
//scale1.power_down();
//scale2.power_down();

}

void loop() {

  attachInterrupt(0, NULL , RISING); // Interrupt on high lewel
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); //Set ARDUINO sleep mode
  digitalWrite(pin2sleep, HIGH); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, LOW); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, HIGH);
  digitalWrite(13, LOW);
  scale0.power_down(); //power down all scales 
  scale1.power_down();
  scale2.power_down();
  delay(90000);
  sleep_mode(); // Go to sleep
  detachInterrupt(digitalPinToInterrupt(0)); // turn off external interrupt

  notsunset=0;
 for (int i=0; i <= 250; i++){
      if ( !digitalRead(2) ){ notsunset++; } //is a really sunset now? you shure?
      delay(360);
   }
  if ( notsunset==0 )
  { 
  digitalWrite(13, HIGH);
  digitalWrite(pin2sleep, LOW); // Turn-ON GSM-shield
  scale0.power_up(); //power up all scales 
  scale1.power_up();
  scale2.power_up();
  raw01=raw02;
  raw11=raw12;
  raw21=raw22;
  raw02=scale0.get_units(16); //read data from scales
  raw12=scale1.get_units(16);
  raw22=scale2.get_units(16);

  daynum++; 
  delta00=(raw02-raw00)/calibrate0; // calculate weight changes 
  delta01=(raw02-raw01)/calibrate0;
  delta10=(raw12-raw10)/calibrate1;
  delta11=(raw12-raw11)/calibrate1; 
  delta20=(raw22-raw20)/calibrate2;
  delta21=(raw22-raw21)/calibrate2;

  delay(16000);
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS="");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.print("Turn ");
  mySerial.println(daynum);
  mySerial.print("Hive1  ");
  mySerial.print(delta01);
  mySerial.print("   ");
  mySerial.println(delta00);
  mySerial.print("Hive2  ");
  mySerial.print(delta11);
  mySerial.print("   ");
  mySerial.println(delta10);
  mySerial.print("Hive3 ");
  mySerial.print(delta21);
  mySerial.print("   ");
  mySerial.println(delta20);

  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
  if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

  }

}

In der ersten Zeile, in Anführungszeichen char phone_no[]=»+123456789012″; — ersetzen Sie 123456789012 durch Ihre Telefonnummer mit der Landesvorwahl, an die die SMS gesendet werden sollen.

Jetzt drücken wir die Prüftaste (über der Eins im obigen Screenshot) — wenn unten (unter der Drei im Screenshot) «Kompilierung abgeschlossen» steht, können wir den Mikrocontroller flashen.

So, USB-TTL ist mit ARDUINO und dem Computer verbunden, wir setzen den geladenen Akku in die Halterung (normalerweise beginnt die LED auf der neuen Arduino mit einer Frequenz von einmal pro Sekunde zu blinken).

Jetzt beim Flashen — üben Sie, die rote (silberne) Taste des Mikrocontrollers zu drücken — dies muss genau im richtigen Moment geschehen!!!
Kapiert? Drücken Sie die Schaltfläche «Hochladen» (über der Zwei im Screenshot) und beobachten Sie sorgfältig die Zeile unten im Interface (unter der Drei im Screenshot).
Sobald die Aufschrift «Kompilierung» in «Hochladen» wechselt — drücken Sie die rote Taste (Reset) — wenn alles in Ordnung ist, blitzen die Lichter des USB-TTL-Adapters fröhlich, und unten im Interface steht «Hochgeladen».

Während wir auf den Eingang der Test-SMS auf dem Telefon warten, erkläre ich, wie das Programm funktioniert:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Auf dem Foto ist die zweite Version des Teststandes zu sehen.

Beim ersten Einschalten prüft das System, ob die Bytes 500 und 501 im EEPROM gleich sind. Wenn sie übereinstimmen, wurden die Kalibrierungsdaten nicht gespeichert, und der Algorithmus wechselt zu den Einstellungen.
Das Gleiche geschieht, wenn beim Einschalten der Fotowiderstand beschattet ist (z. B. mit einem Stiftdeckel) — der Rücksetzmodus wird aktiviert.

Die Dehnungssensoren sollten bereits unter den Bienenkästen montiert sein, da wir einfach den Anfangsnullwert fixieren und dann die Gewichtänderung messen (aktuell kommen nur Nullen, da wir noch nichts angeschlossen haben).
Auf dem Arduino beginnt die integrierte LED an Pin 13 zu blinken.
Wenn der Reset nicht erfolgt, leuchtet die LED für 12 Sekunden.
Danach wird eine Test-SMS mit der Nachricht „INITIAL BOOT OK“ und der Batteriespannung gesendet.
Das Kommunikationsmodul wird abgeschaltet, und nach 3 Minuten versetzt die Arduino-Platine die ADC-Platinen HX711 in den Schlafmodus und selbst in den Schlaf.
Diese Verzögerung wurde eingeführt, um Störungen vom aktiven GSM-Modul zu vermeiden (nach dem Ausschalten strahlt es eine Zeit lang).

Weiterhin haben wir eine Unterbrechung durch den Fotodetektor am zweiten Pin (plus wird mit der Pullup-Funktion gezogen).
Nach dem Auslösen überprüft das System für weitere 3 Minuten den Zustand des Fototransistors, um wiederholte/falsche Auslösungen auszuschließen.
Interessanterweise löst das System ohne jegliche Einstellung nach 10 Minuten nach astronomischem Sonnenuntergang bei bewölktem Wetter und nach 20 Minuten bei klarem Wetter aus.
Ja, um zu verhindern, dass das System bei jedem Einschalten zurückgesetzt wird, muss mindestens das erste HX711-Modul (Pin DT-D10, SCK-A0) angeschlossen sein.

Dann werden die Werte der Dehnungssensoren erfasst, die Gewichtänderung seit der letzten Auslösung (die erste Zahl in der Zeile nach Hive) und seit dem ersten Einschalten berechnet, die Batteriespannung überprüft und diese Informationen als SMS versendet:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Übrigens, haben Sie die SMS erhalten? Herzlichen Glückwunsch! Wir sind auf halbem Weg! Die Batterie kann vorerst aus dem Halter entfernt werden, der Computer wird nicht mehr benötigt.

Übrigens ist das Kontrollzentrum so kompakt, dass es in ein Mayonnaiseglas passt, in meinem Fall wurde eine halbtransparente Box mit den Maßen 30x60x100 mm (von Visitenkarten) perfekt.

Ja, das schlafende System verbraucht ungefähr 2,3 mA — zu 90 % durch das Kommunikationsmodul — es wird nicht vollständig abgeschaltet, sondern wechselt in den Energiesparmodus.

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Wir beginnen mit der Herstellung der Sensoren, zunächst betrachten wir das Schema zur Anordnung der Sensoren:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Das ist der Plan des Bienenstocks – Ansicht von oben.

Klassischerweise werden 4 Sensoren an den Ecken installiert (1, 2, 3, 4)

Wir werden jedoch anders messen. Genauer gesagt, sogar auf eine dritte Weise. Denn anders machen es die Leute von BroodMinder:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

In dieser Konstruktion sind die Sensoren an den Positionen 1 und 2 installiert, während die Punkte 3 und 4 auf einem Sparren ruhen.
Dann lastet nur die Hälfte des Gewichts auf den Sensoren.
Ja, diese Methode hat eine geringere Genauigkeit, aber es ist dennoch schwer vorstellbar, dass die Bienen alle Rähmchen mit 'Zungen' aus Wachs entlang einer Seite des Bienenstocks ausstatten würden.

Ich schlage vor, die Sensoren überhaupt auf Punkt 5 zu reduzieren – dann entfällt die Notwendigkeit, das System abzuschirmen, und bei der Verwendung leichter Bienenstöcke könnte man sogar mit nur einem Sensor auskommen.

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Insgesamt wurden zwei Arten von Modulen mit HX711, zwei Sensortypen und zwei Varianten ihrer Verbindung überprüft – mit einer Vollbrücke nach Wheatstone (2 Sensoren) und mit einer halben, wobei der zweite Teil mit 1k Widerständen mit einer Toleranz von 0,1% ergänzt wird.
Aber die letzte Methode ist unerwünscht und wird sogar von den Herstellern der Sensoren nicht empfohlen, daher werde ich nur die erste beschreiben.

Also, für einen Bienenstock werden zwei Dehnungsmesser und ein HX711-Modul installiert. Das Verdrahtungsschema ist wie folgt:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Vom ADC-Board zum Arduino verläuft ein 5 Meter langes 4-adriges Telefonkabel — wir erinnern uns, wie sehr Bienen GSM-Geräte im Bienenstock nicht mögen..

Wir lassen also an den Sensoren 8 cm „Schwänze“, entisolieren das verdrillte Paar und löten alles wie auf dem obigen Foto.

Bevor wir mit dem Holzarbeiten beginnen, legen Sie das Wachs/Paraffin in einen geeigneten Behälter zum Schmelzen in ein Wasserbad.

Jetzt nehmen wir unseren Balken und teilen ihn in drei Stücke von je 100 mm.

Dann markieren wir eine Längsnut von 25 mm Breite und 7-8 mm Tiefe, entfernen das Überflüssige mit einer Sä Saw und einem Chisel — es sollte ein U-förmiges Profil entstehen.

Ist das Wachs geschmolzen? — tauchen wir unsere ADC-Boards dort ein — das schützt sie vor Feuchtigkeit/Nebel:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Wir platzieren das alles auf einem Holzuntergrund (muss mit Antiseptikum gegen Verrottung behandelt werden):

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Und schließlich fixieren wir die Sensoren mit Schrauben:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Es gab auch eine Variante mit blauer Klebeband, aber aus humanitären Gründen bringe ich sie nicht 😊.

Vom Arduino aus machen wir Folgendes:

Wir reinigen unsere Telefonkabel, verdrehen die farbigen Drähte miteinander und verzinnen sie.

Danach löten wir sie an die Kontakte der Platine wie auf dem Foto:

SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Alles klar, jetzt zur abschließenden Überprüfung. Wir platzieren die Sensoren nach den Sektoren des Kreises, oben kommt ein Stück Sperrholz drauf, dann setzen wir den Controller zurück (wir setzen die Batterie mit einer Kappe von einem Kugelschreiber, die auf den Fotodioden sitzt).

Dabei sollte die LED auf dem Arduino blinken und eine Test-SMS sollte eintreffen.

Als nächstes nehmen wir die Kappe vom photoelektrischen Element ab und gehen, um Wasser in eine 1,5-Liter-Plastikflasche zu füllen.
Wir stellen die Flasche auf das Sperrholz und wenn einige Minuten seit dem Einschalten vergangen sind, setzen wir die Kappe wieder auf den Fotowiderstand (um den Sonnenuntergang zu simulieren).

Nach drei Minuten sollte die LED an Arduino leuchten, und Sie sollten eine SMS mit einem Gewichtswert von etwa 1 kg auf allen Positionen erhalten.

Herzlichen Glückwunsch! Das System ist erfolgreich aufgebaut!

Wenn das System nun erneut aktiviert wird, werden in der ersten Spalte die Gewichte Nullen angezeigt.

Ja, unter realen Bedingungen sollte der Fotowiderstand idealerweise senkrecht nach oben ausgerichtet werden.

Nun gebe ich eine kurze Anleitung zur Nutzung:

  1. Installieren Sie die Dehnungssensoren unter den Rückwand des Bienenstocks (unter den vorderen sollte ein Balken/Brett mit einer Dicke von ~30mm platziert werden).
  2. Schirmen Sie den Fotowiderstand ab und setzen Sie den Akku ein – die LED sollte blinken und eine Test-SMS mit dem Text "INITIAL BOOT OK" eintreffen.
  3. Platziere die zentrale Einheit maximal entfernt von den Bienenstöcken und so, dass die Drähte bei der Arbeit mit den Bienen nicht stören.
    Jeden Abend nach Sonnenuntergang wird eine SMS mit dem Gewicht von tagsüber und seit dem Start eintreffen.
    Bei Erreichen einer Batteriespannung von 3,5 V endet die SMS mit der Zeile „!!! BATTERIE AUFLADEN !!!“
    Die Betriebszeit mit einer 2600 mAh Batterie beträgt etwa einen Monat.
    Im Falle des Batteriewechsels werden die täglichen Gewichtänderungen der Bienenstöcke nicht gespeichert.

UPD WARNUNG !

UNTER BEDINGUNGEN SCHWACHER SIGNALE erhöht das GSM-Modul die Leistung, was zu EINEM SYSTEMNEUSTART führt.

Dies wurde während „Feld“ Tests festgestellt (unverständlich, warum Benutzer von GSM-Shields keine solchen Probleme melden).

Ich bereite gerade einen neuen Plan vor:
SMS-Überwachung des Gewichts von drei Bienenstöcken für 30 €

Nach erfolgreicher Überprüfung wird diese Veröffentlichung aktualisiert.

Elektrobienhalter Andrei.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster