×

带气象站的蓝牙移动遥控灯

消耗积分:0 | 格式:zip | 大小:0.02 MB | 2023-06-28

殷谷光

分享资料个

描述

描述

两年前,我创建了一个名为 Remote Lamp 的电子项目,作为我的新房间照明系统,具有可调节的 RGB、LED 和一些由电视遥控器控制的有趣功能。但是,我决定改进上述项目,因为它具有由于 LCD 屏幕连接而导致的冗余布线以及由于电视遥控器而导致的用户界面缺陷。所以,我把我对房间照明系统远程控制的最初想法变成了一个由我开发的安卓应用程序控制的移动远程照明系统。而且,为了摆脱冗余接线并在 Arduino Nano 上添加更多引脚有限的功能,我设计了一个名为 Mobile Remote Lamp with Weather Station V2.0 的 PCB(印刷电路板),其中包括所有内置组件连接。

检查我以前的项目。

PCBWay.com通过向我提供上述 PCB(带有气象站 V2.0 的移动远程灯)来赞助这个项目,而无需支付运费。您可以从这里检查他们的服务。

poYBAGN251CACxaOAAUsuu31ops821.jpg
 

第 1 步:设计移动遥控灯 PCB

我在 KiCad 上为这个项目设计了一个 PCB,命名为 Mobile Remote Lamp and Weather Station V2.0。我在这个项目中使用的所有组件和产品在板上都有内置连接和引脚输出。与其他替代品相比,我使用 Arduino Nano 作为开发板的中心,因为它的效率更高。查看引脚输出说明以查看电路板支持的所有组件。

您可以在 Schematics 上检查电路板原理图。

此外,您可以从这里购买和检查我在 PCBWay 上的 PCB 设计:)

pYYBAGN251OARG7JAADXAwyu6so364.png
 

引脚输出:

引脚代表板上支持组件的 Arduino Nano 引脚输出。

PCB Connector                   Components

 HC-06                           HC-06 Bluetooth Module
 D4  --------------------------- TX 
 D5  --------------------------- RX
 5V  --------------------------- 5V
 GND --------------------------- GND

 BUS_1                           I2C LCD Screen (BUS)
 A4  --------------------------- SDA
 A5  --------------------------- SCL
 5V  --------------------------- 5V
 GND --------------------------- GND

 DHT11                           DHT11 Temperature and Humidity Sensor
 D2  --------------------------- Signal
 5V  --------------------------- 5V
 GND --------------------------- GND

 L298N_1                         L298N DC Motor Driver
 A0  --------------------------- IN_1
 A1  --------------------------- IN_2
 A2  --------------------------- IN_3
 A3  --------------------------- IN_4

 Relay_2                         2-Way Relay
 D12 --------------------------- IN_1
 D13 --------------------------- IN_2
 5V  --------------------------- 5V
 GND --------------------------- GND

 RGB1                            RGB LED
 D9  --------------------------- R
 5V  --------------------------- 5V
 D10 --------------------------- G
 D11 --------------------------- B

 D4                              5mm Yellow LED
 D8  --------------------------- +
 
 D3                              5mm Blue LED
 D7  --------------------------- +

 D2                              5mm Green LED
 D6  --------------------------- +

 D1                              5mm Red LED
 D3  --------------------------- +

 J1 Connector (Spare Pins) 
 A6
 A7
 VIN
 3V3
 GND

警告:在板上的 Relay_2 连接器下,我连接了 A6 和 A7 引脚作为输出引脚;但由于芯片设置,它们不能用作输出。因此,我使用 J1 连接器上的备用引脚 - 12 和 13 - 作为 2 路继电器模块的输出引脚,因此 Relay_2 连接器上的 A6 和 A7 引脚成为备用引脚。

pYYBAGN251eAPEmtAAS2i2PGzzE017.jpg
 

焊接:

在我的 PCB 设计完成制造过程和交付后,我在板上焊接了公母连接器、220 欧姆电阻器、LED 和 RGB,以正确连接所有组件。

pYYBAGN2512AOd1ZAAdRhS7ZH-k192.jpg
 
poYBAGN2522ABJNxAAXHu3Vu4JQ032.jpg
 

