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,它的优势在哪?

ESP8266访问网站-urequest get方法

测试MM32F3277 MicroPython 的定时器功能

MicroPython ESP32 触摸传感器使用示例

TurnipBit—MicroPython开发板:妥妥拽拽零基础也能玩编程

MicroPython Remote Shell