Попытка отправить сообщения MQTT через приложение Laravel с помощью AWS IoT - PullRequest
0 голосов
/ 21 мая 2019

Я разработал веб-приложение с использованием Laravel (PHP) и сейчас пытаюсь связать его с устройством IoT (Rasberry Pi).

Идея такова: при нажатии кнопки приложение отправляет сообщение IQT на устройство IoT, чтобы начать запись данных с датчика и сохранить их на SD-карте.При повторном нажатии кнопки будет отправлено еще одно сообщение MQTT на устройство IoT, поэтому запись будет остановлена.

Должен сказать, что я только начинаю изучать, как использовать платформу IoT веб-служб Amazon, но ядостиг связи RasberryPi с моим компьютером с помощью одного из примеров Python SDK с использованием сценария Python на обоих устройствах.

Итак, можно сказать, у меня теперь есть сценарий Python, который прослушивает тему, установленную вRaspberry Pi.Я анализирую сообщение и затем выполняю следующие действия:

Теперь я пытаюсь сделать то же самое, но вызываю его из приложения Laravel.Итак, мой код выглядит так:

Кнопка HTML-код

<button type="button" id="start-button" class="btn btn-outline-success btn-lg" onclick="startRecording()"><i class="fas fa-play-circle"></i> Start recording</button>

Javascript

<script src="{{ asset('js/mqttws31.min.js') }}"></script>
<script>
function startRecording(){
        MQTTconnect();
    }

    var mqtt;
    var reconnectTimeout = 2000;
    var host = "xxxxxxxxx.iot.eu-west-1.amazonaws.com";
    var port = 443;

    function onConnect(){
        //Once a connection has been made, make a subscription and send a message.
        console.log("Connected");
        //mqtt.subscribe("VaultingTable1");
        message = new Paho.MQTT.Message("Hello World");
        message.destinationName = "myDevice1";
        mqtt.send(message);
    }

    function MQTTconnect(){
        console.log("connecting to "+ host + " " + port);
        mqtt =  new Paho.MQTT.Client(host, port, "myDevice1");
        var options ={
            timeout : 3,
            onSuccess : onConnect,
        };
        mqtt.connect(options); //connect
    }

В этомВ случае, если я получаю эту ошибку:

WebSocket connection to 'ws://xxxxxxxxx.iot.eu-west-1.amazonaws.com:443/mqtt' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

Может кто-нибудь помочь мне, как ее достичь?

Спасибо!

...