Я делаю контрольный проект с функцией планирования.Я использую rasp-pi 3 (устройство) и использую php и sql для отключения электрических нагрузок.Я создал php-страницу с именем script.php, которая всегда обновляется каждые 10 секунд.
внутри этой php-страницы имеет функцию:
function weekdaychek($startingTime, $endingTime, $pinNumber, $idOfroom){
$date_now = new DateTime();
$date1 = new DateTime($startingTime);
$date2 = new DateTime($endingTime);
//SET GPIO INTO OUTPUT
system("gpio -g mode ".$pinNumber." out");
if ($date_now > $date1){
$dat1 = true;
} else{
$dat1 = false;
}
if ($date_now < $date1) {
$dat2 = true;
} else{
$dat2 = false;
}
if ($dat1 == true && $dat2 == true) {
//SET GPIO INTO HIGH STATE OR ON
system("gpio -g write ".$pinNumber." 1");
life($idOfroom);
} else {
//SET GPIO INTO LOW STATE OR OFF
system("gpio -g write ".$pinNumber." 0");
dead($idOfroom);
}
}
Проблема в том, что каждый обновляет лампочку(Пример электрической нагрузки) будет мигать, это потому, что php-скрипты загрузили все данные из базы данных.Мигание работает только тогда, когда в одном выводе есть 2 или более графиков.Это работает нормально, если есть один график для конкретного пина rasp-pi.
например, LIGHT
Номер контакта: 2
Время по расписанию:
2 расписания в выводе2
Первый:
Время начала: 2: 30
Время окончания: 3:00
Секунда:
Время начала: 1: 00;
Время окончания: 1: 30;
Предположим, что время 2:40, так как мой запрос DESCENDING, первыми данными, которые будут проверяться в операторе if else, является First schedule.Поскольку сейчас 2:40, мы ожидаем, что расписание First теперь выполняется (ON).
При обновлении страницы данные из базы данных будут загружены.Включенное расписание First будет первым, затем расписание Second последним.Поскольку расписание First появляется первым, оно включает свет и, наконец, выключает свет, возникающий в результате эффекта мерцания при каждом обновлении.
Может кто-нибудь найти способ решить эту проблему ??Я с трудом решаю эту проблему уже 3 недели.Это съедает мое время и есть много других вещей для изучения.
Кстати, это мой запрос:
$queryscripts = mysqli_query($link,
"SELECT * FROM schedule
JOIN rooms
ON schedule.Rooms_idRooms = rooms.idRooms
ORDER BY schedule.startSched DESC")
or die("Please Try again later!");