Skip to content

Commit 32bf050

Browse files
author
Noyel Seth
committed
[update/fix] basic esp8266 AT command lib
1 parent daf3c4c commit 32bf050

File tree

1 file changed

+100
-50
lines changed

1 file changed

+100
-50
lines changed

esp8266.py

Lines changed: 100 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def _sendToESP8266(self, atCMD, delay=1):
8484
break
8585

8686
while self.__uartObj.any()>0:
87-
self.__rxData += self.__uartObj.read(1024)
87+
self.__rxData += self.__uartObj.read(UART_Rx_BUFFER_LENGTH)
8888

8989
#print(self.__rxData)
9090
if ESP8266_OK_STATUS in self.__rxData:
@@ -106,10 +106,14 @@ def startUP(self):
106106
True if communication success with the ESP8266
107107
False if unable to communication with the ESP8266
108108
"""
109-
if ESP8266_OK_STATUS in self._sendToESP8266("AT\r\n"):
110-
return True
109+
retData = self._sendToESP8266("AT\r\n")
110+
if(retData != None):
111+
if ESP8266_OK_STATUS in retData:
112+
return True
113+
else:
114+
return False
111115
else:
112-
return False
116+
False
113117

114118
def reStart(self):
115119
"""
@@ -119,13 +123,16 @@ def reStart(self):
119123
True if Reset successfully done with the ESP8266
120124
False if unable to reset the ESP8266
121125
"""
122-
if ESP8266_OK_STATUS in self._sendToESP8266("AT+RST\r\n"):
123-
time.sleep(5)
124-
#self.startUP()
125-
return self.startUP()
126+
retData = self._sendToESP8266("AT+RST\r\n")
127+
if(retData != None):
128+
if ESP8266_OK_STATUS in retData:
129+
time.sleep(5)
130+
#self.startUP()
131+
return self.startUP()
132+
else:
133+
return False
126134
else:
127-
return False
128-
135+
False
129136

130137

131138
def echoING(self, enable=False):
@@ -138,13 +145,21 @@ def echoING(self, enable=False):
138145
139146
"""
140147
if enable==False:
141-
if ESP8266_OK_STATUS in self._sendToESP8266("ATE0\r\n"):
142-
return True
148+
retData = self._sendToESP8266("ATE0\r\n")
149+
if(retData != None):
150+
if ESP8266_OK_STATUS in retData:
151+
return True
152+
else:
153+
return False
143154
else:
144155
return False
145156
else:
146-
if ESP8266_OK_STATUS in self._sendToESP8266("ATE1\r\n"):
147-
return True
157+
retData = self._sendToESP8266("ATE1\r\n")
158+
if(retData != None):
159+
if ESP8266_OK_STATUS in retData:
160+
return True
161+
else:
162+
return False
148163
else:
149164
return False
150165

@@ -156,9 +171,18 @@ def getVersion(self):
156171
Return:
157172
Version details on success else None
158173
"""
159-
retData = self._sendToESP8266("AT+GMR\r\n")
160-
if ESP8266_OK_STATUS in retData:
161-
return retData
174+
retData = self._sendToESP8266("AT+GMR\r\n")
175+
if(retData != None):
176+
if ESP8266_OK_STATUS in retData:
177+
#print(str(retData,"utf-8"))
178+
retData = str(retData).partition(r"OK")[0]
179+
#print(str(retData,"utf-8"))
180+
retData = retData.split(r"\r\n")
181+
retData[0] = retData[0].replace("b'","")
182+
retData=str(retData[0]+"\r\n"+retData[1]+"\r\n"+retData[2])
183+
return retData
184+
else:
185+
return None
162186
else:
163187
return None
164188

@@ -169,10 +193,14 @@ def reStore(self):
169193
True on ESP8266 restore succesfully
170194
False on failed to restore ESP8266
171195
"""
172-
if ESP8266_OK_STATUS in self._sendToESP8266("AT+RESTORE\r\n"):
173-
return True
196+
retData = self._sendToESP8266("AT+RESTORE\r\n")
197+
if(retData != None):
198+
if ESP8266_OK_STATUS in retData:
199+
return True
200+
else:
201+
return False
174202
else:
175-
return False
203+
return None
176204
"""
177205
def chcekSYSRAM(self):
178206
#retData = self._sendToESP8266("AT+SYSRAM?\r\n")
@@ -204,12 +232,15 @@ def getCurrentWiFiMode(self):
204232
None failed to detect the wifi's current pre-config mode
205233
"""
206234
retData = self._sendToESP8266("AT+CWMODE_CUR?\r\n")
207-
if "1" in retData:
208-
return "STA"
209-
elif "2" in retData:
210-
return "SoftAP"
211-
elif "3" in retData:
212-
return "SoftAP+STA"
235+
if(retData != None):
236+
if "1" in retData:
237+
return "STA"
238+
elif "2" in retData:
239+
return "SoftAP"
240+
elif "3" in retData:
241+
return "SoftAP+STA"
242+
else:
243+
return None
213244
else:
214245
return None
215246

