(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

蓝牙技术如何改善全球水资源的利用。使用 C++ Builder 10.3 社区版进行编程令人惊讶地比 Android Studio 的乌龟及其永恒的索引噩梦快得多;因此,是时候在这个项目中继续使用这个 IDE,使用多设备功能了。
我们的目标是更好地控制灌溉问题中的用水,首先是我妈妈的花园,然后是城市公园,然后是农田,然后是世界各地的任何配水活动。感谢 Building Good with C++Builder 竞赛提供了这个机会。
该系统将使用具有蓝牙功能的设备来控制阀门来灌溉植物。控制设备可以是笔记本电脑/个人电脑或智能手机(Android 或 iOS)。这些设备通过蓝牙无线链接控制连接到 HC-05 蓝牙模块的 Arduino UNO 板;所以最后可以通过继电器来打开/关闭电磁阀;根据以下模式: 1. 根据传感器(湿度、水箱水位和降雨强度),Arduino 将决定何时打开/关闭阀门以正确给植物浇水。传感器值将与设定值进行比较以做出决定。模式2.测试模式,无论传感器值如何,我们都可以打开/关闭阀门。模式3,使用灌溉计划,即阀门打开的时间定义周期。











Proteus 8.6 带有 Arduino 库,用于模拟 Arduino 阀门控制和附加传感器(湿度、水位和降雨)以及阀门控制系统(电路和固件)对 C++ Builder 中编程的 Irrigation 3021 应用程序命令的响应。


在我的特定情况下,我使用 scrcpy 查看我的项目 (Irrigation 3021) 的 Android 版本。 https://github.com/Genymobile/scrcpy


源代码已更新
在文件 BTReadThread.cpp 中,进行了以下更改:
................................................
否则 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);
}
......................................
