三寸立方 发表于 2015-7-31 16:26:46

Arduino WIFI相机,自动拍照Intel Edison 和云端储存

本帖最后由 三寸立方 于 2015-7-31 16:37 编辑

项目目标- 实现低成本的全天候延时拍摄,低耗电

项目描述
- 摄像头每30秒(可自定义)拍摄照片一张
- 通过WIFI无线传输到远程服务器
- 云端服务器进行储存和后续处理(后续部分不在本文中讨论,例如浏览、管理或导出为视频)

主要硬件
- Arduino UNO
- Adafruit CC3000 breakout https://www.adafruit.com/products/1469
- TTL serial camera, Adafruit TTL JPEG Camera (VC0706 chipset)http://www.adafruit.com/products/397

开源程序
除文中罗列以外,也可以在最后的附件中打包下载到我所提到的所有程序

测试CC3000 WIFI
- 下载所需库文件 https://github.com/adafruit/Adafruit_CC3000_Library
- 找到所需的测试程序 https://github.com/adafruit/Adaf ... /examples/buildtest
- 在测试程序里写入所需连接WIFI的SSID和密码#define WLAN_SSID       "yourNetwork"
#define WLAN_PASS       "yourPassword"
- 确保你使用了正确的加密方式
#define WLAN_SECURITY   WLAN_SEC_WPA2

- 连接CC3000




[*]GND - GND
[*]VIN - 5V
[*]CLK - Digital 13
[*]MISO - Digital 12
[*]MOSI - Digital 11
[*]CS - Digital 10

连接完成:


连接启动以后应可以测试通过,主要有以下内容:
- 问候语 Hello
- 启动 Initialising the CC3000,如果成功连接,打印出固件版本和MAC地址
- 列出所找到的WIFINetworks found
- 尝试连接并打印IP地址,通常是通过DHCP,也可以固定IP Attempting to connect ...
- 通过DNS解析指定网址的IP,并且发送ping指令,返回结果 Pinging 115.239.210.27...4 replies



如遇到更细节问题和疑难分析可参考厂商网页:https://learn.adafruit.com/adafruit-cc3000-wifi/overview


测试摄像头

- 下载摄像头的类库 https://github.com/adafruit/Adafruit-VC0706-Serial-Camera-Library
- 找到测试摄像头的程序: https://github.com/openhomeautom ... est/camera_test.ino
- 连接摄像头



和WIFI连接测试相比,主要改动是 2-5接口,9-13保持不变。
连接完成(乱七八糟,随便看看就好。。。):



运行测试:




服务器
- 在传输和运行之前,需要搭建所需的网络服务器,具体的LAMP环境就不在这里叙述了,假设你已经有了一个可以运行PHP的环境——或者你可以自己编写任何其他可以接受HTTP POST的服务端。
- 获取服务端代码: https://github.com/aetherwu/ardu ... b/master/camera.php
- 将Camera.php放置在服务器的根目录下,新建一个uploads目录,并且将该目录设置为777(简化起见: chmod 777 uploads)
- 测试是否可以顺利上传,使用upload.html,随便上传个啥试试 https://github.com/aetherwu/ardu ... /master/upload.html
- 如果上传成功,可以在uploads里面看到上传的图片,通常PHP的上传限制比较小,试试几百K的图片就好。其他有关的问题不在这里继续讨论

拍摄和传输
我所参考的资料里,作者给出的源代码无法成功运行,这里给出我调试后可运行的修改版本:
https://github.com/aetherwu/ardu ... ifi/camera_wifi.ino
相比原始代码,主要的更新有:

[*]CC3000上传锁死的问题(过长的request会因为Arduino不能处理而被丢弃导致上传失败)
[*]从服务器读取回馈以便更直观地了解到上传结果(比如可能的报错)



- 将程序中的SSID、密码、服务器IP地址改为你自己的配置(一共有三处,特别留意第一处都是逗号分隔,不是点号,而后两处都是标准的IP地址,点号分隔)

