(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
Как технология Bluetooth может улучшить использование водных ресурсов во всем мире. Программирование с использованием C++ Builder 10.3 Community Edition оказалось на удивление намного быстрее, чем черепаха Android Studio и ее вечные кошмары индексации; Итак, пришло время двигаться вперед, используя эту IDE, в этом проекте, используя функции работы с несколькими устройствами.
Цель - больший контроль над использованием воды в вопросах орошения, сначала в саду моей мамы, затем в городских парках, затем на сельскохозяйственных угодьях, а затем в любой деятельности по распределению воды по всему миру. Благодарим конкурс Building Good with C++Builder за предоставленную возможность.
Система будет использовать устройство с поддержкой Bluetooth для управления клапаном для орошения растения. Управляющим устройством может быть ноутбук/ПК или смартфон (Android или iOS). Эти устройства управляют через беспроводную связь Bluetooth платой Arduino UNO, подключенной к модулю Bluetooth HC-05; поэтому последний может открывать/закрывать электромагнитный клапан с помощью реле; в следующих режимах: 1. На основании датчиков (влажности, уровня воды в резервуаре и интенсивности дождя) Arduino решит, когда открывать/закрывать клапан для правильного полива растения. Для принятия решений значения датчиков будут сравниваться с заданными значениями. Режим 2. Тестовый режим: мы можем открывать/закрывать клапан независимо от показаний датчиков. Режим 3, использующий графики орошения, т.е. определенные во времени периоды, когда клапан будет открыт.
Proteus 8.6 с библиотеками Arduino для моделирования управления клапаном Arduino и подключенными датчиками (влажности, уровня воды и дождя), лекциями и реакцией системы управления клапаном (схема и прошивка) на команды из приложения Irrigation 3021, запрограммированного в C++ Builder.
В моем конкретном случае я использовал 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);
}
..................................