基于OpenWrt的网络校时自动打铃器

基于OpenWrt的网络校时自动打铃器,第1张

本文将以开源路由系统中最普及的 OpenWrt系统为例,以一个自动打铃器项目为例,详细探讨其作为嵌入式平台二次开发的潜力。

基本原理

以DB120-WG路由器作为嵌入式系统硬件平台,在其上安装基于Linux的开源OpenWrt路由器系统,配置搭建WEB管理平台,利用路由器的USB接口挂载声卡和移动存储设备,当编写软件实现定期校验时,准时驱动声卡发出铃声。其原理图如下图所示。

基于OpenWrt的网络校时自动打铃器,基于OpenWrt的网络校时自动打铃器,第2张

硬件平台

自动打铃器的硬件主要由三大部件组成:

①大亚科技公司的DB120-WG无线路由器,用作控制平台。

②USB声卡,用于音频输出。

③U盘,用于存储铃声音乐。厚度仅为4mm,因DB120-WG的两个USB接口垂直间距很小,使用普通U盘会导致无法同时插入U盘和声卡,故特意使用此超薄型U盘。

本项目基于Linux的开源路由软件OpenWrt(back-fire10.0.3),在其上安装lighttpd+php+mysql、NTP客户端和lighttpd+phd+mysql、NTP客户端和MP3播放器madplay。

基于OpenWrt的网络校时自动打铃器,基于OpenWrt的网络校时自动打铃器,第3张

软件平台结构

基本功能如下:

①使用NTP客户端定期与网络上的NTP服务器同步,保持精确时钟

②使用php编写动态页面,完成上传MP3文件并存于U盘,管理播放列表等。这也是本项目软件开发的主要内容。

③后台程序按预定时间调用播放器播放MP3文件,输出铃声音频信号。

在Vmware虚拟机中部署x86版OpenWrt

PC开发环境的准备 实验环境

本项目使用php语言可跨平台运行,OpenWrt本身跨平台具有x86版本,因此可在PC虚拟机中直接开发程序,然后移植到路由器中运行,极大地提高了开发效率。使用镜像文件在虚拟机中安装OpenWrt,需从OpenWrt

官网下载OpenWrt-x86-generic-combined-ext2.img.gz文件,再从gz文件中解压出img文件,然后ltraiso将其转换为iso文件,以便在Vmware虚拟光驱中加载使用。接下来的安装与其他Linux发行版本类似。

建立本地opkg源

OpenWrt未使用yum、rpm等流行的软件包管理系统,而是采用轻量级的包管理系统opkg。安装软件时需连接互联网软件源下载安装。建立本地源,可加快软件安装速度,减少重复下载。

建立运行环境

安装lighttpdWEB服务器。使用opkg安装lighttpd软件包,然后配置相关参数。由于OpenWrt默认安装ht-tptd服务器运行管理界面,为避免与其占用的80端口相冲突,配置lighttpdWEB端口为其他端口,如81。

安装php解析器

安装Samba3,将WEB主目录作为共享目录发布,在Windows中将该目录映射为网络驱动器。这样可直接在WEB主目录中新建项目,和本地PC虚拟机上开发完全一样,相比通常以交叉编译为主的嵌入式开发方式,极为便利。Samba3软件包安装完成后为解决中文乱码问题,需将字符集由默认的ISO-8859-1设定为utf8。

自动打铃器软件开发 数据库结构设计

新建名为songdb的数据库可供自动打铃器软件使用,用于存放曲目数据和播放时间等数据。songdb数据库总体结构中有两个表和一个视图。

表tbpl用于存放响铃(播放项目)数据,主要字段有响铃名称、响铃开始时间、响铃持续时间、播放曲目ID等。表tbsong用来存放曲目数据,主要字段有曲目名称、文件大小等。视图vpl是用IDsong键把表tbpl左连接到表tbsong构成的,以方便查询操作。

phpWEB界面设计

WEB界面分4大功能模块,即公用模块、曲目管理、播放列表管理和系统配置。软件功能模块框图如下所示。

基于OpenWrt的网络校时自动打铃器,基于OpenWrt的网络校时自动打铃器,第4张

软件功能模块框图

向DB120-WG部署程序

软件开发完毕后,需向DB120-WG路由器部署程序。

OpenWrt刷机

通过WEB界面刷机较便利,适合初学者,但固件大小不能超过8MB。比较大的特殊固件可使用TTL串口刷机。

WinSCP的安装

OpenWrt默认安装有SSH和SFTP服务。为便于向路由器输入指令和上传文件,安装WinSCP软件。Win-SCP是一个Windows环境下使用SSH的开源图形

