631|0

183

帖子

12

TA的资源

一粒金砂(高级)

楼主
 

【玄铁杯第三届RISC-V应用创新大赛】LicheePi"泄洪道安全警告控制系统"之三:抛砖引玉 [复制链接]

 
武孙子曰:我问你爱我有多深,返回值代表你的心

 

《三十六计》有云“抛砖引玉”,解辞云:类以诱之。
上回说到楼主在LicheePi 4A上试了几轮Yolo5的模型效果之后,开始琢磨如何进行控制。LicheePi 4A板上有2个千兆以太网接口,还有已经安装好的2.4G WiFi 天线,所以最容易的方式就是通过无线或有线接入以太网。那么对应的,其他的设备也要接入这个以太网。
楼主看了看手边的各种板子,刚好有年初时入手的树莓派PicoW,这个Pico后面的W就是增加了无线联网的功能,于是决定用这个:

picoW是支持连wifi的,代码很简单,几行就行:

婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒妯哄婵犫偓娓氣偓濮婅櫣绮欑捄銊ь唶闂佸憡鑹鹃鍥╂閻愬搫绠i柨鏃傛櫕閸橀亶姊洪棃娴ㄥ綊宕曢柆宥呯劦妞ゆ巻鍋撴繛灏栤偓鎰佸殨濠电姵纰嶉弲鎻掝熆鐠虹尨鍔熸い鏃€甯¢幃妤冩喆閸曨剛顦ュ┑鐐茬湴閸婃繂鐣烽鈷氭椽顢旈崨顏呭闂備礁鎲$换鍌溾偓姘卞厴瀹曟洟骞囬悧鍫㈠幗濠德板€撶欢鈥斥枔濮椻偓閺岀喖鐛崹顔句患闂佸疇妫勯ˇ鍨叏閳ь剟鏌eΟ娲诲晱闁告艾鎳樺缁樻媴閾忕懓绗¢梺鍛婃⒐濞茬喖銆佸棰濇晣闁绘劏鏅滈悘渚€姊洪棃娑氬妞わ缚鍗抽崺娑㈠箣閻愮數顔曢梺鐓庛偢椤ゅ倿宕靛▎鎰垫闁绘劖鎯屽▓婊堟煛瀹€鈧崰鏍箖閻戣姤鍋嬮柛顐g箖閻忓酣鏌f惔銏╁晱闁哥姵鐗犻垾锕傛倻閽樺鐣洪梺闈涚箞閸婃牠骞嗛悙鐑樼厱闁挎棁顕у璺ㄧ磼鏉堛劎鍙€婵﹦绮粭鐔煎焵椤掆偓宀h儻顦撮柟骞垮灲楠炴帡骞橀弶鎴濅紟闂備焦鐪归崹褰掑箟閿熺姴纾归柛顐f礃閻撴洘銇勯幇顔夹㈤柛鏃€绮撻弻宥夋煥鐎n亞浼岄梺鍝勬湰缁嬫垿鍩為幋锕€骞㈡俊銈咃梗閹絾淇婇悙顏勨偓鏇犳崲閸儱纾块柣銏⑶归拑鐔哥箾閹寸偟鎳勯柛搴e枛閺屻劌鈹戦崱姗嗘!濠殿噯绲介悧鎾诲箖濡も偓閳绘捇宕归鐣屼邯婵$偑鍊ら崣鍐绩鏉堛劎鈹嶅┑鐘叉搐缁犵懓霉閿濆懏鎲搁柛妯绘倐濮婅櫣绮欓幐搴㈡嫳闂佹椿鍙庨崰姘舵嚍鏉堛劎顩烽悗锝庡亐閹风粯绻涙潏鍓у埌闁硅櫕鐟ㄩ妵鎰板箳閹存繄褰夋俊鐐€栫敮鎺楀磹婵犳碍鍎楁繛鍡樻尰閻撴瑩寮堕崼鐔峰姢闁伙附绮撻弻鈩冩媴缁嬪簱鍋撻崸妤€钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�
  • # 硬件库
  • import network
  • from machine import Pin
  • import utime
  • import time
  • # 常数定义
  • ssid = "FAST_538C80"
  • key = "12345678"
  • # 连接wifi
  • 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请求,获取状态了:

婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒妯哄婵犫偓娓氣偓濮婅櫣绮欑捄銊ь唶闂佸憡鑹鹃鍥╂閻愬搫绠i柨鏃傛櫕閸橀亶姊洪棃娴ㄥ綊宕曢柆宥呯劦妞ゆ巻鍋撴繛灏栤偓鎰佸殨濠电姵纰嶉弲鎻掝熆鐠虹尨鍔熸い鏃€甯¢幃妤冩喆閸曨剛顦ュ┑鐐茬湴閸婃繂鐣烽鈷氭椽顢旈崨顏呭闂備礁鎲$换鍌溾偓姘卞厴瀹曟洟骞囬悧鍫㈠幗濠德板€撶欢鈥斥枔濮椻偓閺岀喖鐛崹顔句患闂佸疇妫勯ˇ鍨叏閳ь剟鏌eΟ娲诲晱闁告艾鎳樺缁樻媴閾忕懓绗¢梺鍛婃⒐濞茬喖銆佸棰濇晣闁绘劏鏅滈悘渚€姊洪棃娑氬妞わ缚鍗抽崺娑㈠箣閻愮數顔曢梺鐓庛偢椤ゅ倿宕靛▎鎰垫闁绘劖鎯屽▓婊堟煛瀹€鈧崰鏍箖閻戣姤鍋嬮柛顐g箖閻忓酣鏌f惔銏╁晱闁哥姵鐗犻垾锕傛倻閽樺鐣洪梺闈涚箞閸婃牠骞嗛悙鐑樼厱闁挎棁顕у璺ㄧ磼鏉堛劎鍙€婵﹦绮粭鐔煎焵椤掆偓宀h儻顦撮柟骞垮灲楠炴帡骞橀弶鎴濅紟闂備焦鐪归崹褰掑箟閿熺姴纾归柛顐f礃閻撴洘銇勯幇顔夹㈤柛鏃€绮撻弻宥夋煥鐎n亞浼岄梺鍝勬湰缁嬫垿鍩為幋锕€骞㈡俊銈咃梗閹絾淇婇悙顏勨偓鏇犳崲閸儱纾块柣銏⑶归拑鐔哥箾閹寸偟鎳勯柛搴e枛閺屻劌鈹戦崱姗嗘!濠殿噯绲介悧鎾诲箖濡も偓閳绘捇宕归鐣屼邯婵$偑鍊ら崣鍐绩鏉堛劎鈹嶅┑鐘叉搐缁犵懓霉閿濆懏鎲搁柛妯绘倐濮婅櫣绮欓幐搴㈡嫳闂佹椿鍙庨崰姘舵嚍鏉堛劎顩烽悗锝庡亐閹风粯绻涙潏鍓у埌闁硅櫕鐟ㄩ妵鎰板箳閹存繄褰夋俊鐐€栫敮鎺楀磹婵犳碍鍎楁繛鍡樻尰閻撴瑩寮堕崼鐔峰姢闁伙附绮撻弻鈩冩媴缁嬪簱鍋撻崸妤€钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�
  • import urequests
  • # 查询状态
  • def isEnvSafe():
  • #url 查询
  • r = urequests.get("http://172.16.3.41:8000/")
  • print(r.status_code)
  • print(r.text)
  • #print(r.json)
  • r.close()
  • return r.text=="0"

差点忘了提,在LicheePi 4A上要用http.server来建立服务:

婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒妯哄婵犫偓娓氣偓濮婅櫣绮欑捄銊ь唶闂佸憡鑹鹃鍥╂閻愬搫绠i柨鏃傛櫕閸橀亶姊洪棃娴ㄥ綊宕曢柆宥呯劦妞ゆ巻鍋撴繛灏栤偓鎰佸殨濠电姵纰嶉弲鎻掝熆鐠虹尨鍔熸い鏃€甯¢幃妤冩喆閸曨剛顦ュ┑鐐茬湴閸婃繂鐣烽鈷氭椽顢旈崨顏呭闂備礁鎲$换鍌溾偓姘卞厴瀹曟洟骞囬悧鍫㈠幗濠德板€撶欢鈥斥枔濮椻偓閺岀喖鐛崹顔句患闂佸疇妫勯ˇ鍨叏閳ь剟鏌eΟ娲诲晱闁告艾鎳樺缁樻媴閾忕懓绗¢梺鍛婃⒐濞茬喖銆佸棰濇晣闁绘劏鏅滈悘渚€姊洪棃娑氬妞わ缚鍗抽崺娑㈠箣閻愮數顔曢梺鐓庛偢椤ゅ倿宕靛▎鎰垫闁绘劖鎯屽▓婊堟煛瀹€鈧崰鏍箖閻戣姤鍋嬮柛顐g箖閻忓酣鏌f惔銏╁晱闁哥姵鐗犻垾锕傛倻閽樺鐣洪梺闈涚箞閸婃牠骞嗛悙鐑樼厱闁挎棁顕у璺ㄧ磼鏉堛劎鍙€婵﹦绮粭鐔煎焵椤掆偓宀h儻顦撮柟骞垮灲楠炴帡骞橀弶鎴濅紟闂備焦鐪归崹褰掑箟閿熺姴纾归柛顐f礃閻撴洘銇勯幇顔夹㈤柛鏃€绮撻弻宥夋煥鐎n亞浼岄梺鍝勬湰缁嬫垿鍩為幋锕€骞㈡俊銈咃梗閹絾淇婇悙顏勨偓鏇犳崲閸儱纾块柣銏⑶归拑鐔哥箾閹寸偟鎳勯柛搴e枛閺屻劌鈹戦崱姗嗘!濠殿噯绲介悧鎾诲箖濡も偓閳绘捇宕归鐣屼邯婵$偑鍊ら崣鍐绩鏉堛劎鈹嶅┑鐘叉搐缁犵懓霉閿濆懏鎲搁柛妯绘倐濮婅櫣绮欓幐搴㈡嫳闂佹椿鍙庨崰姘舵嚍鏉堛劎顩烽悗锝庡亐閹风粯绻涙潏鍓у埌闁硅櫕鐟ㄩ妵鎰板箳閹存繄褰夋俊鐐€栫敮鎺楀磹婵犳碍鍎楁繛鍡樻尰閻撴瑩寮堕崼鐔峰姢闁伙附绮撻弻鈩冩媴缁嬪簱鍋撻崸妤€钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�
  • #-*- coding: UTF-8 -*-
  • from http.server import BaseHTTPRequestHandler, HTTPServer
  • import time
  • # 创建自定义的请求处理类
  • class WebRequestHandler(BaseHTTPRequestHandler):
  • def do_GET(self):
  • #start_time = time.time()
  • #content_length = int(self.headers['Content-Length'])
  • self.send_response(200)
  • self.end_headers()
  • self.wfile.write(b'<hr/>')
  • #end_time = time.time()
  • #time_elapsed_ms = int((end_time - start_time) * 1000)
  • #print(f"Update in {time_elapsed_ms} ms")
  • # 启动服务器
  • 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的固件开发人员听到不知道会有几个新监控头的表情,这方案得改啊!

 

这正是:
类以诱之,返回有值,终端不定,奈何如之?
欲知后事如何,且听下回分解。

 

 

 

 

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表