这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【PocketBeagle2】④用开发板查时间、查天气、看新闻

共1条 1/1 1 跳转至

【PocketBeagle2】④用开发板查时间、查天气、看新闻

菜鸟
2025-09-02 17:42:00     打赏


【PocketBeagle2】②利用USB虚拟网卡,让板子尽情冲浪

https://forum.eepw.com.cn/thread/394015/1


在第2篇分享贴子中,我们尝试共享PC网络,让开发板的USB虚拟网卡共享上网。

本片就顺着这个路子,让板子联网功能尽情发挥。


1.·查时间


直接在串口中输入Shell指令

curl https://api.xiaole.work/api/time/time.php?type=json


什么是 curl 命令

curl(Client URL)是一个强大的命令行工具,用于在 Linux/Unix 系统中传输数据。它支持多种协议,包括 HTTP、HTTPS、FTP、SFTP 等,是开发者和系统管理员日常工作中不可或缺的工具。

curl 的主要特点

  1. 多协议支持:支持几乎所有主流网络协议

  2. 无界面操作:纯命令行工具,适合脚本和自动化任务

  3. 功能丰富:支持文件上传下载、表单提交、Cookie 处理等

  4. 跨平台:在 Linux、macOS、Windows 上均可使用


运行结果:

可以看到获取的时间跟PC机上的时间一致:

image.png




2.·查天气

直接在串口中输入Shell指令


curl http://t.weather.sojson.com/api/weather/city/101280601


运行结果:

深圳天气(CityID:101280601),

可以显示今天天气:湿度、PM2.5、PM10、空气质量、温度,基本都是准的。

image.png


可以预报未来2周天气(9/2~9/16)

image.png






3.    查新闻


前面查时间、查天气,都有免费API可用。

查新闻这部分稍微复杂点,涉及到平台,而且如果直接使用curl指令,获取的信息就非常杂乱。

新闻是利用了聚合数据平台:

各位可自行注册,使用免费资源:


image.png


新闻头条,每天免费查询50次。

image.png


curl参数如下:

image.png

笔者使用免费注册的Key,用以下指令

curl v.juhe.cn/toutiao/index?key=5f78766a1e82f665528a474b411a59dc&type=top&page=20&page_size=&is_filter=

得到结果如下:


image.png

可见非常杂乱。

那就需要介绍今天的重点了:python、requests、json

python就不多说,本开发板的固件集成了Python 3.11.2,也就是电脑上python能干的事他都能干。

Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。

JSON(JavaScript Object Notation,JavaScript对象表示法)是基于ECMAScript的一个子集设计的,是一种开放标准的文件格式和数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON独立于语言设计,很多编程语言都支持JSON格式的数据交换。JSON是一种常用的数据格式,在电子数据交换中有多种用途,包括与服务器之间的Web应用程序的数据交换。其简洁和清晰的层次结构有效地提升了网络传输效率,使其成为理想的数据交换语言。



经测试,python和json 系统中已经自带了,无需安装直接使用,requests需要联网安装。


安装命令如下图:

sudo apt install python3-requests


requests.PNG




然后编写python程序进行新闻标题解析:

#!/usr/bin/python
import json
import requests


# 基本参数配置
apiUrl = 'http://v.juhe.cn/toutiao/index'
apiKey = '5f78766a1e82f665528a474b411a59dc'

# 接口请求入参配置
requestParams = {
    'key': apiKey,
    'type': 'top',
    'page': '20',
    'page_size': '',
    'is_filter': '',
}

# 发起接口网络请求
response = requests.get(apiUrl, params=requestParams)

# 解析响应结果
if response.status_code == 200:
    responseResult = response.json()
    # 网络请求成功。可依据业务逻辑和接口文档说明自行处理。
    i=0
    while(i<30):
        print(responseResult['result']['data'][i]['title'])    #这步是json解析的关键
        i=i+1
else:
    # 网络异常等因素,解析结果异常。可依据业务逻辑自行处理。
    print('请求异常')


print(responseResult['result']['data'][i]['title'])    #这步是json解析的关键


我们可以借助JSON在线格式化工具,帮忙梳理其中的层级。

可以看到要获取某一新闻标题,需进入4个层级:

['result']
['data']
[i]
['title']


image.png


将该文件命名为X.py,直接copy至 此电脑\BeagleBoard.org\Boot Partition\ 下面的某个目录

比如我自己建了个文件夹python专门用于存放自己写的程序:

image.png


通过串口进到 /boot/firmware/python目录就可以看到放进去的python程序


image.png

运行以下指令,就可以获取新闻标题了。

python p2.py



image.png







关键词: PocketBeagle2    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]