电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>使用PIR传感器作为触发器拍摄照片并将其上传到tumblr

使用PIR传感器作为触发器拍摄照片并将其上传到tumblr

2023-06-12 | zip | 0.53 MB | 次下载 | 免费

资料介绍

描述

使用 PIR 传感器作为触发器拍摄照片并将其上传到 tumblr。

配置你的云盾

有两种配置 Yùn 的方法。

第一个是上传示例 YunFirstConfig并设置所需的参数

打开您的 Arduino IDE 并转到example -> Bridge -> YunFirstConfig

如果您使用的是 YunShield,请务必选择它所连接的板的名称,而不是 Yun 板!

上传草图并打开串行监视器。您将在下面的屏幕截图中看到一条消息。

 
poYBAGSBsfGABQU-AABFEuU3qFY203.png
 

按照几个简单的步骤为您的开发板设置名称、密码和网络现在您可以将 Yùn 连接到互联网了!

配置开发板的第二种方法是通过浏览器进行。

在开始之前确保你的 yun-shield 处于访问模式。在您的计算机上的可用 WiFi 网络中检查云的名称。它应该是这样的

Arduino Yun-90A2DAF200DI

连接到该网络并在浏览器中键入地址

192.168.240.1

现在你应该被重定向到 yun 的配置页面,你可以在这里设置名称、密码和你想要连接的 WiFi 网络。

注意默认密码是arduino

 
pYYBAGSBsfSABWVFAABqag4iI-8604.png
配置页面
 

完毕!现在您的云盾有了名字和密码,并且可以上网了!

拍照

对于这个项目,我们使用了 quickcam communicate stx 这是一个廉价且兼容 linux 的网络摄像头,我们可以通过 USB 连接到我们的 yun-shield。

在进行这项工作之前,我们需要下载一些驱动程序:

打开你的终端并通过 ssh 连接到 yun-shield(确保你的计算机连接到 yun-shield 的同一网络)并下载所需的包

ssh root@name_of_your_yun.local
opkg update
opkg install kmod-video-gspca-zc3xx
opkg install python-openssl
opkg install fswebcam
opkg install mjpg-streamer

请注意,许多网络摄像头都适用于 UVC 驱动程序。在这种情况下使用命令:

opkg install kmod-video-uvc libwebcam libuvc

现在我们可以使用此命令拍照并存储它们

fswebcam test.png

图片将保存为.png 并命名为test。

为了让事情更有条理,我们可以创建一个文件夹来保存照片,只需在终端(通过 ssh 连接到 yun-shield)输入命令:

mkdir photos

现在要将照片保存在该文件夹中,请使用命令

fswebcam -r 640x480 photos/my_photo.jpg

我们刚刚拍了一张 640x480 分辨率的照片,将其命名为 my_photo.jpg并将其保存在文件夹photos 中。

将照片上传到 tumblr

在上传任何照片之前,我们首先需要创建一个连接到我们博客的 tumblr 应用程序。为此,请访问 https://www.tumblr.com/oauth/apps 并注册一个新应用程序。我们需要此应用程序来获取向 tumblr 发出 http POST 请求所需的所有令牌。

在表格中填写应用程序名称、描述和电子邮件联系方式。您可以使用您想要的任何链接填充其余字段,例如默认回调 URL,我们不会将它们用于此项目。

 
poYBAGSBsfaAWtraAACAg0uMSE4070.png
注册您的应用程序
 

现在您应该可以访问您的 OAuth Consumer Key和 OAuth Consumer Secret将这些标记保存在文本文件中,我们将在接下来的步骤中需要它们。 

现在我们还想获得OAuth TokenOAuth Token Secret

转到Tumblr API 控制台并使用您已有的令牌对您的应用程序进行身份验证,然后在右上角按显示密钥按钮。你应该看到类似的东西: 

 
pYYBAGSBsfqAOwk_AADbYRXcnEA895.png
您的凭据
 

现在我们有了令牌,我们可以写下将完成所有工作的 python 代码。您可以复制并粘贴下面的代码或从本教程的软件部分下载它。

请记住用您的凭据填写空白字段。

import glob
import json
import os
import  time
import urllib2
import urlparse
import oauth2
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
 
class APIError(StandardError):
   def __init__(self, msg, response=None):
       StandardError.__init__(self, msg)
 
