Giter Club home page Giter Club logo

gsm's Introduction

硬件短信转发小工具

这是利用树莓派结合硬件模块,用来规避*扰电话和信息泄漏的一个小工具.

需要的硬件如下:

  • 树莓派 淘宝价格:220 RMB

  • 乌金甲外壳 铝合金外壳带双风扇 淘宝价格:60 RMB(不是必须)
  • 直插三极管NPN SS8050 0.05 RMB (不是必须)

  • GSM900A 淘宝价格:40-50 RMB
  • CH340 淘宝价格:5-10 RMB

上面两件可以替换为

  • 移远EC20 淘宝价格:150-200 RMB
  • 4G模块Mini-PCIE转USB转接板 淘宝价格:20RMB
  • 4G天线 淘宝价格:5RMB

IoT开发模块

  • ESP8266(IoT) 淘宝价格: 20RMB
  • 温湿度传感器DHT11 淘宝价格: 5-10RMB

如何安装

$ sudo apt -y install golang minicom
$ mkdir gopath
$ export GOPATH=./gopath
$ git clone https://github.com/rungobier/gsm.git
$ cd gsm
$ ./install init  #编译环境环境初始化
$ ./install arm  gsm  #编译出树莓派控制中心版本
$ ./install linux  wxs  #编译出微信外网服务器64位版本
$ scp ./bin/wxs-lin64 <公网VPS实际路径下>
$ scp ./wxs-config.json <公网VPS实际路径下>
$ scp ./bin/gsm-arm <树莓派实际路径下>
$ scp ./src/gsm-config.json <树莓派实际路径下>
## 配置好文件后可以继续后续操作
【树莓派系统下操作】
$ ./gsm-arm gsm-config.json
【公网VPS系统下操作】
$ ./wxs-lin64 wxs-config.json

其中,项目中需要一些相应的库,但是因为众所周知的原因,在国内很难把它们下载回来,所以我把它们打包成了项目里面的vendor.tar.gz ,在执行初始化的时候展开。

如果需要判定是否是硬件模块的原因,可以使用 minicom -D /dev/ttyUSB3 -b 115200,在其中的界面当中执行 AT指令进行指令测试判定。

如何配置

针对*-config.json的配置文件信息说明如下:

{
  "device": "/dev/ttyUSB3",  //短信接收硬件所对应的设备号 SIM900A加CH340默认为 /dev/ttyUSB0
  "baudrate": 115200,    //短信接收硬件设备通讯频率    SIM900A 应该为9600
  "sleep": 5,            //出现错误时的休眠时间
  "sendmail": false,     //是否以发送邮件方式推送收到的短消息
  "mailfrom": "[email protected]",  //发送邮箱账号
  "mailto": "[email protected]",    //接收邮箱账号
  "mailpass": "alksdjfiqwuyrasjdf",  //邮箱授权码
  "mailserver": "smtp.qq.com",     //发送邮件服务器
  "mailserverport": 587,           //发送邮件服务器端口
  "sendwx": true,                  //是否以微信小程序方式推送短消息
  "wxcorpid": "wwc99f328ac88hasjdhf1c", //企业微信ID
  "wxcorpsecret": "alksdjfklajsdflkajsdlfkjalskdfjl", //企业微信自建应用密钥
  "wxagentid": 1000011,  //企业微信自建应用编号
  "wxuser": "HAHAHAHHAHA",  //能够接收消息的账号ID
  "checkcputemp": true,  //是否检测CPU温度
  "tempinterval": 10,   //温度检测间隔时间
  "cpufanstart":  55,   //启动风扇温度值
  "cpufanconpin": 21,   //控制风扇开关的GPIO pin脚编号
  "cputempfile": "/sys/class/thermal/thermal_zone0/temp" //保存CPU温度的文件完整路径
  
  "aeskey": "akjsdflkjasdlkfjal;skdjflkasdjflkajsdf",  //对应微信接收消息的EncodingAESKey加密密钥
  "token": "aklsdjflkajsdflk;jasdlkfjlaksdjf", //对应微信接收消息的token
  "secretword": "aslkdfjlaksdjflkajsdf;cf1e",  //中转服务器的验证口令
  "headerserver": "nginx",                    //中转服务器伪装为何种服务器信息
  "fakebody": "<html><body><h1>It works!</h1></body></html>",  //中转服务器伪装页面
  "targeturl": "https://88.88.88.88/",  //对应微信接收消息的中转服务器URL
  "bdyykey": "asdkfjlkjLKJDLKSDJF",     //百度AI语音识别 key
  "bdyysecret": "SKLDJFKLSJDFSlkajsdfkljalsdjf",  //百度AI语音识别 secret
  "cuid": "f123sadfj23234",    //百度AI语音识别ID
  "port": 443,                 //中转服务器开放端口
  "ssl": true,                 //中转服务器是否是https
  "checkurl": "/check",        //中转服务器校验URL
  "certfile": "./server.pem",  //证书文件
  "keyfile": "./server.key",   //证书文件
  "cmdfile": "/tmp/test.txt"  //扩展指令文件路径
}