@@ -228,8 +259,11 @@ def setCurrentWiFiMode(self, mode=3):
228259
"""
229260
txData="AT+CWMODE_CUR="+str(mode)+"\r\n"
230261
retData = self._sendToESP8266(txData)
231-
if ESP8266_OK_STATUS in retData:
232-
return True
262+
if(retData!=None):
263+
if ESP8266_OK_STATUS in retData:
264+
return True
265+
else:
266+
return False
233267
else:
234268
return False
235269

@@ -245,12 +279,15 @@ def getDefaultWiFiMode(self):
245279
246280
"""
247281
retData = self._sendToESP8266("AT+CWMODE_DEF?\r\n")
248-
if "1" in retData:
249-
return "STA"
250-
elif "2" in retData:
251-
return "SoftAP"
252-
elif "3" in retData:
253-
return "SoftAP+STA"
282+
if(retData!=None):
283+
if "1" in retData:
284+
return "STA"
285+
elif "2" in retData:
286+
return "SoftAP"
287+
elif "3" in retData:
288+
return "SoftAP+STA"
289+
else:
290+
return None
254291
else:
255292
return None
256293

@@ -268,8 +305,11 @@ def setDefaultWiFiMode(self, mode=3):
268305
"""
269306
txData="AT+CWMODE_DEF="+str(mode)+"\r\n"
270307
retData = self._sendToESP8266(txData)
271-
if ESP8266_OK_STATUS in retData:
272-
return True
308+
if(retData!=None):
309+
if ESP8266_OK_STATUS in retData:
310+
return True
311+
else:
312+
return False
273313
else:
274314
return False
275315

@@ -350,8 +390,12 @@ def disconnectWiFi(self):
350390
False on failed to disconnect the WiFi
351391
True on successfully disconnected
352392
"""
353-
if ESP8266_OK_STATUS in self._sendToESP8266("AT+CWQAP\r\n"):
354-
return True
393+
retData = self._sendToESP8266("AT+CWQAP\r\n")
394+
if(retData!=None):
395+
if ESP8266_OK_STATUS in retData:
396+
return True
397+
else:
398+
return False
355399
else:
356400
return False
357401

@@ -400,11 +444,14 @@ def doHttpGet(self,host,path,user_agent="RPi-Pico", port=80):
400444
#print(getHeader,len(getHeader))
401445
txData="AT+CIPSEND="+str(len(getHeader))+"\r\n"
402446
retData = self._sendToESP8266(txData)
403-
if ">" in retData:
404-
retData = self._sendToESP8266(getHeader, delay=2)
405-
self._sendToESP8266("AT+CIPCLOSE\r\n")
406-
retData=self.__httpResponse.parseHTTP(retData)
407-
return retData, self.__httpResponse.getHTTPResponse()
447+
if(retData != None):
448+
if ">" in retData:
449+
retData = self._sendToESP8266(getHeader, delay=2)
450+
self._sendToESP8266("AT+CIPCLOSE\r\n")
451+
retData=self.__httpResponse.parseHTTP(retData)
452+
return retData, self.__httpResponse.getHTTPResponse()
453+
else:
454+
return 0, None
408455
else:
409456
return 0, None
410457
else:
@@ -435,13 +482,16 @@ def doHttpPost(self,host,path,user_agent,content_type,content,port=80):
435482
#print(postHeader,len(postHeader))
436483
txData="AT+CIPSEND="+str(len(postHeader))+"\r\n"
437484
retData = self._sendToESP8266(txData)
438-
if ">" in retData:
439-
retData = self._sendToESP8266(postHeader, delay=2)
440-
#print(".......@@",retData)
441-
self._sendToESP8266("AT+CIPCLOSE\r\n")
442-
#print(self.__httpResponse)
443-
retData=self.__httpResponse.parseHTTP(retData)
444-
return retData, self.__httpResponse.getHTTPResponse()
485+
if(retData != None):
486+
if ">" in retData:
487+
retData = self._sendToESP8266(postHeader, delay=2)
488+
#print(".......@@",retData)
489+
self._sendToESP8266("AT+CIPCLOSE\r\n")
490+
#print(self.__httpResponse)
491+
retData=self.__httpResponse.parseHTTP(retData)
492+
return retData, self.__httpResponse.getHTTPResponse()
493+
else:
494+
return 0, None
445495
else:
446496
return 0, None
447497
else:

0 commit comments

Comments
 (0)