Witam. Dużo ostatnio pisze a na forum mnie nie widać więc czas to zmienić
Kupiłem sobie NodeMCU i flashnąłem go od razu do LUA software i.. i tak leżał
No ale nadarzyła się okazja by sprawdzić co to potrafi ale ktoś to potrzebował znów z komendami AT..
O ile flasher do LUA jest jakby "intuicyjny" to powrót do komend AT taki znów "oczywisty" i prosty nie jest.
Chwilę mi to zajęło ale rozpracowałem to i potrafię flashować je w każdą stronę jakby ktoś potrzebował to mogę podpowiedzieć co i jak.
Chodzi mi o to by każdy nie musiał z osobna tracić czasu chyba że lubi to tak jak ja
Miło by jednak było kiedyś wpisać w wyszukiwarkę swoje hasło i otrzymać gotową podpowiedź zamiast ślęczeć nad notami i psuć wzrok
Tak więc zamieszczam gotowy kodzik który umieszcza dane na serwerze Thingspeak a jak działa można zobaczyć na poniższym filmie.
Kod programu na Xmege
'****************************************************************
'* UPDATING THINGSPEAK FIELD WITH ESP8266 AND XMEGA *
'* ESP8266 AT COMMANDS V.051 SDK 1.5.0 *
'* BARTek niveasoft(at)tlen.pl *
'****************************************************************
$regfile = "xm128a3udef.dat"
$crystal = 32000000 '32MHz
$hwstack = 80 'this is for my other tasks so
$swstack = 100 'you can modify values to your needs
$framesize = 100
Config Submode = New
Const Api_key = "ABCDEFGHIJKLMNOP" '' <<<<< YOUR API WRITE KEY
Const Debuging = 1
' ***************** SYSTEM CLOCK CONFIG **************************
' INTERNAL 32MHz NO PRESCALE
'
Config Osc = Disabled , 32mhzosc = Enabled , 32khzosc = Enabled
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
'
' ENABLING AUTOMATIC OSCILLATOR CALIBRATION
Osc_dfllctrl.0 = 1
Dfllrc32m_ctrl.0 = 1
'
'*****************************************************************
'************ CONFIGURATION FOR COM1 ON PORTC ********************
' ESP8266 ON COM1
Config Com1 = 115200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 'Tx-PC3 Rx-PC2
Open "COM1:" For Binary As #1
Config Serialin0 = Buffered , Size = 100 'for COM1
Config Input1 = Crlf , Echo = Crlf
'
Const Max_str_len = 150 : Dim Com1_str As String * Max_str_len
'*****************************************************************
#if Debuging = 1
'*********** CONFIGURATION FOR COM2 ON PORTC *********************
' COM2 IS FOR DEBUG SO SEPARATE CONFIG
Config Com2 = 115200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 'Tx-PC7 Rx-PC6
Open "COM2:" For Binary As #2
Config Serialin1 = Buffered , Size = 50 'for COM2
Config Input2 = Cr , Echo = Cr
'
Dim Com2_str As String * 50
'*****************************************************************
#endif
Dim Char As Byte , Mark As Byte , Count As Byte
Dim Cmd As String * 100 , Cmd_len As String * 15
Dim Field1 As String * 5 , Lenght As Byte
Dim State As Byte , Old_state As Byte , Mem_state As Byte
Const Startup = 0
Const Waiting = 1
Const Send_len = 2
Const Sending = 3
Led Alias Portf.0 : Config Led = Output
'*** SUB FOR USART HANDLING ***
Sub Get_reply
Com1_str = ""
Count = 0
Do
Char = Inkey(#1)
If Char > 0 Then
Select Case Char
Case 13 : If Com1_str <> "" Then Exit Do
Case 10 : If Com1_str <> "" Then Exit Do
Case Else
Com1_str = Com1_str + Chr(char)
End Select
Incr Count
If Count >= Max_str_len Then
Com1_str = ""
Count = 0
End If
End If
Loop
If Com1_str <> "" Then Mark = 1
End Sub
'*** SUB FOR DEBUG ON COM2 ***
Sub Show_state
Local St_str As String * 10
Select Case State
Case 0 : St_str = "Startup"
Case 1 : St_str = "Waiting"
Case 2 : St_str = "Send_len"
Case 3 : St_str = "Sending"
End Select
Old_state = State
Print #2 , "Now State=" ; St_str
End Sub
'*** SUB FOR ESP8266 ***
Sub Esp8266
Select Case State
Case Startup
If Mark = 1 Then
Mark = 0
Select Case Com1_str
Case "WIFI GOT IP"
'AT+CIPSTART="TCP","184.106.153.149",80
Cmd = "AT+CIPSTART={034}TCP{034},{034}184.106.153.149{034},80"
Print #1 , Cmd
Field1 = Str(rnd(100)) ' <<<<<< random value for Testing
#if Debuging = 1
Print #2 , "Field value=" ; Field1
#endif
Cmd = "GET https://api.thingspeak.com/update?api_key="
Cmd = Cmd + Api_key
Cmd = Cmd + "&field1="
Cmd = Cmd + Field1
Cmd = Cmd + "{010}{010}"
Mem_state = State 'memorize that we starting
State = Waiting
Case Else
#if Debuging = 1
Print #2 , Com1_str
#endif
End Select
End If
Case Waiting ' if we waiting for answear
If Mark = 1 Then
Mark = 0
Select Case Com1_str
'Case "CONNECT"
Case "OK" ' if we see OK
Select Case Mem_state
Case Startup 'previous was Startup so this is first "OK"
Mem_state = Send_len
Lenght = Len(cmd) : Cmd_len = Str(lenght)
Cmd_len = "AT+CIPSEND=" + Cmd_len
Print #1 , Cmd_len
Case Send_len 'second "OK" so we send Len of data we want send
Print #1 , Cmd
State = Sending
Mem_state = Sending 'memorize that we send data to server
' ( for Error handling )
End Select
#if Debuging = 1
Print #2 , Com1_str
#endif
Case "ERROR"
#if Debuging = 1
Print #2 , Com1_str
#endif
State = Startup
Case "CLOSED"
#if Debuging = 1
Print #2 , Com1_str
#endif
State = Startup
Case Else
#if Debuging = 1
Print #2 , Com1_str
#endif
End Select
End If
Case Sending
If Mark = 1 Then
Mark = 0
Select Case Com1_str
Case "SEND OK"
State = Startup
End Select
#if Debuging = 1
Print #2 , Com1_str
#endif
End If
End Select
End Sub
Enable Interrupts
Do
Call Esp8266
#if Debuging = 1
If Old_state <> State Then Call Show_state
#endif
If Ischarwaiting(#1) > 0 Then Call Get_reply
Loop
End
Pozdrawiam
Obsluga Thingspeak przez ESP8266 i komendy AT
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Obsluga Thingspeak przez ESP8266 i komendy AT
Możesz podpowiedzieć w jaki sposób wrócić do komend AT?niveasoft pisze:O ile flasher do LUA jest jakby "intuicyjny" to powrót do komend AT taki znów "oczywisty" i prosty nie jest.
Mam ESP-12e z firmware NodeMCU, ale nie wiem co teraz zrobić aby móc używać komend AT.
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Obsluga Thingspeak przez ESP8266 i komendy AT
Szczerze mówiąc to już słabo pamiętam, ale jak uruchomiłem ten program do flashowania to pamiętał ostatnie ustawienia i adresy dla poszczególnych plików.
Na szczęście, bo nie chciałoby mi się tego teraz szukać.
Musisz zwrócić uwagę na nazwy plików i do nich po prawej wpisać poprawne adresy.
Kolejność plików nie jest chyba ważna. Ważne by po prawej stronie danego pliku pasował adres pod którym będzie umieszczony w ESP.
Flasher waży ponad 20MB więc go tu nie będę uploadował.
Pliki znalazłem na stronie Esspresiv i nazywają się AT_0.51_on_ESP8266_NONOS_SDK_V1.5.0 może są już nowsze.
Na szczęście, bo nie chciałoby mi się tego teraz szukać.
Musisz zwrócić uwagę na nazwy plików i do nich po prawej wpisać poprawne adresy.
Kolejność plików nie jest chyba ważna. Ważne by po prawej stronie danego pliku pasował adres pod którym będzie umieszczony w ESP.
Flasher waży ponad 20MB więc go tu nie będę uploadował.
Pliki znalazłem na stronie Esspresiv i nazywają się AT_0.51_on_ESP8266_NONOS_SDK_V1.5.0 może są już nowsze.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Obsluga Thingspeak przez ESP8266 i komendy AT
Śliczne dzięki za pomoc
Trochę mi nie szło z tymi komendami AT i rozwiązałem problem (raczej obszedłem problem) trochę inaczej. AVR przesyła "Print" do ESP (LUA) a ESP sortuje dane i posyła dalej
Trochę mi nie szło z tymi komendami AT i rozwiązałem problem (raczej obszedłem problem) trochę inaczej. AVR przesyła "Print" do ESP (LUA) a ESP sortuje dane i posyła dalej