Я следую за sparkfun tutorial for connecting an arduino to electric imp. У меня есть только один arduino и imp, поэтому я пытаюсь получить все, что я набираю в серийном мониторе arduino, для отображения в узле imp с использованием server.show()
.Использование ElectricImp server.show() и Arduino
Я изменил один из функций в коде SparkFun, чтобы выглядеть следующим образом:
function pollUart()
{
imp.wakeup(0.00001, pollUart.bindenv(this)); // schedule the next poll in 10us
local byte = hardware.uart57.read(); // read the UART buffer
// This will return -1 if there is no data to be read.
while (byte != -1) // otherwise, we keep reading until there is no data to be read.
{
// server.log(format("%c", byte)); // send the character out to the server log. Optional, great for debugging
// impeeOutput.set(byte); // send the valid character out the impee's outputPort
server.show(byte)
byte = hardware.uart57.read(); // read from the UART buffer again (not sure if it's a valid character yet)
toggleTxLED(); // Toggle the TX LED
}
}
server.show(byte)
только отображение, казалось бы, случайных чисел. У меня есть идея, почему это так, я просто не знаю, как это исправить, потому что я не знаком с UART и белкой.
local byte = hardware.uart57.read();
читает символы ascii из arduino в байтовой форме (я думаю), и они не переводятся в их символы ascii до того, как я использую server.show(byte)
. Как это сделать в белке? Кроме того, я думаю, что опрос каждого 10us - неправильный путь. Я бы хотел только опросить, когда появится новая информация, но я также не знаю, как это сделать в белке. Может ли кто-нибудь указать мне пример, где это происходит?
Спасибо!
Вы могли подключить свой электрический усилитель к беспроводному маршрутизатору, поскольку я не смог настроить Electric Imp с помощью моего Wi-Fi-маршрутизатора. – shailendra