标准版
#第四届立创大赛#扫码开关模块

创建时间:5年前

项目主题:IoT(物联网)

描述

<p>注:*为必填项。</p> <p>【请在报名阶段填写 ↓】 *  简要介绍作品: 通过扫描特定的二维码,使用微信支付一定的金额后,对应的设备会运行一定的时间。运行过程中设备可暂停,可终止执行。并记录帐单,余额下次扫码依旧可用。</p> <p>【请在竞赛阶段填写 ↓】</p> <h1>*  一、作品详情:</h1> <h3><strong>1.1 硬件部份:</strong></h3> <p>采用ESP8266作为主控,通过74HC595扩展IO驱动3颗8段数码管用于显示余量时间,通过8050驱动一个继电器用于设备功能的实现。为了开发方便,使用CH340 USB串口芯片实现电脑与目标的程序下载,程序DEBUG。</p> <h3><strong>1.2 电路软件部份:</strong></h3> <p>设备的程序使用ESPRESSIF官方提供的ESP8266-NONOS-SDK做为模板,使用C语言开发。通过MQTT与服务器进行数据交换。</p> <h3>1.3 MQTT服务器的架构:</h3> <p>设备的MQTT服务器,使用ERLANG开发的开源EMQ搭建</p> <h3>1.4 服务器软件部份</h3> <p>前台使用成熟的VUE-ELEMENT-TEMPLATE做为前端框架,后端使用THINKPHP,与MQTT通讯的部份则使用SWOOLE,用户扫码的手机网页与SWOOLE中间通过WEBSOCKET进行通讯。</p> <h1>*  二、描述作品所面临的挑战及所解决的问题:</h1> <p><strong>2.1、</strong> 因为外围电路使用的IO有点儿多,但ESP12F模块提供的IO数量有限,因此连带GPIO9,GPIO10都有使用,程序一旦运行操作GPIO9就出现了复位的情况,通过对ESP12F原理图的查询,及SPI存储芯片的查询,修改ESP12F内部的电路后,电路方能正常使用</p> <p>**2.2、**做为一个电工要编写服务器的程序,跨度有点儿大,虽然有HTML,PHP等的基础,但一旦涉及框架,则无所适从,特别涉及到的VUE-ELEMENT-TEMPLATE主要使用JS代码,THINKPHP则是PHP语言,以及实时通讯技术所用到的WEBSOCKET与SWOOLE都需要通过查询资料实现。碰到许多的问题,有些问题无法解决通过相关的技术群,获得不少群友的支持以及热心解答,在些一并表示衷心感谢。</p> <p>**2.3、**这个项目最大的挑战还是在服务器上面,主要是服务器进程隔离以及并发带来的问题,在操作数据库,数据缓存方面,总是会造成多次计费,生成多张记录等。直到提交项目的前一天晚上,我都一直在解决这部份问题直到零辰二点。但是问题最终还是解决了,依靠了SWOOLE提供的自旋锁,感谢韓天峰团队提供了这么好用的PHP扩展库。</p> <p>**2.4、**做这个项目,辛苦我们家的小将,帮助勒板,焊板,上立创来完善资料,他虽然在专业方面基础不足,但有无与伦比的好奇与兴趣,一起热心处理解决问题,中间也录制了一些他工作的视频,但是因为时间快到了,写好的代码部份还发现BUG,估计没得时间剪辑了,只能对此表示遗憾了。</p> <h1>*  三、描述作品硬件、软件部分涉及到的关键点:</h1> <p>**3.1、**硬件部份使用ESP8266做为主控芯片,没有其它MCU,3颗FJ11001BH的数码管显示余量时间,5颗LED显示连网、工作状态; **3.2、**使用微信支付,扫码设备二维码后支付一定金额,购买相应的余量时间,余量每次使用扣减相应的时长,剩余时长下次可用; **3.3、**设备与服务器之间使用MQTT协议,手机页面与服务器间使用WEBSOCKET;THINKPHP与SWOOLE间使用REDIS;</p> <h1>*  四、作品材料清单:</h1> <table> <tr> <th></th> <th></th> <th>BOM清单</th> <th></th> <th></th> </tr> <tr> <td>名称</td> <td>封装</td> <td>规格</td> <td>位号</td> <td>用量</td> </tr> <tr> <td>贴片电阻</td> <td>0603</td> <td>NC</td> <td>R25, R27, R29</td> <td>3</td> </tr> <tr> <td>贴片电阻</td> <td>0603</td> <td>0</td> <td>R28</td> <td>1</td> </tr> <tr> <td>贴片电阻</td> <td>0603</td> <td>101</td> <td>R12, R13</td> <td>2</td> </tr> <tr> <td>贴片电阻</td> <td>0603</td> <td>102</td> <td>R3, R4, R10, R14,R15, R16, R17, R20, R23</td> <td>9</td> </tr> <tr> <td>贴片电阻</td> <td>0603</td> <td>103</td> <td>R2, R5, R6, R7, R8, R9, R19, R24, R26, R1, R11, R18, R22</td> <td>9</td> </tr> <tr> <td>可调电阻</td> <td>RES-ADJ-TH_3PIN-V-L9.50-W4.85-PITCH2.50</td> <td>103</td> <td>R21</td> <td>1</td> </tr> <tr> <td>电容</td> <td>CASE-B_3528</td> <td>NC</td> <td>C7</td> <td>1</td> </tr> <tr> <td>电容</td> <td>0603</td> <td>100nF</td> <td>C8, C9, C10</td> <td>3</td> </tr> <tr> <td>电容</td> <td>0604</td> <td>104</td> <td>C1, C2, C3, C5</td> <td>8</td> </tr> <tr> <td>电容</td> <td>CASE-B_3528</td> <td>10uF</td> <td>C4, C6</td> <td>2</td> </tr> <tr> <td>发光二极管</td> <td>LED-3MM/2.54</td> <td>R</td> <td>LED1, LED5</td> <td>2</td> </tr> <tr> <td>发光二极管</td> <td>LED-3MM/2.54</td> <td>G</td> <td>LED2</td> <td>1</td> </tr> <tr> <td>发光二极管</td> <td>LED-3MM/2.54</td> <td>B</td> <td>LED3</td> <td>1</td> </tr> <tr> <td>发光二极管</td> <td>LED-3MM/2.54</td> <td>Y</td> <td>LED4</td> <td>1</td> </tr> <tr> <td>贴片二极管</td> <td>SMA(DO-214AC)</td> <td>M7</td> <td>D1, D2</td> <td>2</td> </tr> <tr> <td>数码管</td> <td>FJ-10106-24MMX34MMX10.5MM-PITCH2.54MM</td> <td>FJ11001BH</td> <td>LED6, LED7, LED8</td> <td>3</td> </tr> <tr> <td>三极管</td> <td>SOT-23(SOT-23-3)</td> <td>CJ2301 S1</td> <td>Q1, Q4, Q6, Q7</td> <td>4</td> </tr> <tr> <td>三极管</td> <td>SOT-23</td> <td>8050M-D</td> <td>Q2, Q5, Q8, Q9</td> <td>4</td> </tr> <tr> <td>三极管</td> <td>SOT-23(SOT-23-3)</td> <td>S8550</td> <td>Q3</td> <td>1</td> </tr> <tr> <td>连接座</td> <td>CONN-TH_3PIN-H-PITCH5.08-L_DB2ER-5.08-3P</td> <td>DB2ER-5.08-3P</td> <td>CN1</td> <td>1</td> </tr> <tr> <td>连接座</td> <td>XH-4A</td> <td>XH-4A</td> <td>CN2, CN3</td> <td>2</td> </tr> <tr> <td>排阻</td> <td>0603_X4</td> <td>102</td> <td>RN1, RN2</td> <td>2</td> </tr> <tr> <td>DC005</td> <td>DC-5020</td> <td>DC005-2.0MM</td> <td>DC1</td> <td>1</td> </tr> <tr> <td>继电器</td> <td>RELAY-TH_5PIN_HF3FF-012-1ZS</td> <td>HF3FF/005-1ZS</td> <td>K1</td> <td>1</td> </tr> <tr> <td>按键</td> <td>KEY-6.0*6.0-2</td> <td>SW 6X6X6</td> <td>KEY1, KEY2</td> <td>2</td> </tr> <tr> <td>ESP-12F</td> <td>LGA22-2.0-24X16MM</td> <td>ESP8266-12F</td> <td>U1</td> <td>1</td> </tr> <tr> <td>光耦</td> <td>SOP-4_4PIN-L4.83-W10.20-PITCH2.54-BL</td> <td>CYPC817(C-TP2)</td> <td>U2</td> <td>1</td> </tr> <tr> <td>稳压芯片</td> <td>SOT-223</td> <td>AMS1117-3.3_C165482</td> <td>U3</td> <td>1</td> </tr> <tr> <td>集成电路</td> <td>SOP-16_150MIL</td> <td>U74HC595AG-S16-R</td> <td>U4</td> <td>1</td> </tr> <tr> <td>集成电路</td> <td>SOP-16_150MIL</td> <td>CH340C</td> <td>U5</td> <td>1</td> </tr> <tr> <td>USB接口</td> <td>U-F-M5DD-Y-1</td> <td>U-F-M5DD-Y-1</td> <td>USB1</td> <td>1</td> </tr> </table> <h1>*  五、作品图片上传:(PCB上须有大赛logo标识并拍照上传,若无视为放弃参赛)</h1> <h2>成品正面</h2> <p><img src="//image.lceda.cn/pullimage/ZCDdrgDKzuHuuCno8JhRY7dIgrUXiRnOOavzCzFX.jpeg" alt="微信图片_20190917145441.jpg"></p> <h2>成品背面</h2> <p><img src="//image.lceda.cn/pullimage/iMWTYd8D7FMYTGOZ7CSuhEtAmoUgjT3cVpxdViY0.jpeg" alt="微信图片_20190917145452.jpg"></p> <h2>扫描设备二维码</h2> <p><img src="//image.lceda.cn/pullimage/9GDXqjH38LwzOXw5UrB4EPRafGW3VEcIWbORxDj4.png" alt="image.png"></p> <h2>购买服务</h2> <p><img src="//image.lceda.cn/pullimage/nf7zfjiWOjnVMgBYGAjn4We8gss67O7gz9pK69Dm.jpeg" alt="1.jpg"></p> <h2>微信支付</h2> <h2>支付成功</h2> <p><img src="//image.lceda.cn/pullimage/ZNhAbyrmcIIdZJKwV3KjjaYyC4eEn1yG5Fyy3ARX.jpeg" alt="3.jpg"></p> <h2>开始运行</h2> <p><img src="//image.lceda.cn/pullimage/5tqkLu41Uue0qasGyWkVwdtbhBA3y6j7bD3ovYAG.jpeg" alt="2.jpg"></p> <h2>工作运行</h2> <p><img src="//image.lceda.cn/pullimage/yEuNqXYj5znvSZiKwKXr4F4ZC9hqn0JXzs7rZp2i.jpeg" alt="IMG_20190912_170253.jpg"></p> <h1>*  六、演示您的作品并录制成视频上传:(视频内容须包含:作品介绍;功能演示;性能测试;PCB上大赛logo标识特写镜头,若无视为放弃参赛)</h1> <p>体验网址:<a href="http://www.ekongyun.cn" target="_blank">http://www.ekongyun.cn</a> 帐号密码均默认,直接点击即可以登入, 所有删除操作,后端均截获不做执行,只在前端反馈</p> <p><a href="https://v.youku.com/v_show/id_XNDM3MDk4NTM2OA==.html?spm=a2h3j.8428770.3416059.1" target="_blank">产品操作视频</a> <a href="https://v.youku.com/v_show/id_XNDM3MDk4NTM2OA==.html?spm=a2h0j.11185381.listitem_page1.5!2~A" target="_blank">https://v.youku.com/v_show/id_XNDM3MDk4NTM2OA==.html?spm=a2h0j.11185381.listitem_page1.5!2\~A</a></p> <h1>七、开源文档:</h1> <p>硬件部份代码: 链接:<a href="https://pan.baidu.com/s/1_VAVCGFk5n8tlOtfCmx0bQ" target="_blank">https://pan.baidu.com/s/1_VAVCGFk5n8tlOtfCmx0bQ</a> 提取码:zh8u 复制这段内容后打开百度网盘手机App,操作更方便哦</p> <p>管理页面部份代码: 链接:<a href="https://pan.baidu.com/s/15w0cc-nEuhZFxwbHqVosAQ" target="_blank">https://pan.baidu.com/s/15w0cc-nEuhZFxwbHqVosAQ</a> 提取码:gcal 复制这段内容后打开百度网盘手机App,操作更方便哦</p> <p>服务器守护程序代码: 链接:<a href="https://pan.baidu.com/s/1OaP51NyaqHdmHPyVp5ZPZw" target="_blank">https://pan.baidu.com/s/1OaP51NyaqHdmHPyVp5ZPZw</a> 提取码:bnh2 复制这段内容后打开百度网盘手机App,操作更方便哦 NOTE:此为基本功能测试实现程序,现实际使用并非此代码, 此代码仅提供爱好者测试,有并发操作问题。</p>

