Набор "Малина", урок 12 "Обратная связь". Помогите с решением задания.

Тема в разделе "Raspberry Pi", создана пользователем Maximaysik06, 27 июн 2019.

  1. Maximaysik06

    Maximaysik06 Нерд

    Помогите, пожалуйста, с решением задания к уроку 12:
    "Подключи к управлению с сайта все светодиоды платы GPIO Cloud."
    Копался в "feedbalk.html", но в Javascript я не силен.
    Помогите правильным кодом или объясните, как это делать.
    Спасибо!
     

    Вложения:

    • feedback.zip
      Размер файла:
      2,4 КБ
      Просмотров:
      243
  2. NikitOS

    NikitOS Король шутов Администратор

    Погуглить и разобраться самому?
     
  3. Maximaysik06

    Maximaysik06 Нерд

    Гуглил уже...
    Буду очень рад, если поможешь)
     
  4. NikitOS

    NikitOS Король шутов Администратор

    Ну, хотя б скан задания из буклета дайте...
    Я ж его даже не видел..
     
    Maximaysik06 нравится это.
  5. Maximaysik06

    Maximaysik06 Нерд

    К сожалению, сканера нет, сфотографировал с телефона. (Чтобы открыть фото нажмите правой кнопкой мыши по миниатюре и выберете "Открыть в новой вкладке").
    [​IMG]
     
  6. Alex115

    Alex115 Нуб

    Возможно мое сообщение устарело, но может кому-то пригодится.
    В первую очередь нужно понять, что приходит со страницы браузера, а затем разобрать эти данные. Данные выглядят так:

    Код (Python):
    {'id': 21, 'state': False}
     
    Получилась такая функция, которую нужно добавить в файл feedback.py:

    Код (Python):
    @socketio.on('toggle')
    def checklamps(receivedData):
        print (receivedData)
        if receivedData['state'] == True:
            GPIO.output(receivedData['id'], GPIO.HIGH)
        else:
            GPIO.output(receivedData['id'], GPIO.LOW)  
     
  7. a0639

    a0639 Нерд

    Alex115:
    После обработки toggle на сервере надо бы клиенту сообщить результат и на его основе перерисовать в соотв. с новым статусом.
    Т.е. в checklamps(receivedData) добавить какой-то socketio.emit? Так вроде?
    И кстати, у меня вообще socket не получилось поднять, пока не привел в соотв. библиотеки
    Код (Text):
    Flask-SocketIO==4.3.1
    python-engineio==3.13.2
    python-socketio==4.6.0
     
    стояли все более свежие и не рабочие
     
    Alex115 нравится это.
  8. Alex115

    Alex115 Нуб

    a0639:
    Конечно, Вы правы. Я как-то не подумал об этом. Когда выполнял задание, Raspberry Pi стояла перед глазами, и результат своих действий я видел. Другое дело, если сервер находится далеко, то безусловно нужна обратная связь. Надо будет вернуться к заданию и доработать его.