第 2 步:开发 Android 应用程序(远程灯)

我想用我的手机控制我的照明系统及其有趣的功能:) 因此,我在 MIT App Inventor 2 上开发了一个名为 Remote Lamp 的 Android 应用程序,该应用程序具有用户友好的界面。它将特定字符传输到 HC-06 蓝牙模块对于每个命令,如命令中所述。您可以通过放大块图来检查应用程序的构建块。

您可以在 Google Play 上下载应用程序(远程灯):)

对于那些想直接在手机上下载的人,我将 application.apk 文件留在下载中。

pYYBAGN253GAdkWfAAMPRsrqWzk782.png
 

命令:

  • 单击天气按钮,激活天气屏幕 - 发送“t”。
  • 单击灯 (1) 按钮,打开或关闭灯 (1) - 传输“5”、“7”。
  • 单击灯 (2) 按钮,打开或关闭灯 (2) - 传输“6”、“8”。
  • 在 LED 滑块中选择选项,打开或关闭黄色、蓝色、绿色、红色 LED - 传输“0”、“1”、“2”、“3”、“4”。
  • 在 RGB 滑块中选择选项,将 RGB 颜色更改为红色、绿色、蓝色、黄色、紫色、青色、白色或关闭 - 传输“r”、“g”、“b”、“y”、“p”, 'w','o'。
  • 单击车轮按钮,转动左右车轮或停止它们 - 传输“a”、“s”、“d”。
  • 通过单击退出按钮打开通知栏:
  • 单击主屏幕按钮,激活主屏幕 - 发送“h”。
  • 单击确定按钮,关闭应用程序并断开蓝牙。
poYBAGN253SAdvdBAADp8gCWmVU898.jpg
 

第 3 步:编程 Arduino Nano

下载所需的库:

液晶_I2C | 下载

双氢睾酮 | 下载

  • 包括 SoftwareSerial 库以与 HC-06 蓝牙模块进行通信。
  • 启动蓝牙模块。将定义的 RX 引脚 (4) 连接到蓝牙模块上的 TX 引脚。
  • 包括 DHT.h 库。
  • 定义 dht 对象。
  • 包括 LiquidCrystal_I2C 和 Wire 库以运行 I2C 模块。
  • 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示。
  • 为 LCD 定义自定义字符。
  • 激活蓝牙模块并启动 DHT11 模块。
  • 由于 Arduino Nano 上嵌入了 SDA 和 SCL 设置,您无需采取任何进一步的操作来定义 Wire 库中的 SDA 和 SCL 引脚。
  • 定义主屏幕设置。
  • 在主屏幕初始化时将 RGB 颜色调整为白色。
  • getDataFromDHT11()函数中,使用内置函数获取天气信息 - 温度(摄氏度/华氏度)和湿度。
  • 等到 DHT11 模块准备好。
  • 如果命令 ('t') 请求天气屏幕,则打印由 DHT11 温度和湿度传感器生成的天气信息。
  • 如果蓝牙模块可用并从 Android 应用程序接收字符,则根据接收到的字符执行请求的命令。
  • changeColor()函数中,使用analogWrite()函数调整RGB LED 的颜色

奖励:通过取消注释changeBluetoothSettings()函数,使用 AT 命令更改蓝牙模块的默认设置 - 名称:远程灯,密码:1234,波特率:9600。

poYBAGN253iAHH0pAACpql40ngk377.png
 
pYYBAGN253uAWc9pAACBDf7jMnw995.png
 
poYBAGN2532AOsmmAACG994egtg242.png
 
poYBAGN254CAE9P7AABhzfe4Dro800.png
 
poYBAGN254OAKobKAABadOwDXZQ276.png
 
poYBAGN254aAOrjNAACDkXT4X8c468.png
 

特征

在尝试以下功能之前,请将 HC-06 蓝牙模块与您的手机配对,以通过应用程序(Remote Lamp)连接到开发板(Mobile Remote Lamp with Weather Station V2.0)。

 
 
 
poYBAGN254iAdHtoAABZtStc9TY769.jpg
 
1 / 3
 

