# hellopangbi
**Repository Path**: mirrors/hellopangbi
## Basic Information
- **Project Name**: hellopangbi
- **Description**: HelloPangBi 是一个应用于树莓派控制硬件的 Java 项目
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: https://www.oschina.net/p/hellopangbi
- **GVP Project**: No
## Statistics
- **Stars**: 14
- **Forks**: 3
- **Created**: 2020-12-21
- **Last Updated**: 2025-09-20
## Categories & Tags
**Categories**: hardware
**Tags**: None
## README
# hellopangbi
### 前言
HelloPangBi是一个应用于树莓派控制硬件的Java项目。我寄托于这个项目可以把我在入坑树莓派的成长过程都记录下来。也想通过这个项目来告诉大家不要
局限于现有的资料;也许你也可以通过已有的知识体系,在树莓派“宇宙”中创造出属于你生活圈的伟大应用。
最后,我也期待能有更多热爱树莓派的同学加入在树莓派“宇宙”中来;让当下的生活变的更好。
### 作品橱窗
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
上述图片中展示了HelloPangBi的阶段成果。目前,它在我生活中的主要应用包括:
1.基于中国法定节假日所定制的智能闹铃;
2.监控当天的天气、当前气温和当天最高/低气温(为当天的穿衣保暖做参考);
3.监控杭州地区新冠病毒数据(为出行安全做决策参考);
4.增加丽水、嘉兴地区新冠病毒数据(马上过年了,需要看下老家的情况);
4.接入Siri控制LED灯(后面会通过购入的语音模块,寻找合适的ASR开源项目作自行集成);
5.控制步进电机(为后续的行走机器人作铺垫);
### 项目文档
####(一)硬件部分
######1.硬件描述
HelloPangBi硬件部分目前集成内容包括:树莓派4(4G版),散热风扇,微雪继电器模块,微雪步进电机驱动板,微雪SM24240步进电机,树莓派3.5寸LCD触摸屏;
######2.驱动说明
驱动安装部分主要是针对微雪继电器模块、微雪步进电机驱动板以及树莓派3.5寸LCD触摸屏。其中,微雪继电器模块和微雪步进电机驱动板需要安装
BCM2835和wiringPi这样我们才可以访问GPIO引脚实现控制树莓派的外接硬件。
安装BCM2835, 打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
tar zxvf bcm2835-1.68.tar.gz
cd bcm2835-1.68/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
安装wiringPi
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
安装3.5 inch 的屏就直接复制下面的内容:
cd /boot
sudo tar zxvf LCD-show-160701.tar.gz
cd LCD-show/
sudo ./LCD35-show
从3.5寸屏切换回HDMI显示
cd /boot
sudo tar zxvf LCD-show-160701.tar.gz
cd LCD-show/
sudo ./LCD-hdmi
上述驱动完成安装后,最好重启一下树莓派。重启命令:sudo reboot
####(二)软件部分
项目jar包依赖:pi4j、usb4、datecapsule.jar(自研)、json-20190722.jar、jsoup-1.12.1.jar、sqlite-jdbc-3.30.1.jar
概览(package):
|package(包)|Description(描述)|
|---|---|
|gpio|树莓派引脚控制包(输入/输出端口)|
|lang|项目基础包|
|usb|树莓派USB控制|
|hellowindow|可视化程序及项目主入口(main方法)|
文档(documentation):
|概览(package)|Class(名称)|Method(方法)|parameter(参数)|Modifier and Type(返回类型)|Description(描述)|
|---|---|---|---|---|---|
|gpio|StepperMotor|getOpenGPIO() |---|void|硬件接入步进电机A3A4B3B4端口,实现控制电机启动|
|gpio|StepperMotor|getShutDownGPIO() |---|void|硬件接入步进电机A3A4B3B4端口,实现控制电机关闭|
|gpio|ControlMotor|getControlMotor()|---|static void|控制步进电机的运行圈数|
|usb|HelloUSB|findDevice(short vendorId, short productId)|vendorId:供应商ID;productId:产品编号|Device|查找 USB 设备|
|usb|HelloUSB|getDeviceHandle(Device device)|device:设备|void|与具体的USB端口实现通信|
|usb|HelloUSB|getUSBPowerSupply|---|void|控制USB电源|
|lang|WeekMap|getWeek(String strWeek)|strWeek:星期一~星期天|String|返回星期一~星期天的英文翻译|
|lang|ArtTable|---|---|void|此类用于画作晴、云、多云、雨、阵雨、雪等天气图形|
|lang|SarsCovSupervisoryControl|getHangZhouSarsCovData()|---|String|(监控)返回当前杭州新冠病毒当前确认数据|
|hellowindow|TodayWeather|getTodayWeather()|---|void|展示天气图形化|
|hellowindow|TodayWeather|getTemperature()|---|String|返回当天气温数据|
|hellowindow|HelloWindow|main(String[] args)|String[] args|static void|程序运行主入口|
----
* uhubctl是用于控制智能USB集线器上每个端口的USB电源的实用程序。智能集线器定义为实现每端口电源切换的设备
用法:
1.列出所有受支持的集线器:uhubctl
2.控制USB端口的电源:uhubctl -a off -p 2
这意味着在默认的智能集线器上运行,并关闭端口2()的电源(-a off或)。支持的动作是/ / (或/ / )。 表示关闭电源,等待一段时间(可通过配置),然后重新打开。端口可以是逗号分隔的列表,并且可以用于范围,例如,或,或,或。-a 0-p 2offoncycle012cycle-d-22,42-51-2,5-8