文档

PAYMOD

PAYMOD

BOM

暂无

附件

附件名 下载
69e38de7593536288cf61eed4384df1b.mp4
体验二维码.doc

评论(8)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>设计成WIFI模块感觉有一定局限性,如果能顺便加上GPRS,那就通吃各种应用环境了。信号不好的场所用WIFI,没有WIFI的地方用GPRS。</p>
立创电赛 回复
<p>温馨提示:距项目提交截止还有11天,记得完善作品上传哟!</p>
Junping1982 回复
<p>@LCDS 谢谢提醒!</p>
Junping1982 回复
<p>@LCDS 谢谢建议,所有8266无GPRS数据通讯功能,后面做成实物产品的时候期望能实现到</p>
Junping1982 回复
<p>@LCDS 赶在尾巴上,已经完善提交了</p>
jixin001 回复
<p>这个项目很棒哦。联想到了手工耿发布的“扫码支付板凳”,不过他的是GPRS的通信,WIFI的需要配网是痛点。如果想商用建议使用付费的公共云平台比如阿里云IOT平台,这样能做到有效的前后端分离,硬件端也能彻底解耦。另外数码管驱动电路建议使用专用驱动芯片比如CH455G.</p>
Junping1982 回复
<p>@jixin001 感谢您的好建议,这个是个实验品,后面做产品的时候会用到ALIOS-THINGS来做,ALIOS-THINGS已经包括APP,配网等。云端服务的确是商业的可能会比较可靠一点。自己布置的服务平台涉及后期维护的问题,是一个很大的痛点。另外包括GPRS等的实现只是硬件端 的不同而已。其实这个项目电路及电路的软件时间都很短,为了实现后端的服务,跟UI前台花了几个月的时间。碰到了各种问题,得到了各路大侠的支援,需要特别鸣谢</p>
Junping1982 回复
<p>支付方面,选用微信支付也是一波三折,阿里支付比微信支付更容易实现,后面做成产品的时候,打算根据来源的不同选择不同的支付通道,也就是微信+支付宝支付根据来源自动选择。</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow