处理PHP,SQL和RaspPi(计划时间问题)IoT项目

时间:2019-02-22 13:57:53

标签: php sql raspberry-pi3 iot

我正在制作一个具有计划功能的控制项目。我正在使用rasp-pi 3(device)并使用php和sql来关闭电气负载。我创建了一个名为script.php的php页面,该页面始终每10秒刷新一次。

在该php页面中,具有一个功能:

<app-child (element)="receiveContent($event)"></app-child>

问题在于每次刷新灯泡(示例电气负载)都会闪烁,这是因为php脚本从数据库中加载了所有数据。眨眼功能仅在同一引脚上有2个或更多时间表时才有效。如果为rasp-pi的特定管脚制定了一个时间表,则该方法可以正常工作。

例如 轻

插针编号: 2

计划时间:

第2针处有2个时间表

第一

开始时间: 2:30

结束时间: 3:00

第二:

开始时间: 1:00;

结束时间: 1:30;

假设时间为2:40, 由于我的查询是降序 First 时间表是要检查if else语句的第一个数据。由于现在是2:40,我们希望 First 日程现在正在执行(ON)。

刷新页面时,将从数据库中加载数据。 第一个计划是开的,将是第一个,然后第二个计划将排在最后。由于 First 时间表排在最前面,因此每次刷新都会打开闪烁,最后关闭闪烁效果导致的灯光。

谁能找到解决此问题的方法?我现在很难解决这个问题了三个星期。它占用了我的时间,还需要学习很多其他东西。

这就是我的查询方式:

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

0 个答案:

没有答案