0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Raspberry Pi和SensorMedal制作IoT跳绳设备 第四部分:在设备上安装显示器以增加动力

王银喜 来源:DevicePlus 作者:DevicePlus 2023-03-23 15:18 次阅读

第一部分:用跳绳测试仪解决运动不足问题!
第二部分:用SensorMedal检测跳跃次数并在显示器上显示
第三部分:连接Google Drive,保存并查看跳绳结果

大家好,我是吉田!

本文是制作一款用来解决运动不足问题的跳绳设备项目连载的最后一篇。我们已经成功实现了跳跃次数计数及其数据保存,在这部分中,我们将为这台设备安装一个显示器,让它实现能够激发您动力的有趣显示,以便您可持之以恒地坚持运动。

pYYBAGPyzHGALBgoAAJ3btmzOFY183.jpg

poYBAGPyzHOAODPJAAHJz_8RpOw351.jpg

本部分所需部件

跳绳

poYBAGPyzZSAa-AYAAB1zwaR4_s341.jpg

ROHM SensorMedal(SensorMedal-EVK-002)

pYYBAGPyzZaAa4Y0AACN-y6Q7Io389.jpg

Raspberry Pi zero(Raspberry Pi Zero W)

pYYBAGPyzZmACcDcAACssHa76rI331.jpg

FOUR LETTER LED PHAT

pYYBAGPyzZuARf7oAACS5896Ozg928.jpg

Raspberry Pi4

poYBAGPzDMaABfRjAACk1B9oc7g469.jpg

7英寸触控显示器

pYYBAGPzDMeAVPrJAAB72giq4q0623.jpg

本部分的流程

Raspberry Pi用显示器的设置

在屏幕上显示跳绳信息

以有趣的方式显示跳跃次数,让动力满满!

总结

1.Raspberry Pi用显示器的设置

适用于Raspberry Pi的显示器包括下面这款7英寸大小的触控屏。通过HDMI(如果是Raspberry Pi4的话是MicroHDMI)将其与Raspberry Pi连接,即可在大屏幕上显示数据。

poYBAGPzDMmAEmQpAAEr9CYBkyQ869.jpg

我们会用Raspberry Pi创建应用程序,以实现在这个屏幕上显示。为此,我们将使用可以创建桌面应用程序的Tkinter。
首先,安装Tkinter。

$ sudo apt-get install python3-tk

创建可以显示当前时间的程序display.py。

pi@raspizero:~/Programs $ sudo vi display.py
 
--------- 
#!/usr/bin/python
# -*- coding: utf-8 -*-
from tkinter import *
from datetime import datetime
from time import sleep
 
# 创建主窗口
root = Tk()
# 主窗口大小
root.geometry("720x480")
# 主窗口标题
root.title("Clock")
 
# 创建Canvas
c = Canvas(root, , width=500, height=480)
c.pack(expand=True, fill='x', padx=5, side='left')
 
# 创建字符串
cd = c.create_text(350, 180, font=('', 40, 'bold'), fill='black')
ct = c.create_text(350, 280, font=('', 80), fill='black')
 
# 主窗口的最大化
root.attributes("-zoomed", "1")
# 总是在最前显示
root.attributes("-topmost", False)
 
def cupdate():
 
    # 显示当前时间
    now = datetime.now()
    d = '{0:0>4d}年{1:0>2d}月{2:0>2d}日 ({3})'.format(now.year, now.month, now.day, now.strftime('%a'))
    t = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)
    c.itemconfigure(cd, text=d)
    c.itemconfigure(ct, text=t)
    c.update()
    # 以1秒间隔重复
    root.after(1000, cupdate)
 
# 注册回调函数
root.after(1000, cupdate)
# 主循环
root.mainloop()

像sudo python3 display.py那样运行这个程序时,会创建一个显示当前时间的桌面应用程序。

poYBAGPzDMuAGrcHAAJA8SMhkrE306.jpg
显示时间的桌面应用程序

2. 在屏幕上显示跳绳信息

将显示器与Raspberry Pi连好后,让我们尝试一下在上面显示上次在Google Sheets中记录的跳跃次数吧。

需要能够将Google Sheets中的数据读取到桌面应用程序中。需要显示Google Sheets中的时间、次数和卡路里数据。我们将用来读取Google sheets的程序添加到前面的display.py程序中(用黄色表示增加的描述部分)。

pi@raspizero:~/Programs $ sudo cp display.py  jump_display.py
 
--- 下面的更改或添加部分用黄色表示 ---
#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
 
---
 
import gspread
from apiclient import discovery
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import numpy as np
from datetime import datetime
 
key_name   = "xxx.json" # Use your own information
sheet_id      = “yyy” # sheet_id
sheet_name= “zzz”
 
