2017-01-31 11 views
-1

Ich schrieb diesen Code an die Schnittstelle GSM-Modul, kann jemand den Code überprüfen und mir einige Vorschläge?Schnittstelle GSM-Modul mit 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

Bitte geben Sie das Modul Modell – cagdas

+0

i das sim900a GSM-Modul http: //www.electrodragon. com/produkt/sim900a-mini-dev-board/ –

+0

Haben Sie anu Antworten von Modul? Wie OK. Bitte tey um genauer zu sein – cagdas

Antwort

0

Dieser Code wird auf NodeMCU nicht einmal laufen, weil der Standard-Lua os.time() da das os Modul nicht verfügbar ist fehl. Ich schlage vor, Sie graben in http://nodemcu.readthedocs.io/en/latest/en/lua-developer-faq/#how-is-nodemcu-lua-different-to-standard-lua.

Außerdem, auch wenn es verfügbar wäre os.time() hat 1 Sekunde Auflösung.

Der zurückgegebene Wert ist eine Zahl, deren Bedeutung von Ihrem System abhängt. In POSIX, Windows und einigen anderen Systemen zählt diese Zahl die Anzahl der Sekunden seit einer bestimmten Startzeit (der "Epoche").

daher Ihre delay_s(1000) verzögern würde Ausführung für 1000 Sekunden. Das mit "busy-waiting" zu tun ist ... nicht optimal.

Sie möchten wahrscheinlich stattdessen die tmr module verwenden.

+0

Danke für Ihre Antwort. Ich möchte das gsm-Modul mit dem nodemcu verbinden, aber das funktioniert nicht. soll ich Software-Uarts hinzufügen, um andere NOdemcu-GPIOs verwenden zu können? –

0
uart.alt(x); 

0 - standard pins 
1 - alternate the pins 

Sie geben havent welche Stifte Sie gonna verwenden für die Kommunikation sind, oder auch uart.alt(0); für Standardstifte verwenden