针对config.json中的cmdfile的配置文件信息说明如下:��

开灯::http://192.168.1.14/led/on
关灯::http://192.168.1.14/led/off
温度::http://192.168.1.14/temp
湿度::http://192.168.1.14/humi

以::为分隔符,其中的IP地址为ESP8266连接WIFI获得的IP地址,可以自行扩展指令


QQ邮箱建立授权码的方法如下:

QQ邮箱帮助

微信开通QQ邮箱提醒方法链接如下:

百度经验

个人开通企业微信的方法如下,只是个人使用不需要进行企业认证:

企微学院

在建立好的企业微信当中可以建立一个自建应用

企业自建应用

企业应用开启接收消息

企业应用接收消息

百度AI开放平台

百度AI开放平台

百度语音识别

百度语音识别

三极管控制风扇参考

杨仕航的博客

SIM900 AT指令手册

AT指令手册

EC20 AT指令手册

AT指令手册

ESP8266烧录

烧录过程

ESP8266固件

固件申领

ESP8266 httpserver

ESP8266 httpserver

问题

  • 在使用SIM900A 作为短信接收设备时,不建议使用联通卡,除非你确信附近的联通基站还在开通2G
  • 从个人的使用效果来看,极力推荐使用4G模块,因为不论是从性能上,还是稳定性以及安全角度来看,4G模块都是首选选择,其次建议购买天线。
  • SIM900A的AT指令与EC20的指令有些细节点上不一样,需要修改一下代码,我将会在代码当中注释出来
  • 编译好的二进制程序持续运行加入进rc.local文件,如果使用了4G模块,建议sleep 10秒以上,不然有极大概率会启动失败,怀疑是硬件本身没有初始化好设备文件导致的。
  • 腾讯的语音识别在企业版免费应用上未开通,只能使用百度的,总体感觉百度的语音识别相对腾讯要稍差一些.
  • ESP8266 是一个很不错的IoT开发模块,推荐大家购买

可扩展功能

  • 目前硬盘或主机的开关机,文件的下载, IoT的控制以及发送短信,拨打电话都已经实现。
  • 目前测试通过的是QQ邮箱,其他邮箱应该是同理的,需要做测试。
  • 经过验证,目前已经可以跑在jetson nano上了,不过需要定制内核并重新编译

gsm's People

Contributors

rungobier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gsm's Issues

远程操控拨打座机电话和家用电器控制

1、看了freebuf上的《探针盒子不用怕》的文章,很详实,很解渴,追到这里。
2、跟这个项目有关,也跟文章中的描述有关,有两个问题想请教如何开展:

一、家里有一部座机电话,号码为1234567。人在外,想用手机通过某种方式(目前看raspberry pi or ardinuo)实现,手机发送指令,激活家里的座机电话自动拨出号码 ,在对方的手机上或者是座机上显得是我家里的座机电话号码。 这种方式有没有什么可以指教的方案,或者是作品?

二、“探针”文章中提到可以用raspberrypi实现家里的电器的物联网,这方面我有极大的兴趣,期待您的进一步更新,因为您这儿看上去专业、详实、解渴。如果可能,我愿意参与其中。

注:目前我有一块第二代的树莓派,256M内存,B型。

大哥 谢谢先。有没有思路实现远程拨打电话的远程遥控发短信的功能?

现在能实现查看收到的短信。请问有没有可能实现远控控制发短信,比如qq的验证码有的时候要求你发送指定内容到知道号码来验证。
还有就是远程通话的功能,我目前是通话来电转移实现接电话,但是有没有可能可以远程控制拨号,有的时候银行要求指定的去电手机才能提供服务。谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.