class TumblrAPIv2:
   def __init__(self, consumer_key, consumer_secret, oauth_token, oauth_token_secret):
       self.consumer = oauth2.Consumer(consumer_key, consumer_secret)
       self.token = oauth2.Token(oauth_token, oauth_token_secret)
       self.url = "http://api.tumblr.com"
 
   def parse_response(self, result):
       content = json.loads(result)
       if 400 <= int(content["meta"]["status"]) <= 600:
           raise APIError(content["meta"]["msg"], result)
       return content["response"]
 
   def createPhotoPost(self, id, post):
       url = self.url + "/v2/blog/%s/post" %id
 
       img_file = post['data']
       del(post['data'])
       req = oauth2.Request.from_consumer_and_token(self.consumer,
                                                token=self.token,
                                                http_method="POST",
                                                http_url=url,
                                                parameters=post)
       req.sign_request(oauth2.SignatureMethod_HMAC_SHA1(), self.consumer, self.token)
       compiled_postdata = req.to_postdata()
       all_upload_params = urlparse.parse_qs(compiled_postdata, keep_blank_values=True)
 
       for key, val in all_upload_params.iteritems():
           all_upload_params[key] = val[0]
 
       all_upload_params['data'] = open(img_file, 'rb')
       datagen, headers = multipart_encode(all_upload_params)
       request = urllib2.Request(url, datagen, headers)
 
       try:
           respdata = urllib2.urlopen(request).read()
       except urllib2.HTTPError, ex:
           return 'Received error code: ', ex.code
 
       return self.parse_response(respdata)
 
register_openers()
 
#Insert here your tokens
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
OAUTH_TOKEN = '****'
OAUTH_TOKEN_SECRET = '****'
 
DIR = 'photos/'
FILE_MASK = '*.jpg'
BLOG = '****' # put here the name of your blog i.e. arduino.tumblr.com
 
 
api = TumblrAPIv2(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
 
for img in glob.glob( os.path.join(DIR, FILE_MASK) ):
 
   date  = time.gmtime(os.path.getmtime(img))
   post = {
       'type' : 'photo',
       'date' : time.strftime ("%Y-%m-%d %H:%M:%S", date),
       'data' : img,
       'tags' : "I am a tag",
       'caption' : "I am a caption"
   }
 
   try:
       response = api.createPhotoPost(BLOG,post)
       if 'id' in response:
           print response['id']
       else:
           print response
           break
 
   except APIError:
       print "Error"
       break
 
print "Done!"
 

为了在 Yun_Shield 上上传这个脚本,我们首先需要知道我们开发板的 IP 地址。通过 ssh 和数字连接:

ifconfig

 
poYBAGSBsfyAAWf_AABmLQu9rm4889.png
标题(可选)
 

现在我们有了 IP,我们可以继续上传脚本了。您可以使用此命令将your_path替换为文件夹的路径以访问 python 脚本。

scp /your_path/YunTumblr.py root@your_ip_address:

请记住还要上传您可以在软件部分找到的 auth.py 文件: 

scp /your_path/auth.py root@your_ip_address:

最后一步是下载 python 库。通过 ssh 连接到 yun shield 并使用这些命令

ssh root@name_of_your_yun.local
opkg update
opkg install python-pip
pip install oauth2
pip install poster

我们完了!!!

要测试它,你可以数字:

fswebcam -r 640x480 photos/my_photo.jpg
python YunTumblr.py

将它们上传到 tumblr 可能需要几分钟时间,但如果一切正常,您应该会收到照片的 ID 号作为回复。

 
pYYBAGSBsf-ACI_SAAAicbnbLrU000.png
 

接线

通常所有 PIR 传感器都带有三根电线。黑色的用于接地,红色的用于 5V,彩色的用于数据。

请注意,有时电线颜色可能会因传感器而异!

 
poYBAGSBsgKAdz0DAALhZJpDa8Q584.png
 

上传云盾草图

Yun Shield 可以插入每个 Arduino/Genuino 开发板。

插入扩展板后,您必须从 Arduino IDE 中选择扩展板连接到的板,而不是 Arduino Yun 例如,如果将 Yun Shield 插入 Arduino Leonardo,则必须在 IDE 中选择 

工具/板/Arduino Leonardo


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费