1) 连接到 HC-06 蓝牙模块。

poYBAGN254uAI8uZAABlVSfSY14365.jpg
 
poYBAGN2546AY5HsAABqFuvyAwE916.jpg
 
poYBAGN253SAdvdBAADp8gCWmVU898.jpg
 

2) 调整板上RGB LED 的颜色。

 
 
 
poYBAGN255OAZKSwAADpG5u5JNY395.jpg
 
1 / 4
 
 
 
 
pYYBAGN255iAGjdPAAfmzBca2fc253.jpg
 
1 / 4
 

3) 打开或关闭板上的黄色、蓝色、绿色、红色 LED。

 
 
 
poYBAGN255uAOOVkAADps9Kdslo329.jpg
 
1 / 3
 
 
 
 
pYYBAGN255-AYCGCAAiXUritYJ4459.jpg
 
1 / 3
 

4) 打开或关闭灯泡 (1)。

pYYBAGN256KAdHxuAADqBUmT64c217.jpg
 
pYYBAGN256WANTMvAADq651FZhI265.jpg
 
poYBAGN257OAEtEjAAjyTUTg_NQ995.jpg
 
pYYBAGN257mAW7h-AAmFMTO0Teg396.jpg
 

5) 打开或关闭灯泡 (2)。

pYYBAGN257uAL5bRAADq9JZKCS8825.jpg
 
pYYBAGN2576ALUEVAADrYKlCXAE006.jpg
 
pYYBAGN258OAC9DZAAmWfURW9xY554.jpg
 
poYBAGN258mAVvFfAAmIVzik0Pc134.jpg
 

6) 激活连接到 L298N 电机驱动器的转向轮 - 左右。

 
 
 
poYBAGN258yADvr4AADygl69cCk590.jpg
 
1 / 3
 
 
 
 
pYYBAGN259WAJarhAAk5Xcntbmc023.jpg
 
1 / 3
 

7) 激活天气屏幕以显示由 DHT11 温度和湿度传感器生成的天气信息 - 温度(摄氏度和华氏度)和湿度。

pYYBAGN259iADhVTAADu7aFca1I433.jpg
 
pYYBAGN259-AG9PSAAct6uoUC1U625.jpg
 
poYBAGN25-SAR9YnAAfi3EguNWg624.jpg
 

8) 打开通知栏关闭应用程序或返回主屏幕。

poYBAGN25-aAD3ycAADn64ZmRNU732.jpg
 
pYYBAGN25-mAau3MAADrXg2XFuU991.jpg
 
poYBAGN25--AdyHtAAh6BaPvpbU219.jpg
 

连接

将所有支持的组件连接到板上相应的连接器(带气象站的移动远程灯 V2.0)。

poYBAGN25_SAO0EOAAhlRJWRcZA686.jpg
 
poYBAGN25_uAXE5hAAXGAAUn6UY596.jpg
 
pYYBAGN25_-AHnLKAARyLSXEx0Y759.jpg
 
pYYBAGN26AOALYYLAAYCqWzyRLk114.jpg
 

现在,您可以使用完成的设备创建您的灯设计 :)

我使用了我之前项目中的一个破旧的花盆,并使用热胶枪将木板与转轮固定在其上。

我将灯泡插头连接到 3 路插座适配器,并使用我的旧手机电池充电器在同一个适配器上为 Arduino Nano 供电。

为了给转向轮供电(连接到直流电机),我使用了 9V 电池。

poYBAGN26AuAbfJBAARddNNIhlc286.jpg
 
pYYBAGN26BCAbly8AAQsJq7BZTo442.jpg
 
poYBAGN26BSAbh4IAAT8RTbfY4E209.jpg
 

结论

完成每一步后,我将装置固定在天花板上并连接了电源线:)

poYBAGN26BqAOBipAAQpKVPxldo397.jpg
 
pYYBAGN26B6Ae9rzAAPsRNgnNDA547.jpg
 
pYYBAGN26CKAeMzUAAPyXWx4ma0443.jpg
 
pYYBAGN26CaAC8AMAAQpmyjdtCA771.jpg
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'带气象站的蓝牙移动遥控灯',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);