2017-01-31 22 views
-1

Я написал этот код для интерфейса модуля gsm, может ли кто-нибудь проверить код и дать мне несколько предложений?Интерфейс GSM-модуля с nodemcu

hex1= '0x1A'; 
function delay_s(delay) 
delay = delay or 1 
local time_to = os.time() + delay 
while os.time() < time_to do end 
end 
uart.alt(1); 
uart.setup(0, 9600, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1) 
uart.write(0,"AT+IPR=9600\n") 
for j = 1, 10 do 
uart.write(0, "AT\n") 
end 
delay_s(1000) 
uart.write(0, "AT\n") 
delay_s(1000) 
uart.write(0, 'AT+CSCS="GSM"\n') 
delay_s(1000) 
uart.write(0, 'AT+CMGF=1\n') 
delay_s(1000) 
uart.write(0, 'AT+CMGS="+21654102832"\n') 
delay_s(1000) 
uart.write(0, " Salut tout le mond !!!\n") 
delay_s(1000) 
uart.write(0, hex1) 
delay_s(1000) 
+0

Пожалуйста, укажите модель модуля – cagdas

+0

я иметь sim900a GSM модуль HTTP: //www.electrodragon. com/product/sim900a-mini-dev-board/ –

+0

У вас есть ответы от модуля? Как хорошо. Пожалуйста, уточните – cagdas

ответ

0

Этот код не будет работать даже на NodeMCU потому что стандартный Lua os.time() потерпит неудачу, поскольку os модуль недоступен. Я предлагаю вам копать в http://nodemcu.readthedocs.io/en/latest/en/lua-developer-faq/#how-is-nodemcu-lua-different-to-standard-lua.

Кроме того, даже если бы оно было доступно os.time() имеет разрешение 1 секунду.

Возвращаемое значение - это число, значение которого зависит от вашей системы. В POSIX, Windows и некоторых других системах это число подсчитывает количество секунд с определенного времени начала («эпоха»).

Таким образом, ваш delay_s(1000) приведет к задержке выполнения на 1000 секунд. Выполнение этого с оживленным оживлением ... не оптимально.

Вместо этого вы, скорее всего, захотите использовать tmr module.

+0

Спасибо за ваш ответ. Я хотел бы связать модуль gsm с помощью nodemcu, но это не работает. должен ли я добавить программное обеспечение uarts для того, чтобы иметь возможность использовать другие NVIDcu GPIO? –

0
uart.alt(x); 

0 - standard pins 
1 - alternate the pins 

У Вас нет указать, какие контакты вы собираетесь использовать для связи, либо использовать uart.alt(0); для стандартных штифтов