开始运行
一切正常的话,初始化摄像头、WIFI都会很快,只是传输的时候会很慢。



如果遇到报错信息,可以参考返回的信息加以调试,比如以下情况,是我忘了把camera.php放到根目录了:



程序会在传输完毕以后等待10秒再拍摄和传输下一张。如果一切顺利的话,就可以在uploads的目录里看到这款Arduino Wifi Camera所自动上传的照片。

下一步
- 拔掉USB数据线和电源线,插上电池(注意CC3000要求至少1A的稳定输入),就可以把这个自动牌照的相机部署到你想要的任何地方了。你可以修改拍照的时间以迎合更广泛的需求,比如每小时一次。- 修改第58行中的   cam.setImageSize(VC0706_640x480) 以获得不同或者更高的分辨率。但需要留意这样会让文件变大,导致在UNO里传输的时候速度更慢。


Intel Edison 的设想
一款个性化的钢铁侠聚能模块!
钢铁侠同学的胸灯大概是这个样子的:
http://pic.fxxz.com/up/2013-2/2013020809141176995.jpg


爱好者们的自制




网友自制反应堆效果图


但以上都只是灯好吗?。。。我们来做点儿更好玩儿的吧!


更加智能的个人反应堆:
- 通过激光蚀刻机和3D打印机制造外壳
- 发光部分换用小型液晶显示器,放置在透明丙烯下加保护,LED放在周边
- 底层放置Edison和电池
- 搭配云端服务器和iOS app


功能:
-以常规的LED制造电影上的核能堆效果(其实那都是糊弄人扯谈的,谁见过真的核能反应堆是那样的,激光枪的BIUBIU声还更真实些(误))
- 手机上设置你的微信号、QQ号、支付宝等信息
- 物理按钮,一键显示你的微信号,立刻扫码加人
- 物理按钮,一键显示你的支付号,立刻扫码收钱
- 手机一键上传你最喜欢的个性图片,支持定时轮换,一键变身绿灯侠/闪电侠/蝙蝠侠/Hello Kitty(大误),展示你的心情和大家分享

以下其实我也就只是想想,没打算真做,但只是说这个项目的可能性:
- 可选:计划支持GIF动图或者视频(需考虑Edison的可实现性)
- 可选:手机更新各种显示模式,发光模式。
- 可选:使用随身移动电池供其他穿戴设备充电,真正意义上的聚能中心。
- 可选:开放自身接口允许其他穿戴设备介入Edison的运算能力。
- 更多好玩儿可能性,充分展现个人魅力和个性,和朋友们交互游戏。


Juice 发表于 2015-7-31 16:34:24

黑科技饰品完全无法抵抗!!

大连林海 发表于 2015-8-1 12:06:37

可以实现云存储?

三寸立方 发表于 2015-8-1 15:52:45

大连林海 发表于 2015-8-1 12:06
可以实现云存储?

在文中使用的是自建的服务器。我建议在服务器做一个转发到其他云储存会比较简单。

三寸立方 发表于 2015-8-21 12:58:03

问一下有哪位同学有Edison可用的TFT高分屏吗?有320*240,2.4-2.8寸都可以。DFRobot开发包里的LCD虽然可用,但是没办法显示出一个QR码。我试了ITEAD的一个2.8 TFT,虽然可以编译通过,但是在Edison上用不了。我的基本需要是可以读取SD然后显示bitmap就行。

目前我看到最接近的一个是Seeed的一款,但是貌似他们也已经有更新款,不知道这法子还能不能用。
https://communities.intel.com/thread/51310

最好……能即插即用,让我能专注在编程上比较好……

chenhu 发表于 2015-9-10 14:45:23

三寸立方 发表于 2015-8-21 12:58
问一下有哪位同学有Edison可用的TFT高分屏吗?有320*240,2.4-2.8寸都可以。DFRobot开发包里的LCD虽然可用 ...

一般用LED阵列显示字体,如果需要高分屏,可以试试usb接口的。
页: [1]
查看完整版本: Arduino WIFI相机,自动拍照Intel Edison 和云端储存