用树莓派做一个短信收发平台
手机短信里全是推广或者验证码信息?有多的卡或者异国他乡不方便使用以前的卡?那就就用树莓派做一个短信收发平台吧
前情介绍
现在境内随随便便注册个啥都需要验证手机,然后短信就成为了广告推广的重灾区,随随便便拿出手机,短信收件箱99%都是广告推广,今天狗东告诉你啥啥啥促销了,明天爱奇艺告诉你VIP也打折了,后天你之前在天猫之前买的店家告诉你他们又要打折了了,接下来又有银行说现在办信用卡有活动了……然后随着微信等社交软件的发展,手机短信真的就成为了一个天然的广告地。
我手里有两张卡,一张用了多年的移动和一张两年的联通,为什么会开一张联通,因为我使用的是非国行手机,联通的FDD-LTE和WCDMA比移动的TD-LTE体验好很多。两张卡的后果就是手机收到垃圾短信的次数变得更多,于是我想改变这个情况——用树莓派接收短信并通过Telegram Bot发送给我的Telegram。
开始折腾
首先,要将sim卡接到树莓派上就需要买GSM模块,然而我搜了下模块的价格,打扰了,于是我去想到了去购买USB的sim网卡,在 Gammu SMSD的数据库里,找了下兼容设备后,我购买了华为的E173
Gammu SMSD是一个用来接收与发送短信的服务,可以运行在树莓派上
我手里的树莓派是树莓派3B+,使用的是Broadcom BCM2837
,这是一个64位的SOC,网上一直传着64位系统的性能可以达到32位系统的30倍,然而树莓派官方却没有为他推出64位的操作系统,我在网上找到人社区为3b+维护的64位的Centos和ubuntu都有或多或少的问题,于是这次把系统换回了官方系统其实我这次有尝试Manjro-ARM,但是在配置port时总访问不了,有知道怎么解决的请在下面告诉我。
我个人推荐大家使用root账户进行安装配置,我一开始用的普通账户+sudo的方式,但是Gammu SMSD服务起不起来,全程root账户后就一切正常了。
将USB网卡插在树莓派上
1 | 查看USB设备 |
因为我是WCDMA网卡,会有三个,后面配置时使用ttyUSB0和ttyUSB2都能正常工作,但是我发现重启设备后,有时USB2会变成USB3而,0和1却依旧存在,于是我使用的ttyUSB0进行配置
接下来就是安装与配置软件
安装配置 Gammu
1 | ~ $ apt install gammu |
使用 gammu-config
进行配置,具体的配置参数等请参考设备文档和实际USB段口配置,配置完后使用 gammu --identify
进行验证
1 | ~ $ gammu --identify |
安装配置 Gammu SMSD
1 | ~ $ apt install gammu-smsdrc |
创建配置Telegram Bot
访问 BotFather,根据提示按步骤创建属于自己的Bot,取得属于自己的Token。
然后用自己访问这个Bot,不是在BotFather
,对他随便发句Hello World啥的。然后访问https://api.telegram.org/botTOKEN/getUpdates
,把TOKEN替换成自己的Bot的Token,回返回一段JSON,然后找到chat
下自己的id
,替换上面脚本里的字段。然后执行gammu-smsd
进行测试,给手机号发短信,看能不能自动转发到Telegram里,如果成功,就执行systemctl start gammu-smsd
让他开机自启吧