(https://blogs.embarcadero.com/building-good-with-cbuilder-contest-results/)
https://blogs.embarcadero.com/building-good-with-cbuilder-contest-results/ https://youtube.com/embed/tNYx-wSfjVc
Wie Bluetooth-Technologie die Nutzung von Wasserressourcen weltweit verbessern kann. Die Programmierung mit C++ Builder 10.3 Community Edition war überraschenderweise sehr schneller als die Schildkröte von Android Studio und ihre ewigen Indizierungs-Albträume; Es ist also an der Zeit, diese IDE in diesem Projekt weiter zu nutzen und die Funktionen für mehrere Geräte zu nutzen.
Das Ziel: mehr Kontrolle über den Wasserverbrauch bei Bewässerungsproblemen, zuerst im Garten meiner Mutter, dann in den Stadtparks, dann auf dem Ackerland und dann bei allen Wasserverteilungsaktivitäten weltweit. Vielen Dank an den „Building Good with C++Builder“-Wettbewerb für diese Gelegenheit.
Das System wird ein Bluetooth-fähiges Gerät verwenden, um ein Ventil zur Bewässerung einer Pflanze zu steuern. Das Steuergerät kann ein Laptop/PC oder ein Smartphone (Android oder iOS) sein. Diese Geräte steuern über eine drahtlose Bluetooth-Verbindung ein Arduino UNO-Board, das mit einem HC-05-Bluetooth-Modul verbunden ist. so dass dieser das Magnetventil über ein Relais öffnen/schließen kann; entsprechend den folgenden Modi: 1. Basierend auf Sensoren (Luftfeuchtigkeit, Wassertankfüllstand und Regenintensität) entscheidet der Arduino, wann das Ventil geöffnet/geschlossen werden muss, um die Pflanze richtig zu bewässern. Die Sensorwerte werden mit Sollwerten verglichen, um Entscheidungen zu treffen. Modus 2. Testmodus, wir können das Ventil unabhängig von den Sensorwerten öffnen/schließen. Modus 3 verwendet Bewässerungspläne, dh zeitlich festgelegte Zeiträume, in denen das Ventil geöffnet ist.
Proteus 8.6 mit Arduino-Bibliotheken zur Simulation der Arduino-Ventilsteuerung und der angeschlossenen Sensoren (Feuchtigkeit, Wasserstand und Regen), Vorträge und Reaktion des Ventilsteuerungssystems (Schaltkreis und Firmware) auf Befehle der in C++ Builder programmierten Irrigation 3021-App.
In meinem speziellen Fall habe ich scrcpy verwendet, um mein Projekt (Irrigation 3021) in der Android-Version anzuzeigen. https://github.com/Genymobile/scrcpy
QUELLCODE AKTUALISIERT
In der Datei BTReadThread.cpp wurden folgende Änderungen vorgenommen:
.................................
sonst if(cmd==2) { dataFromArduino=Socket->ReceiveData();
if(dataFromArduino.Length>0)
{
StrReceived = TEncoding::ASCII->GetString(dataFromArduino);
/*************************************/
AllReceivedData+=StrReceived;
msg=AllReceivedData;
Synchronize(TabbedForm->WriteMemo);
if(AllReceivedData.Length()>12)
{
sensors=AllReceivedData;
Synchronize(TabbedForm->UpdateValueSensors);
AllReceivedData="";
Sleep(100);
}
#ifndef __ANDROID__
else
AllReceivedData="";
#endif
/*****************************************/
/*msg=StrReceived;
Synchronize(TabbedForm->WriteMemo);
if(msg.Length()>3)
{
sensors=StrReceived;
Synchronize(TabbedForm->UpdateValueSensors);
} */
}
Sleep(100);
}
.................................