暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用树莓派3B和华为HUAWEI E153搭建一个短信收发平台

土味工程师 2020-12-08
1259


一.缘由

    一直被垃圾信息所困扰,自己也有好几个手机卡,总是记不住自己的手机副卡的卡号,有一张闲置的米粉卡,想把我的米粉卡利用起来接发短信来注册一些东西的功能,树莓派弄过FRP内网穿透弄了个网站之后就没有然后了,最近想利用树莓派来接发短信。弄了两三天总算差不多了,总结分享一下。

二.过程

    互联网上搜了一圈之后。找到了一个叫gammu的开源软件。提供了一个命令行工具来收发短信。接着就查看这个软件相关支持的硬件。

    支持列表:https://wammu.eu/phones/(Gammu设备支持数据库)

然后在咸鱼花了20RMB套了一个HUAWEI E153的联通3G网卡,真的便宜呀。

接下来把它插到我的树莓派里面,用Xshell链接我的树莓派,输入

lsusb

第一行可以看到Huawei的字样,证明这个3G网卡就是好的了

接下来安装软件 gammu

sudo apt-get install gammu -y

安装完成后在teminal中查看usb设备

ls /dev/ttyUSB*

一般是最后一个usb,/dev/ttyUSB2,这就是那个网卡了,然后打开gammu的设置,指定这个设备

gammu-config

如下图修改,这就完成了初步的修改

确定保存,然后输入下面命令查看设置生效了没有。

gammu --identify

如下图所示那就是可以了,现在可以使用命令行来收发命令了,可以参考文档:https://docs.gammu.org/index.html


接下来要安装gammu-smsd,这个就是一个后端软件,可以以服务的方式自动监控短信收发,进程守护,短信持久化存储。

sudo apt-get install gammu-smsd

安装完成后开始配置smsd,配置文件在/etc/gammu-smsdrc文件里

使用如下命令编辑:

sudo vim /etc/gammu-smsdrc

    可以参考我的配置,我自己测试了很多遍,我自己的数据库的root没有密码。password就为空,默认的就是文件log的形式存储收发短信的内容,指定的数据库为smsd,要自己手动创建数据库并执行文档说明的sql文件,初始化数据库。

    初始化数据库表的步骤需要详细说明一下,我的树莓派装的是mariaDB,兼容mysql的命令,新建一个mysql.sql的文件,把下面黄色框框的内容全部复制到这个mysql.sql的文件里

内容在gammu文档:https://docs.gammu.org/smsd/mysql.html 。


    先用数据库管理工具连接上树莓派的数据库,自己创建一个smsd的数据库,右键运行自己刚刚创建的mysql.sql,就会生成如下6张数据表。

这样就配置完成了。teminal输入

gammu-smsd:gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon --user gammu --group gammu

来用命令行来测试一下:

echo "测试测试" | sudo gammu-smsd-inject TEXT *********** -unicode


    看到了插入数据库的命令了证明这个数据库配置是可以的,接收短信也是自动记录到数据库的。

    用数据库管理软件也能看到这条数据,接下来来安装一个后端框架读取这个数据,执行shell命令来收发短信了。

    接下来我不会讲的很详细,因为有很多的基础软件并不是所有的人都有安装,不同的系统环境差异很大,不会完全跟我一样的,我只说一个基础的流程。有很多坑等着大家去踩,需要安装PHP7.3,nginx,frp内网穿透。安装完成后,配置Nginx,我的Nginx的配置如下,项目文件目录是/home/wwwroot/defalut/tp。我在最后会把我的项目的代码分享出来,大家可以设置自己的项目位置,nginx也要配置正确。监听8081是因为我把树莓派的本地的8081映射到外网的服务器上了,然后外网的服务器也有Nginx。再使用域名解析。

项目地址:https://gitee.com/koala9527/raspberry_3b.git

采用的是ThinkPHP5.1的框架,下图是我修改的TP5.1的首页

    克隆我的项目,配置nginx,安装好mariaDB,PHP。设置好数据库连接,具体操作太繁琐了,网上的教程很多,不赘述了,接下来访问下面的URL就可以使用了

127.0.0.1:80/index/sms/index(设置成自己的域名哦)


    现在就可以收发短信了。但是有个BUG还未解决,使用PHP的shell命令发送是中文会发送空的内容,困扰了我好几天,不知道怎么办。试了好多次。PHP的shell命令如下所示。

三.总结

    这篇文章的内容不是很精彩,有很大一块的内容是与网络上其他的文章重复了很多,为了弥补这点的不足,后面把自己的通过TP5.1和Layui写的一个功能页面分享了出来,哈哈。上次发了一个文章利用树莓派来做人脸识别的功能,其实树莓派可以更多的事情等待我们去发掘,通过这次的实践又让我学到了很多东西,对这个linux有更深一步的了解,熟练了一些基本的命令,软件配置,还是非常有成就感。然后立马又下单买了一个顶配的树莓派4B,打算尝试一下docker相关的技术在树莓派上的实践,有机会一定会分享出来。



文章转载自土味工程师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论