Пример сервера Telnet

Сегодня я установил NodeMCU на один модуль ESP8266.

Я сделал простой телнет-сервер (вход в точку доступа уже выполнен и подключен)

srv=net.createServer(net.TCP,7200)
srv:listen(23,function(conn)

    conn:on("receive", function(conn,telnetdata)
        print(telnetdata)

        conn:send("Got it\r\n")
    end)

    conn:on("sent",function(conn)

        print("[Sent]");
        --conn:close();
        --collectgarbage();
    end)

end)

Я могу подключиться к ESP8266 с помощью Putty и отправить статические данные обратно в Putty (conn:send("Got it\r\n")).

Что я хочу сделать, так это отправить данные в Putty из последовательного порта esp (UART). Я искал пример без успеха. Кстати, я использую ESPlorer для программирования ESP и отправки данных обратно в замазку.

Вместо использования conn:send("Got it\r\n") я хочу динамически вводить ответ. Я пробовал uart:on обратный вызов, но не совсем понял, как он работает.


person starstuff    schedule 08.06.2016    source источник


Ответы (2)


NodeMCU имеет официальный пример Telnet в репозитории. Тем не менее, этот также основан на WiFi / сокетах.

Если вы подключены к устройству через ESPlorer (т.е. последовательный/UART), вы не можете открыть другое последовательное соединение. Подробнее см. https://stackoverflow.com/a/36779799/131929.

person Marcel Stör    schedule 08.06.2016
comment
Я понимаю, что нужно использовать то же последовательное соединение, что и у esplorer, а как насчет использования Arduino для приема и отправки через последовательный порт? В основном мне нужен простой мост между ардуино и замазкой (телнет) - person starstuff; 08.06.2016

Марсель спасибо за ответ.

Опубликованная ссылка не совсем то, что мне нужно, но она предлагает хорошую информацию.

Наконец-то я придумал этот код, который работает как простой мост между замазкой и микроконтроллером (в данном случае arduino mega 2560)

socket = net.createServer(net.TCP,7200)
socket:listen(23,function(c)

    c:on("receive",function(c,l)
        uart.write(0, l)
    end)

    c:on("disconnection",function(c)
        -- not yet implemented
    end)

    uart.on("data", 0,
        function(data)
            c:send(data)
    end, 0)
end)
person starstuff    schedule 09.06.2016