(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);
}
....................................