紧接上篇文章(《Galileo开发板+微信公众平台实现简单的物联网家庭监控》( http://blog.jcix.top/2015-11-27/galileo_wechat/ ) ), 以下功能做了改进: * 实现了Galileo开发板上用USB摄像头+python版opencv监控并通过微信公众平台进行异常报警的功能。 * 通过connman实现了wifi网络的自动连接和随时修改功能。 * 通过post到服务器,实现了微信控制led灯亮、灭或者光控的功能。 视频监控功能的实现 (完整代码在github: https://github.com/zhangjaycee/galileo_pys/blob/master/cam_wechat.py ) 1.图像采集 galileo支持python的opencv库,这给简单的图像处理提供了极大的便利。 图像采集: cap = cv2.VideoCapture(0)#打开摄像头 cap.set(3,320) cap.set(4,240) while True: ret, frame = cap.read() 2.图像处理 我们要做键控,所以可以记录第一帧,然后通过帧间差别进行报警。 cap = cv2.VideoCapture(0) <!–more–> cap.set(3,320) cap.set(4,240) avg = None lastUploaded = datetime.datetime.now() motionCounter = 0 normal_count = 0 start_flag = 0 time.sleep(10) while True: […]

上次写的博客,介绍了下刚拿到galileo开发板的时候如何进行折腾。 上次折腾完后,因为我发现galileo本身和一个装着linux的arduino/pc一样,那么用它来实现一些物联网应用会比较简单,又赶上本学期的工程设计课作业,所以初步实现了一个能用微信监测室内温度和拍摄室内照片的小型物联网系统。 参考: 《鼓捣Galileo开发板的一些吐槽》( http://blog.jcix.top/2015-11-04/introduce_galileo/ ) 记录下实现过程。由于本人表述能力较差,采用简述加大量外部连接的方式进行记录。 系统功能 用微信获取室内当前温度或者一张较为实时的照片。 通过亮度传感器自动自动控制LED的亮、灭。 基本结构 系统实现最初的想法,就是让微信公众平台和开发板通过互联网直接进行信息传递,但是因为微信公众平台对我们所搭建服务器采用get和post方法进行通信,所以在没有公网ip的校园网环境,一般只能租云服务器或者VPS进行中转。 这样,系统的基本结构就变成了: 开发板外围<–>Galileo开发板<–>云服务器<–>微信公众平台<–>手机微信<–>用户 可见整个通信链将用户和外围器件连接起来,实现了简单的物联网。

博客由来 今年暑假的时候就听说github上可以免费搭建静态博客。当时虽然看了看,但还是因为服务器、网页等知识欠缺太多,几次想动手都没有坚持下去。 最近看了看Nginx的有关知识,算是对http服务器的搭建有了个大概了解。后来看到了docker,就买了《第一本docker书》这本书看了看,发现上边有些例子写的挺不错,其中就有jekyll+Apache搭建静态博客的例子,照着做一遍后,我决定用Nginx作服务器,用docker做载体,用jekyll作为网站生成工具,将这个静态博客搭建在阿里云服务器上。 于是这个博客最终在10月18日时算是初步搭建成功了,现在写这篇总结应该是算有点晚,但是由于很多细节我还欠缺很多,而且搭建博客所涉及的方面太多,很多部分我只是照搬他人成果,所以关于一些细节问题以后还要深入学习,然后再总结出来,请大家和自己期待~ 资源和费用 服务器: 我用了最便宜的那种阿里云服务器,但是搭这个博客绰绰有余。 价格:学生优惠的9.9元/月。 域名: 在万网申请的域名(貌似和阿里云并在一起了,所以做域名映射非常友好简单) 价格:买了一年,5元/年(但是再续费就贵多了) 代码托管(不是必要的): 用于存我的博客目录,包括这个小的静态网页的所有的一切。 价格:免费(github student pack) ——如此看来,搭建个博客费用是很低的,一个月10块。 组成一 :jekyll jekyll是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如Disqus。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。 ——百度百科 个人感觉,jekyll是一个像使用模板一样简单的工具,只要你按照他的文件夹结构,将对应的文件放到对应的位置,然后jekyll build一下,你的网站就生成好了!。。而且配置可以集中在一个_config.yml文件中,真的很方便,即使像我一样以前没有接触过,把别人写的博客目录拿过来,也可以仿照着改成自己想要的样子。 所以,我这个博客采用的就是@RainyAlley提供的模板(github页面)目录,然后做了一些自己的修改。 关于jekyll的介绍和文档和介绍,这个是官网的中文版: http://jekyll.bootcss.com/ 组成二 :nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布78。 ——百度百科 nginx肯定比jekyll的知名度高很多,他就像apache是个服务器软件。nginx可以做网站服务器,反向代理(过几天我还要写个关于反向代理的总结,这里先占位。。过几天贴链接),邮件服务器…… 在搭建本博客中,nginx起的作用就是一个静态网站服务器,只要在相关的配置文件中写好网站的目录,写好对应的域名,就可以运行起来了~~ 组成三 :docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 […]

第一次构建Docker镜像,想照着书弄个jekyll的镜像玩玩,结果两天了,到现在还没成功。记录下国内环境实践和书本上的不同。。。 首先官方的apt-get源太慢了 要换成国内的速度还可以接受一点:(原文链接) 做法: Dockerfile 中 RUN apt-get update 前添加一句: RUN sed -i ‘s/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.163\.com\/ubuntu\//g’ /etc/apt/sources.list gem国内源貌似也不行 (原文链接) 做法: Dockerfile中添加: RUN gem sources –remove http://rubygems.org/ RUN gem sources -a https://ruby.taobao.org/ RUN gem sources -l