class SpreadSheet(object):
  def __init__(self, sheet_id):
    self.sheetId = sheet_id
  def search(searchKey):
    scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
    credentials = ServiceAccountCredentials.from_json_keyfile_name(key_name, scope)
    gc = gspread.authorize(credentials)     # 使用JSON密钥文件进行身份验证
    wks = gc.open(sheet_name).sheet1        # 打开sheet
    records = wks.get_all_values()          # 读取内容并保存在数组中
    for i in range(1, len(records)):        # 仅重复sheet的行数
        if records[i][0] == searchKey:     # 直到第一列与TerminalID匹配
            gdate=records[i][0]
            gtime=records[i][1]
            gjump=records[i][2]
            gdur =records[i][3]
            gcal =records[i][4]
            print(gdate, gtime, gjump, gdur, gcal) 
    return gdate, gtime, gjump, gdur, gcal
spread_sheet = SpreadSheet(sheet_id) 
 
---
 
# 创建字符串
cd = c.create_text(100, 60, font=('', 80,), fill='blue')
ct = c.create_text(100, 120, font=('', 80), fill='red')
 
---
 
def cupdate():
 
    totals = spread_sheet.search("Total")
    total_count= totals[2]
    total_time = totals[3]
    jump_text  = str(total_count)+”次 "
    c.itemconfigure(cd, )
    c.itemconfigure(ct, text=jump_text)
    c.update()
 
---

通过运行这个程序,应该能够从Google Sheets中获取总跳跃次数并将其显示在屏幕上。

pYYBAGPzDM2APiNzAAImSbRn8MM051.jpg

3. 以有趣的方式显示跳跃次数,让动力满满!

最后,让我们把这个带显示器的Raspberry Pi做成平板电脑的样子吧。另外,我们假设跳跃一次相当于走了1m,可以将跳绳比作东海道五十三次徒步,可以看到自己走到哪里了,甚至可以用来和朋友比赛。

那么,我们先开始“外部装潢”吧。

首先,准备一个B5大小的外壳。在外壳上开一个显示器大小的窗口。

poYBAGPzDM-AGKltAAKEBMcPSTo530.jpg

将液晶显示器、Raspberry Pi和移动电源放入外壳中。

打开电源并确认屏幕显示。

pYYBAGPzDNKAPw-RAAJ-yZwfxpc435.jpg

现在外部装潢好了,我创建了一个可以让显示更有趣的程序。我把示例程序放在下面的Github上了,您可以试用一下:

https://github.com/ktrips/jump/blob/master/jump.py

好啦,现在让我们开始跳绳吧。

poYBAGPzDNSAKFd2AAJYZjNZJQY367.jpg

跳绳后请确认一下数值是否更新了,显示是否改变了。

poYBAGPzDNWAPKeTAAFLLDGuipg592.jpg

poYBAGPzDNeANVx0AAJMTLkEcJw822.jpg

用这种方法保持动力,坚持跳绳是不是变得更容易了?

4. 总结

在本系列连载中,我们使用Raspberry Pi和SensorMedal制作了一款能够将跳绳数字化的物联网设备。

首先,我们在手柄上安装了4位显示器,通过SensorMedal的加速度传感器检测跳跃次数并将数据在显示器上显示出来了。

接下来,我们实现了将跳跃结果发送到Google Sheets,并将其作为历史记录保存下来。还增加了总时间、总次数、卡路里等数据。

最后,我们让这款带有显示器的Raspberry Pi设备能够显示各种信息,以便增加跳绳和运动的动力。这次,我设置的是让跳跃1次相当于步行1m,看看自己最终在所谓的“东海道五十三次徒步”中走了多远,通过这种方式来享受跳绳运动的乐趣。此外,我还用饭团等来显示卡路里量,这也是一种有趣的显示方式。

怎么样,我们是不是创建了一款谁都可以轻松享受跳绳、有助于解决运动不足问题的设备呢?对于越来越喜欢“家里蹲”的人而言,希望这款设备能成为激发您运动健身的转折点!

本系列连载一览

第一部分:用跳绳测试仪解决运动不足问题!
第二部分:用SensorMedal检测跳跃次数并在显示器上显示
第三部分:连接Google Drive,保存并查看跳绳结果
第四部分:在设备上安装显示器以增加动力!(本章)

吉田显一(Yoshiken)

在普通公司工作的上班族,非常喜欢创作的周末创客,出版了电子书MESHBOOK,平时也写写博客。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示器
    +关注

    关注

    21

    文章

    4736

    浏览量

    137838
  • Raspberry Pi
    +关注

    关注

    1

    文章

    552

    浏览量

    22054
  • IOT
    IOT
    +关注

    关注

    186

    文章

    3983

    浏览量

    193196
