openwrt下实现定时短信推送

记录一下自己的兴趣折腾:实现路由器每早定时向手机发送天气预报短信。

主要涉及到3个方面:1:短信推送平台  2:linux shell编辑 3:交叉编译等环境搭建


具体实现如下:

先是注册了一个阿里大于的账号,里面提供了短信推送服务,会给你一个短信发送api。下载好官方提供的sdk后就可以将代码加以修改进行交叉编译了。

然后编写shell,shell中主要实现内容是对中国天气网发送curl请求,然后获取返回的内容,截取出有用信息。

最后将交叉编译好的代码和shell进行相互配合,放入路由器后配置linux定时任务文件,实现每天定时调用shell向手机发送天气预报短信。


主要碰到的问题如下:

1交叉编译工具链的获取:根据路由器的主控型号下载openwrt SDK工具包,然后menuconfig的时候勾选上toolchain,这样在编译的时候他就会把这个架构的工具链下载下来,具体路径是staging_dir目录下的toolchain-mips_xxx文件夹里面

2官方提供的sdk源码加以修改url和自己的相关信息(最开始没认真看忘记修改他例程的url了)

3将sdk交叉编译时会碰到curl库的丢失,需要下载curl源码,将curl源码交叉编译出curl库,再进行编译sdk才能通过,具体命令类似如下:

./configure --prefix=/home/he/curl/  CC=mipsel-openwrt-linux-gcc --host=mipsel 

4shell脚本编写时,直接调用curl请求,网站返回值却是一堆乱码,上网查了一下是由于返回信息压缩了,需要进行如下处理:

        curl -H "Accept-Encoding: gzip"  http://wthrcdn.etouch.cn/weather_mini?citykey=101270101 -s | gunzip

5shell中指定sdk运行路径记得改为绝对路径

你可能感兴趣的:(linux)