SFTP客户端,同时支持SCP协议。基于putty、filezila、openssl等开源软件,它的主要功能就是在本地与远程计算机间安全的复制文件。

代码上传和修正

使用WinSCP新建WEB主目录,上传自动打铃器

WEB界面的php代码文件,并针对虚拟机环境和真实路由器目录结构的差异作适当修改。

数据库的移植

先导出虚拟机中的数据库,在命令行下利用mysql-dump工具,可把数据库导出。代码如下:

mysqlump-uroot-psongdb>songdb.sql

然后在路由器中导入数据库,在远程登录路由器后,在命令行下启动mysql,在sql命令行下输入导入数据库的命令:

>creatdatabasesongdb;

>usesongdb;

>sourcesongdb.sql

至此,RouterRing项目已能在路由器上正确运行。在实际使用中,无论用户是通过有线还是无线方式接入网络,也不管是在内网或是外网,只要能与路由器所在的网络通信,就能通过WEB界面方便地进行控制。用户可以在校园网内任意办公室控制放置于播音室的路由器。上

传MP3曲目,设置好特定的响铃时间,路由器就能准时响铃。即使发生断电等意外情况,因为MP3和配置文件都存放于U盘,数据不会丢失。待恢复供电后,系统重新读出配置文件,NTP客户端也会重新与服务器同步,获取当前准确时间,因此意外断电不会影响系统正常工作。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/dianzi/2718024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-08-17
下一篇2022-08-17

随机推荐

  • 司法考试照片着装要求

    法考证件照对着装没有特别要求,没有规定必须穿西服。法考报考时需要的电子证件照片只对尺寸、底色、文件格式等有详细规定,并没有明确的着装要求,只要按照要求上传,不佩戴首饰,不上传全身照、风景照、生活照、背

    2022-12-10
    000
  • 0基础如何练出播音腔

    得坚持做两件事:一、发声系统的训练:播音全名叫做播音与主持艺术,之所以叫艺术,是因为播音生要有异于常人的表达能力,同时要将纸面文字转化为具有情感张力的话言,所以播音属于一门有声语言艺术学科,而要想做到

    2022-12-10
    000
  • 零基础怎么学吉他

    吉他(意大利语:Chitarra),又译为结他或六弦琴。是一种弹拨乐器,通常有六条弦,形状与提琴相似。吉他在流行音乐、摇滚音乐、蓝调、民歌、佛朗明哥中,常被视为主要乐器。而在古典音乐的领域里,吉他常以

    2022-12-10
    000
  • 如何在绘画中画出人物头部的阴影

    动画作为国内目前具有广阔发展前景的行业之一,因其自身特有的魅力吸引着观众的喜爱,特别是对90后以及00后们来说,动画更是他们成长轨迹中十分重要的存在。随着行业的发展,动画人才的需求也在大幅度的提升。如

    2022-12-10
    100
  • 电工快速拿证

    从事电工操作工作的你应该都知道,必须有电工操作证和电工进网作业许可证双证上岗的,怎么样快速拿电工证?电工操作证:也称电工上岗证,电工特种作业操作证,即特种作业人员操作证(电工),从事电气设备安装、维修

    2022-12-10
    000
  • 工地保安都干什么

    工地保安主要工作职责有认真执行安全保卫条例、规范、遵守公司、工地制订的各项规章制度; 负责对本工地值班员,防火小组的教育和领导工作,确保一方平安;负责检查和监督防火,防盗措施的落实。工地保安主要工作职

    2022-12-10
    100
  • 法约尔的五大管理职能

    法约尔将管理活动分为计划、组织、指挥、协调和控制等五大管理职能,对每一个职能做出相应的分析和讨论。计划:预见的目的就是制定行动计划;组织:为企业的经营提供所必要的原料和人员等;指挥的协调,使本单位的所

  • 安全监理工程师证报考条件

    监理工程师报考条件需要凡遵守中华人民共和国宪法、法律、法规,具有良好的业务素质和道德品行;具有各工程大类专业大学专科学历(或高等职业教育),从事工程施工、监理、设计等业务工作满6年。监理工程师考试全国

    2022-12-10
    000
  • 仁之端也的端是什么意思

    “仁之端也”的“端”意思是:开端。该句出自《孟子·公孙丑上》,是儒家经典著作《孟子》中的一篇。记录了孟子的一些言行。《孟子·公孙丑上·第六章》原文选段:恻隐之心,仁之端也;羞恶之心,义之端也;辞让之

    2022-12-10
    000

发表评论

登录后才能评论

评论列表(0条)

    保存