连接GSM模块和nodemcu

时间:2017-01-31 15:49:39

标签: lua gsm esp8266

我写了这个代码来连接gsm模块,任何人都可以检查代码并给我一些命题吗?

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)

2 个答案:

答案 0 :(得分:0)

此代码甚至不会在NodeMCU上运行,因为标准Lua os.time()将失败,因为@echo off `C:\Windows\System32\RemoveDrive E: -L` 模块不可用。我建议你深入研究http://nodemcu.readthedocs.io/en/latest/en/lua-developer-faq/#how-is-nodemcu-lua-different-to-standard-lua

此外,即使它可用os也有1秒的分辨率。

  

返回的值是一个数字,其含义取决于您的系统。在POSIX,Windows和其他一些系统中,此数字计算自某个给定开始时间(“epoch”)以来的秒数。

因此,您的os.time()会延迟执行1000 。忙着等待这样做......不是最佳的。

您可能希望改为使用tmr module

答案 1 :(得分:0)

uart.alt(x);

0 - standard pins
1 - alternate the pins

您没有指定要用于通信的引脚,或者使用uart.alt(0);作为标准引脚