1. Chú ý: Các bạn nên tham khảo Nội quy trước khi viết bài (click vào liên kết bên dưới).
    * Nội quy và Thông báo diễn đàn CNCProVN.com
    * Nếu bạn thấy hứng thú với bài viết. Hãy dùng chức năng Share to facebook để chia sẻ bài viết lên facebook.

          
Kết quả 1 đến 6 của 6

Chủ đề: ESP8266 - dùng Blynk tắt mở theo điều kiện thời gian (time schedule)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #6
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,681
    Cám ơn
    1,737
    Được cám ơn 5,330 lần
           ở 2,595 bài viết
    Nội dung code phía trên có một lỗi là khi nó đang vận hành mà mình vọc cái Time Input thì có một số trường hợp nó chạy sai.
    Mình đã viết lại đoãn code mới với cách giải kiểu khác. Kết quả đã sửa (fix) được lỗi trên.

    Ngày trong tuần nếu được chọn thì sẽ là ngày để mở.
    Thời gian cài đặt mở sẽ so sánh với thời gian thực. Thời gian tắt thì tùy, nếu thời gian tắt có giá trị bé hơn thời gian mở thì sẽ là trường hợp mở vào tối hôm nay và tắt vào sáng ngày mai. Tính năng này cũng đã được kiểm tra Ok.

    Lỗi cụ thể thế nào thì các bạn xem clip nhe



    Phần code thế này, copy & pate thay thế cho cả cái function BLYNK_WRITE(timeInput)TimeAuto()

    copy & pate TimeAuto()
    Mã:
    void TimeAuto()
    {
      unsigned int times = hour()*60 + minute();
      byte today = weekday(); //the weekday now (Sunday is day 1, Monday is day 2) 
    
      if (TimeStart == TimeStop)
      {
        timeOnOff = false;
      }
      else if (TimeStart < TimeStop)
        if (bitRead(dayStartSelect, today - 1))
          if ((TimeStart <=  times) && (times < TimeStop))                      timeOnOff = true;
          else                                                                  timeOnOff = false;    
        else                                                                    timeOnOff = false;
      else if (TimeStart > TimeStop)
      {
        if      ((TimeStop  <=  times) && (times < TimeStart))                  timeOnOff = false;
        else if ((TimeStart <=  times) && bitRead(dayStartSelect, today - 1))   timeOnOff = true;
        else if ((TimeStop  >   times) && bitRead(dayStopSelect,  today))       timeOnOff = true; 
      }
    }

    copy & pate BLYNK_WRITE(timeInput)
    Mã:
    BLYNK_WRITE(timeInput)
    {
      Serial.println("Time Input");
      TimeInputParam t(param); //blynk-library/src/WidgetTimeInput.h
    
      // Process start time
      if (t.hasStartTime())
      {
        TimeStart = t.getStartHour()*60 + t.getStartMinute();     
      }
      else TimeStart = 0;
    
      // Process stop time
    
      if (t.hasStopTime())
      {
        TimeStop = t.getStopHour()*60 + t.getStopMinute();
      }
      else TimeStop = 0;
      
    
      // Process Blynk TimeInput weekdays                   7. Sun, 1. Mon, 2. Tue, 3. Wed, 4. Thu, 5. Fri, 6. Sat
      // Process RTC weekday();                             1. Sun, 2. Mon, 3. Tue, 4. Wed, 5. Thu, 6. Fri, 7. Sat
      // Bit dayStartSelect                                 0. Sun, 1. Mon, 2. Tue, 3. Wed, 4. Thu, 5. Fri, 6. Sat
      // Bit dayStopSelect = dayStartSelec + 1     0. None, 1. Sun, 2. Mon, 3. Tue, 4. Wed, 5. Thu, 6. Fri, 7. Sat
      dayStartSelect = 0;
      dayStopSelect  = 0;
      for (int i = 1; i <= 7; i++)
        if (t.isWeekdaySelected(i))
          if (i == 7)
          {
            bitWrite(dayStartSelect, 0,   1);
            bitWrite(dayStopSelect,  1,   1);
          }
          else
          {
            bitWrite(dayStartSelect, i, 1);
            bitWrite(dayStopSelect,  i+1, 1);
          }
    }
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  2. Có 4 thành viên đã cám ơn CKD cho bài viết hữu ích này:


Các Chủ đề tương tự

  1. Trả lời: 6
    Bài viết cuối: 06-12-2019, 05:47:05 AM
  2. Trả lời: 1
    Bài viết cuối: 31-08-2017, 06:54:40 AM
  3. Mach3 - ToolPath On/Off - giảm thời gian Load file khi chạy 3D
    Bởi CKD trong diễn đàn Phần mềm CAD, CAM và các tiện ích
    Trả lời: 2
    Bài viết cuối: 07-08-2017, 09:54:17 PM
  4. Xin hỏi. tính toán thời gian gia công GCode
    Bởi diepckk25 trong diễn đàn Phần mềm CAD, CAM và các tiện ích
    Trả lời: 1
    Bài viết cuối: 09-06-2017, 10:31:58 PM
  5. Hỏi cách tính thời gian chạy G-code
    Bởi h-d trong diễn đàn Thắc mắc
    Trả lời: 6
    Bài viết cuối: 20-01-2016, 08:33:26 AM

Tag của Chủ đề này

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •