【玄铁杯第三届RISC-V应用创新大赛】LicheePi"泄洪道安全警告控制系统"之三:抛砖引玉
[复制链接]
《三十六计》有云“抛砖引玉”,解辞云:类以诱之。
上回说到楼主在LicheePi 4A上试了几轮Yolo5的模型效果之后,开始琢磨如何进行控制。LicheePi 4A板上有2个千兆以太网接口,还有已经安装好的2.4G WiFi 天线,所以最容易的方式就是通过无线或有线接入以太网。那么对应的,其他的设备也要接入这个以太网。
楼主看了看手边的各种板子,刚好有年初时入手的树莓派PicoW,这个Pico后面的W就是增加了无线联网的功能,于是决定用这个:
picoW是支持连wifi的,代码很简单,几行就行:
-
- import network
- from machine import Pin
- import utime
- import time
-
-
- ssid = "FAST_538C80"
- key = "12345678"
-
-
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True )
- wlan.connect(ssid, key)
- while wlan.status() != 3:
- time.sleep(1)
- print(wlan.ifconfig())
连接WiFi后就可以用urequests向服务器发http的get请求,获取状态了:
- import urequests
-
- def isEnvSafe():
-
- r = urequests.get("http://172.16.3.41:8000/")
- print(r.status_code)
- print(r.text)
-
- r.close()
- return r.text=="0"
差点忘了提,在LicheePi 4A上要用http.server来建立服务:
-
- from http.server import BaseHTTPRequestHandler, HTTPServer
- import time
-
-
-
- class WebRequestHandler(BaseHTTPRequestHandler):
- def do_GET(self):
-
-
- self.send_response(200)
- self.end_headers()
- self.wfile.write(b'<hr/>')
-
-
-
-
-
-
- server_address = ('', 8000)
- httpd = HTTPServer(server_address, FileUploadHandler)
- print('Server running on port 8000...')
- httpd.serve_forever()
测试很顺利,如果不把忘了WiFi密码只好重设考虑在内的话。这是荔枝派的服务端,注意要看一下IP:
用Thonny烧写和运行picoW是这样的:
这个方案有个应用上的麻烦,就是必须要知道基于LicheePi 4A的智能终端的IP地址,而且如果有多个智能终端,PicoW控制器就要挨个问一次。想象一下Pico的固件开发人员听到不知道会有几个新监控头的表情,这方案得改啊!
这正是:
类以诱之,返回有值,终端不定,奈何如之?
欲知后事如何,且听下回分解。
|