(原) 程小奔与网络

原创文章,请后转载,并注明出处。

程小奔(更具体说是小程)是含有Wifi模块的,也有IOT示例(通过wifi获取地区温度等)。

这里(http://docs.makeblock.com/codeyrocky/zh/python-api/third-party-api.html) 这讲了通过Python来完成网络请求。

有了网络,就象开了一扇天窗,世界突然就是世界了。

我们完全可以通过网络,让程小奔发挥实际的作用。

举个粟子:

当有人登陆后台是,程小奔发个声音。当有人发来微信消息时,程小奔发个叮咚。

当然还可以通过网络控制程小奔的移动、启停等。或者简单的作个字符显示器啥的。

程小奔实用起来了,你准备好了没?

看看示例代码


import codey
import urequests as requests
import time

# 此处需填入自己路由器的 ssid 和 密码
codey.wifi.start('wifi_ssid', 'password')
codey.led.show(0,0,0)
while True:
    if codey.wifi.is_connected():
        codey.led.show(0,0,255)
        res = requests.get(url='http://www.baidu.com/')
        print(res.text)
        time.sleep(3)
    else:
        codey.led.show(0,0,0)

这只是简单的获取了数据,下个例子讲了数据获取以后的处理


import codey
import urequests as requests
import time

# 此处需填入自己路由器的 ssid 和 密码
codey.wifi.start('wifi_ssid', 'password')
codey.led.show(0,0,0)
hour = minite = second = "00"
while True:
    if codey.wifi.is_connected():
        try:
            res = requests.get(url = 'http://www.time.ac.cn/timeflash.asp?user=flash').text
            hour_begin = res.find('<hour>') + len('<hour>')
            hour_end = res.find('</hour>')
            minite_begin = res.find('<minite>') + len('<minite>')
            minite_end = res.find('</minite>')
            second_begin = res.find('<second>') + len('<second>')
            second_end = res.find('</second>')
            if hour_begin > len('<hour>') and hour_end > hour_begin and \
               minite_begin > len('<minite>') and minite_end > minite_begin and \
               second_begin > len('<second>') and second_end > second_begin:

                if hour_end - hour_begin == 1:
                    hour = '0' + res[hour_begin:hour_end]
                elif hour_end - hour_begin == 2:
                    hour = res[hour_begin:hour_end]

                if minite_end - minite_begin == 1:
                    minite = '0' + res[minite_begin:minite_end]
                elif minite_end - minite_begin == 2:
                    minite = res[minite_begin:minite_end]

                if second_end - second_begin == 1:
                    second = '0' + res[second_begin:second_end]
                elif second_end - second_begin == 2:
                    second = res[second_begin:second_end]

                print(hour + ":" + minite + ":" + second)
                cur_time = hour + ':' + minite;
                codey.display.show(cur_time)
        except:
            print("get error data")
    else:
        codey.led.show(0,0,0)

只要会处理就够了,内部如何如何的就不用管了。

相关文章