urequests micropython问题(多个POST请求到谷歌表格)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了urequests micropython问题(多个POST请求到谷歌表格)相关的知识,希望对你有一定的参考价值。
我想用esp8266和micropython直接向Google Forms发送数据(不使用IFTTT等外部服务)。我已经使用了IFTTT,但在这一点上对我来说没有用,我需要一个大于或等于100Hz的采样率,而你知道这超过了IFTTT的使用限制。我试着做了一个RAM缓冲区,但我得到了一个错误,说缓冲区超过了RAM的大小(4 MB),所以这就是为什么我试图直接做。
经过一段时间的尝试,我得到了它的一部分。我说 "部分 "是因为我必须在post-request之后做一个随机的get-request;我不知道为什么它能工作,但它能工作(这样我就能每隔一秒钟向Google Forms发送数据,或者更少)。我想问题是esp8266不能关闭与Google Forms的连接,当它试图做一个新的post-request时,它就会卡住,如果这是问题所在,我不知道如何用其他方法解决,有什么建议吗?完整的代码在这里。
ssid = 'my_network'
password = 'my_password'
import urequests
def do_connect():
import network
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
print('connecting to network...')
sta_if.active(True)
sta_if.connect(ssid, password)
while not sta_if.isconnected():
pass
print('network config:', sta_if.ifconfig())
def main():
do_connect()
print ("CONNECTED")
url = 'url_of_my_google_form'
form_data = 'entry.61639300=example' #have to change the entry
user_agent = {'Content-Type': 'application/x-www-form-urlencoded'}
while True:
response = urequests.post(url, data=form_data, headers=user_agent)
print ("DATA HAVE BEEN SENT")
response.close
print("TRYING TO SEND ANOTHER ONE...")
response = urequests.get("http://micropython.org/ks/test.html") #<------ RANDOM URL, I DON'T KNOW WHY THIS CODE WORKS CORRECTLY IN THIS WAY
print("RANDOM GET:")
print(response.text)
response.close
if __name__ == '__main__':
main()
谢谢你的时间,伙计们。另外,我以前也试过用这个代码,但它不工作。如果没有随机获取请求,在发布一两次后就会卡住。
while True:
response = urequests.post(url, data=form_data, headers=user_agent)
print ("DATA HAVE BEEN SENT")
response.close
print("TRYING TO SEND ANOTHER ONE...")
答案
不应该是 response.close()
(带括号)?
以上是关于urequests micropython问题(多个POST请求到谷歌表格)的主要内容,如果未能解决你的问题,请参考以下文章
世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?
测试MM32F3277 MicroPython 的定时器功能