本帖最后由 航仔 于 2022-7-30 22:17 编辑
❤【灵感来源】 前段时间在抖音上刷到百分百会在恶劣天气下出现在街头漫步的柴犬,感觉好笑又可爱。很幸运地在漂流活动中申请到了一块行空板,用Python编写了一个简单的宠物计步器,主要具有天气预报和计步两大功能,给自家的可爱狗狗用起来吧!
❤【功能简介】 1️⃣计步——通过测量加速度强度计算运动步数 2️⃣运动量分档提示——柴犬的不同运动状态,合理控制运动量 3️⃣天气预报——连接气象信息API,合理规划行程
❤【器材清单&环境准备】 电脑一台; typeC连接线一根; 行空板一块; Mind+软件Python模式。
❤【准备工作】
step1:行空板的连接与Mind+代码模式的选择
行空板连接Mind+教程:https://wiki.unihiker.com/mindplus_code
step2:WiFi连接
wifi连接教程:https://wiki.unihiker.com/webmenu#target_3
打开电脑浏览器,输入板子的ip10.1.2.3,即可打开wifi连接界面。
step3:不同状态提示图片的导入与显示
将所需图片保存至随意路径,将图片拖拽至列表。
图片可根据需要自行在网上下载,本项目用到的柴犬图片如下:
柴犬图片.zip
step4:通过连接天气API获取天气信息
提供天气查询API的网站:http://www.tianqiapi.com/index/doc
根据提示注册开发账号;
登录账号后,在控制台获取并记录appid与appsecret,后续会用到;
❤【完整代码】
- from pinpong.board import Board # 从pinpong.board包中导入Board模块
- from pinpong.extension.unihiker import * # 导入pinpong.extension.unihiker包中所有模块
- Board('UNIHIKER').begin() # 初始化,选择板型和端口号,不输入则进行自动识别
-
- import requests
- import json
-
- from unihiker import GUI # 导入unihiker库
- gui=GUI()
-
- tianqichaxun=requests.get('https://v0.yiketianqi.com/api?unescape=1&version=v61&cityid=101170201&appid=63582814&appsecret=Iuk987v1')
- tianqichaxun.encoding='utf-8'
- data = json.loads(tianqichaxun.text)
- print(data)
-
- run = 0 #添加变量用以计步
- bushu = gui.draw_digit(x=120,y=40,color="red",origin = "center",font_size=12) # draw_digit方法
- img = gui.draw_image(x=120,y=200,w=120, h=160,origin = "center", image='好久没遛人家的哀怨柴柴.jpg')
- city_wea= gui.draw_digit(x=52, y=60,color="green",font_size=12) # draw_digit方法
- nianyueri=gui.draw_text(x=10,y=75,color="blue",font_size=12)
-
- if data['wea']=='晴':
- img.config(image="天气不错想出去转的柴柴.jfif")
-
- else:
- img.config(image="天气不好拒绝出门的柴柴.jfif")
-
-
- while True:#永久循环
- strength = accelerometer.get_strength()#获取强度值
- bushu.config(text='柴柴今天已经走了%d步'%run)
- city_wea.config(text=data['city']+' '+data['wea']+' '+data['win'])
- nianyueri.config(text=data['date']+' '+data['week']+' '+data['update_time'])
- if strength > 1.5:#强度判别
- run += 1 #记录一次步数
- time.sleep(1)
-
- if 0<run <10000:
- img.config(image="运动量未过载开心到飞起的柴柴.jfif")
- if run>10000:
- img.config(image="运动过量怀疑人生的柴柴.jfif")
-
-
复制代码
❤【演示视频】
如有任何疑问,欢迎一起讨论!
|
|
|
|
|
|