3.2 KiB
3.2 KiB
EC20模块收发短信
使用4g模块,而不是GSM模块
通信运营商允许申请副卡,共享主卡的自费套餐,比如电话/短信/流量
通常副卡要收费10元/月,没有其他费用
但是能拥有一个全新的手机号,用作工作(区分生活)或者注册验证网站也挺好的
这个时候往往会遇到问题:比如出门只带一个手机,,或者出省旅游/出国也需要接发短信
托管sim卡,正常收发短信,就是一个小需求
另外,通过底层的AT指令,还可以实现闪信,也就是0级短信,也成flash sms
本篇文章用到的设备
-
orange pi 3 lts,价格约250
-
EC20 usb模块 价格约180 (+吸盘天线)
实现的功能
-
短信:文本短信/静默短信/闪信
-
打电话/tts语音生成
-
4g流量网络
-
gps定位
串口调试
串口通信,AT指令
windows上下载串口调试助手, 回复关键词 串口可以获取
另外发送短信,有text和pdu模式,需要对文字和手机号进行编码,可以使用转换工具
通信模块的AT指令,基本相同,会有细微的差别,可参考相关手册
python调试串口
使用pyserial设置AT指令
import serial
modem = serial.Serial(port='COM8', baudrate=9600)
modem.write(("AT"+"\r\n").encode())
注意在windows系统上,设备端口是COM8,在linux上的设备一般是/dev/ttyUSB
为什么我不用gammu
gammu是针对通信模块的框架,安装后,可以自动接受短信,守护进程
也可以发短信
并且有前端网页,后端数据集成
但是,对于配置类的约束,个人更倾向于python控制AT指令,封装成api
更好的实现业务逻辑,和改造
使用telegram bot进行转发
设置tg机器人,使用get请求即可
在telegram
-
申请一个bot机器人,获取token
-
创建群组,然后获取群组的chatid
就可以实现转发message消息
参考代码
import requests
# bot发消息到tg群组
def sendTg(message):
baseUrl="https://api.telegram.org/bot"
toekn="558659722:AA32A3v8gK23q7R7_nsr8V58Iu-_Z6B232SCw"
chat_id="-861532r23527609"
text=message
url=f'{baseUrl}{toekn}/sendMessage?chat_id={chat_id}&text={text}'
try:
r = requests.get(url)
except:
print('请检查网络')
最后,别用中国移动,趁早携号转网吧