收藏 人收藏

    评论

    相关推荐

    如何在Raspbian上设置没有显示器和键盘的Raspberry Pi

    在本教程中,我们将了解如何在新安装的 Raspbian 上设置没有显示器和键盘的 Raspberry Pi
    发表于 09-22 16:31 1086次阅读
    如何在Raspbian上设置没有<b class='flag-5'>显示器</b>和键盘的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>

    独特的51单片机教程第四部分—牛人经验,论坛独家奉献

    本帖最后由 eehome 于 2013-1-5 10:01 编辑 独特的51单片机教程第四部分:基本IO操作和 定时/计数 前面的之三写得很辛苦。我当时说,这一篇对于你直接点亮 LED
    发表于 11-21 09:28

    raspberry pi的购买建议和必备配件

    豆瓣看到的,很不错的帖子,转了过来。先普及一下,至2014年6月3日,正版树莓派从颜色上来,有绿色板子(国外)、红色板子(国产),分别简称绿版、红板;绿板红板树莓派raspberry
    发表于 07-11 11:29

    【蓝牙4.1】+ 分享一本好书《Psoc 体系结构与编程》四部分完全版

    =292215&highlight=PSOC%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84第二部分:第三部分第四部分
    发表于 06-11 00:21

    Raspberry Pi 3和3 b +的Android Pie 9.0

    Raspberry Pi 3和3 b +的Android Pie 9.0Raspberry Pi
    发表于 09-29 14:28

    HarmonyOS智能设备开发极速入门教程【一、二部分

    (使用OpenHarmony2.0全量代码方式)目录第一部分:基础前提工作第二部分:IDE安装流程第三部分:编译环境安装
    发表于 07-23 11:33

    国内卫星通信地球站发射接收和地面通信设备技术要求 第四部分

    国内卫星通信地球站发射接收和地面通信设备技术要求 第四部分中速数据传输设备 本标准规定的各项规则涉及国内卫星通信地球站内中速数据传输的各种设备本标准的制定
    发表于 10-05 10:33 46次下载

    2012年PSoC数模混合设计培训_第四部分

    2012年PSoC数模混合设计培训_第四部分
    发表于 10-27 09:27 4次下载
    2012年PSoC数模混合设计培训_<b class='flag-5'>第四部分</b>

    Raspberry PiSensorMedal制作IoT跳绳设备:连接Google Drive,保存并查看跳绳结果

    第一部分:用跳绳测试仪解决运动不足问题!第二部分:用SensorMedal检测跳跃次数并在显示器显示
    的头像 发表于 02-20 11:14 465次阅读
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳绳</b><b class='flag-5'>设备</b>:连接Google Drive,保存并查看<b class='flag-5'>跳绳</b>结果

    Raspberry PiSensorMedal制作IoT跳绳设备:用SensorMedal检测跳跃次数并在显示器显示

    第一部分:用跳绳测试仪解决运动不足问题! 大家好,我是吉田!在第一部分中,我们简要介绍了本项目以及所需的准备工作,从第二部分开始,我们将着手制作
    的头像 发表于 02-20 13:34 641次阅读
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳绳</b><b class='flag-5'>设备</b>:用<b class='flag-5'>SensorMedal</b>检测跳跃次数并在<b class='flag-5'>显示器</b>上<b class='flag-5'>显示</b>

    Raspberry PiSensorMedal制作IoT跳绳设备:用跳绳测试仪解决运动不足问题!

    大家好,我是吉田!随着在室内度过的时间越来越多,我趁机制作了各种旨在解决运动不足问题的项目。这次为大家介绍的项目是把在家中也能轻松使用的健身器材“跳绳”数字化,并将其与物联网连接起来。
    的头像 发表于 02-20 11:45 514次阅读
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>SensorMedal</b><b class='flag-5'>制作</b><b class='flag-5'>IoT</b><b class='flag-5'>跳绳</b><b class='flag-5'>设备</b>:用<b class='flag-5'>跳绳</b>测试仪解决运动不足问题!

    一款用Raspberry Pi和传感器制作的可穿戴式小型健康管理设备第四部分•剧终篇

    第1部分:用Raspberry Pi Zero和罗姆SensorMedal制作健康管理设备!第2
    的头像 发表于 02-24 10:06 1845次阅读
    一款用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和传感器<b class='flag-5'>制作</b>的可穿戴式小型健康管理<b class='flag-5'>设备</b>!<b class='flag-5'>第四部分</b>•剧终篇

    Raspberry Pi和传感器制作“可自动营造舒适空间的装置” 第四部分•剧终篇

    第1回:用Raspberry Pi和传感器制作“可自动营造舒适空间的装置” 第一部分第2回:用Raspberry
    的头像 发表于 02-24 10:17 443次阅读
    用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和传感器<b class='flag-5'>制作</b>“可自动营造舒适空间的装置” <b class='flag-5'>第四部分</b>•剧终篇

    硬件即代码第四部分:嵌入式RAM

    电子发烧友网站提供《硬件即代码第四部分:嵌入式RAM.zip》资料免费下载
    发表于 06-14 15:10 0次下载
    硬件即代码<b class='flag-5'>第四部分</b>:嵌入式RAM

    Raspberry Pi添加15美元的显示器

    电子发烧友网站提供《为Raspberry Pi添加15美元的显示器.zip》资料免费下载
    发表于 06-20 11:04 0次下载
    为<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>添加15美元的<b class='flag-5'>显示器</b>