Управление Arduino с помощью локальной веб-страницы /node.js

Поэтому прежде всего, пожалуйста, потерпите меня, я впервые работаю с любым из этого. Я смог написать простой код на Python, который мог бы посылать информацию в arduino и управлять ее сервоприводом:

def main(inp):
    import serial
    ser = serial.Serial("/dev/cu.usbmodemfa131")  # open arduino serial port
    ser.write(inp)      # write a string
    ser.close()             # close port

и я смог создать файл html/javascript с ползунком номера, который я могу открыть с помощью node.js на моем компьютере. Моей первой мыслью было, возможно, вызывать этот скрипт на python каждый раз, когда пользователь изменял номер на слайдере, и, следовательно, соответственно перемещать сервопривод arduino, однако в javascript это казалось трудным. как я могу сделать так, чтобы пользовательские входы на веб-сайте записывали в последовательный порт arduino?

это HTML-файл, слайдер был сделан с использованием jquery.

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Slider Demo</title>
  <link rel="stylesheet" href="jquery-ui.min.css">
  <style>#slider { margin: 50px; }  </style>
  <script src="external/jquery/jquery.js"></script>
  <script src="jquery-ui.min.js"></script>  
</head>
<body>

<div class="center" id="slider"></div>
<center>
<div id="slider-result">90</div>   
</center>
<input type="hidden" id="hidden"/>
<script>

$( "#slider" ).slider({
                animate: true,
                range: "min",
                value: 90,
                min: 0,
                max: 180,
                step: 1,
})

                //this gets a live reading of the value and prints it on the page
                slide: function( event, ui ) {
                    $( "#slider-result" ).html( ui.value );
                },

                //this updates the hidden form field so we can submit the data using a form
                change: function(event, ui) { 
                $('#hidden').attr('value', ui.value);
                }

                });
</script>

</body>
</html>

1 ответ

Из браузера трудно получить доступ к ресурсам компьютера (например, доступ к принтеру), вы можете создать сервер, который прослушивает запросы, отправленные из браузера, и делает что-то на основе запроса, в вашем случае вы можете отправить POST XmlHttpRequest на "/action" с номером введите как параметр, используя jquery, и создайте маршрут на сервере узлов, прослушивая это действие (app.post('/action',function()..)), затем внутри функции вы получите параметры из запроса post и вызовете ваш скрипт Python (или использовать последовательный порт узла для управления Arduino) . Это общая идея, но я надеюсь, что может помочь вам.

Другие вопросы по тегам