Departments of ECE and CS - Home
Asset Control SystemGroup Members Daniel WilliamsKenneth SullivanCarley BaltromitisCasey QuinnSenior Design Project Spring Summer 2016TABLE OF CONTENTS1.0 Executive Summary12.0 Project Description22.1 Project Motivation and Goals22.2 Ojectives42.3 Requirement Specifications63.0 Related Research83.1 Existing Similar Projects and Products83.1.1 KEES (Keyless Electronic Entry System)83.1.2 Euchner EKS93.2 Access Technologies113.2.1 RFID113.2.2 NFC123.2.3 Face Recoginition and Other Biometrics153.2.4 Magnetic Stripe183.2.5 Barcode Scanning203.3 Embedded CPUs/ Microcontrollers223.3.1 Embedded CPU/Computer223.3.2 Arduino Development Series243.3.3 MSP430293.3.4 ARM Microcontroller313.4 Switch353.4.1 Standard Relay353.4.2 BJT373.4.3 MOSFET373.4.4 SCR383.5 LCD/Touch Screen403.6 Enclosure433.6.1 Mechanical Mount433.6.2 Magnetic Mount443.7 Software UI/ System443.7.1 Database Options453.7.2 UI Platforms463.7.3 Software Requirements473.8 Possible Architectures and Related Diagrams483.8.1 Database Structure483.8.2 Device Communication Network51??3.8.2.1 STAR Topology51??3.8.2.2 IOT Style Topology523.8.3 Circuit Diagram533.8.4 Power Path533.9 Possible Architectures and Related Diagrams543.9.1 Database Structure543.9.2 Device Communication Network553.9.3 Circuit Diagram554.0 Related Standards584.1 Design Impact of Relevant Standards584.2 PCI Compliant Standards594.3 Data Security Standards605.0 Relistic Design Constraints645.1 Economic Constraints645.2 Time Constraints655.3 Environmental, Social, and Politcial Constraints655.4 Safety and Security665.5 Ethical and Health Constraints675.6 Manufacturability and Sustainability Constraints686.0 Project Hardware and Software Design Details706.1 Initial Design Architectures706.1.1 Initial Design Block Diagrams706.2 Hardware Design Details746.2.1 Switch Design746.2.2 Microcontroller Circuit Design796.2.3 Access Control Devices826.2.4 Embedded Computer856.2.5 LCD Touch Screen System866.2.6 Enclosure Design876.3 Software Subsystem886.3.1 Target Platforms89??6.3.1.1 Windows IOT896.3.2 Specific Hardware Requirements of Target Device896.3.3 Payment Processing/ Invoicing90??6.3.3.1 90??6.3.3.2 Stripe90??6.3.3.3 Intuit Payments91??6.3.3.4 Payment Conclusion91??6.3.3.5 Invoicing916.3.4 Data Structure6.3.5 Report Designer Softwares927.0 Project Prototype Construction and Coding967.1 Project Acquisition and BOM967.2 PCB Vendor and Assembly977.2.1 PCB Manufacturers97??7.2.1.1 Express PCB97??7.2.1.2 Advanced Circuits97??7.2.1.3 OSH Park987.2.2 PCB Summary987.3 Final Coding Plan988.0 Project Prototype Testing1008.1 Hardware Test Environment1008.2 Hardware Specific Testing1008.2.1 LCD Touch Screen Testing1008.2.2 Access Control Testing1018.2.3 Switch Testing1048.2.4 Microcontroller Testing1058.3 Software Test Environment1068.4 Software Specific Testing1089.0 Administrative Content1129.1 Milestone Discussion1129.2 Budget and Finance Discussion113Appendices121Appendix A: Copyright Permissions121Appendix B: Table of Figures122Appendix C: Table of Tables123Appendix D: Sources 1241 Executive Summary This project is aimed at creating an asset control and tracking system. It is a low cost solution that we are seeking with the ability to implement functionality of high end systems available. We first discovered the costs associated with custom systems can vary but be quite expensive. With this system we hope to allow for expandability and provide a robust backend system that will allow for expansion of assets and data. The system we are proposing is a more customized form of access control. Honywell for instance, has 3 different solutions for access control. All three are specifically for door entry and logging. Our system will look to expand the reach of this to controlling the actual hardware or appliances. Instead of restricting entry we will restrict the use of assets within the area controlled. This approach will allow for many people of different access levels to enter the same areas and still be restricted to what they are entitled to use. This control will also track the use of the assets and could submit reports to a project management system.The idea of a system like this could be expanded to further capabilities in network logons and server access. But the main goal of this project is to create an inexpensive version of customizable security systems. At the forefront of this project is scalability. In order for this system to be feasible it needs to allow for the addition of units and personnel. We want to ensure that the system can be setup with any number of units and people in the database. We also want to ensure that we can take units away or add more to the system. All of this will be done without compromising the integrity of the system. We will implement a security around the database and also around the login system. This is to prevent any unauthorized access to the user database that will govern access to everything in the system. There is a level of compatibility issues that may arise when interfacing with some equipment. Due to this issue we will need to resolve a best approach in an attempt to make the system universally acceptable. We will create this system using three separate control devices for demonstration purposes. If there are any unforeseen obstacles to the approach we use to control access we may need to augment the approach. We hope to achieve a maximum level of performance and usability with this system while keeping the cost low. There is a need for a more affordable solution for companies and entities that cannot use big budget spending to secure their assets. At the same time a professional polished look and feel to the system must be present. Our budget for this project is not funded or sponsored so the team will need to finance the system development. We hope to achieve our goals for the system while keeping expenditures below the $1000.00 threshold. 2 Project Description The project will encompass 3 main components. The main component of the system will be the database and communication hub. This system will provide communication between the relay devices and the database system. Each relay device will be comprised of a power switch and a control circuit. Each relay device will also include a display for status and sensor for RFID or NFC technology. Finally each relay will send and receive data wirelessly. For viewing and report of activity a user interface will be used as the final component. This component will be software mainly and will be independent from the main system software. It will be dependent upon the device used to access the system. In figure 2.0.1 is a basic illustration of the project components and interaction between them. Figure 2.0.1 – Basic project flow chart2.1 Project Motivation and Goals The motivation for the project came from an offering by the college of engineering for a system that encompassed a control of assets with a tracking a billing software for departmental billing. We evaluated the demands of Dr. Reza and found them to not be compatible with the demands of a senior design project. After consultation with Dr. Ritchie we decided to go ahead with a plan but under our own specifications. If the system proves to be desirable to Dr. Reza we will consider the licensing of the system to the college. We further will consider the possibility of the system being purchased by any possible vendors or interested parties to recover and possibly gain revenue. Originally we had a different project in mind but as we became familiar with the needs Dr. Reza put forth we saw the possibility a project that would allow us to utilize the skills we have learned over the course of the degree and also produce a product of considerable value at a low cost. The team was interested in the fact the project was scalable and dynamic in nature. The hardware parts of the system will allow us to fulfill the requirements of PCB board creation for the course. We will also be able to gain experience in board design tools for the creation of the 3 separate units. In evaluation of other existing systems one fact holds true throughout all of them. The cost associated with these customizable systems is quite high. Even with the high cost of these other systems ranging in excess of $3000.00 each system seems to be basic with the option to add onto it with an added expense. More importantly they all seem to focus on door entry with no real control over the appliances inside the room. This is where we want to emphasize our system. Another motivation for this project is to make it portable to mobile devices which will allow for authorized users to open up their account and view their usage which can help to verify usage was in fact authorized. Mobility may be implemented at other levels as well; as we see the convenience of being able to utilize mobile functionality to acquire access to assets can provide a means of centralized control. However administrative activities will be best suited for a web based interface to ensure detailed user manipulation of the system. This system will break through some of the barriers of secured access compatibility. We hope to bring the features of compatibility, scalability and stability to a low cost platform. Goals of our design team project span across many aspects of our project. The following bullet points will describe the individual goals of the project we hope to achieve:Login security - login functionality should be reliable and secure. User interface readability- the user interface should provide information in an organized and easy to read format.Administrative ability - The system should provide easy manipulation of the system for the addition of users and the addition of devices to the tracking system. Report capability - The user should be able to access user level appropriate reports on activity with the possibility of billing attributes if billable activities are occurring. Mobile access - We hope to provide the ability for users to access system and open access to devices. We also hope to provide data on activity through this medium. Tracking accuracy - The goal here is to ensure ( with testing ) the accuracy of the data recorded by activities. We want the data to be reliable and coherent. Access integrity for devices - The devices should only allow for operation when proper credentials are assigned to the device. The system should not allow unauthorized users to access the device. Database integrity - The database should provide a collection of data that can be accessed efficiently. It needs to allow for queries that are effective and absolute. Redundant data should be mitigated to ensure performance. Termination of user session - There should be an automatic cessation of any device in use after a certain amount of inactivity. Also if another user attempts to access the same device the previous user should be terminated from the session. Device control integrity - The devices will be governed by small devices that will allow operation or restrict it. Since the control is paramount to the system our goal is to ensure these small control devices meet any standards necessary. Exporting of data - Since there are many formats data can be assembled into we want to provide a standardized data format that could be utilized by external systems. System status - Users should be able to see current activity status and if a system is ready for use or in use. User feedback - A possibility of user feedback on a devices needs ( maintenance required, supplies needed etc…) so as to alert administrators for any possible issues. Standards - We will utilize predefined standards for the system Durability - We hope to achieve a durability with the control devices. Longevity of operation may not be able to be tested within the scope of this project but the overall durability can be evaluated during building and testing of the devices. 2.2 Objectives The objectives of the Asset Control system are to monitor assets, or tools. The reason why monitoring the assets is important is because in some atmospheres it is necessary that some tools are not allowed to be accessed by some people. Some users are not allowed to access any tools, either because they do not have the proper safety training or because they have no paid for the time they have used on different tools. There is a need at schools and in the workplace to track who is using which tools and in some cases charge users based on time used.The goal is to produce an inexpensive option that can be deployed to allow or deny access to specific items and track the usage so there is a capability to bill the user for the time they used the asset. The objective is to provide a means of tracking tools that is efficient and simple that can keep users safe and the entity supplying the tool paid and happy. The Asset Control System will be designed to be easy to add and remove tools that are available and who can have access to those tools so that after the Asset Control System is installed the purchaser can use the devices and system with ease. The ease of use and addition and subtraction of items that are allowed or denied access the Asset Control System is set apart from many competitors.An alternative objective the system could be used to enable activation of appliances within a house or office. If devices were connected to lights or televisions. The app could be used to activate the appliance in the house. Development of this aspect may be too ambitious for the time frame of this project but it would make for an interesting addition to a later version. Considering that you could essentially control your house from a mobile device. Even more intriguing would be to create control interfaces for air conditioning units that could also be controlled by the software. This idea is outside the scope of our initial objectives. But for basic application of the system proposed you could conceivably turn a light on or off through the use of the application even if you were not in the room. Security of the system may present an issue of trying to connect it to the internet thus allowing remote access and control from away from home. This alternative objective would not utilize tracking and reporting features for the purpose of billing. However, it could be a way to ascertain the last individual to turn on the light or television. In an office setting this would indicate authorized persons being in the location. In a home setting this would provide a parent with the ability to track device usage and control the useage of children. With these objectives in mind a grand objective seems to emerge. This grand objective is that the system should be built in such a way that it can be modified or customized for different uses. Scalability to expand the size of the device network and also the range. Function can be fine tuned for use of the asset control or appliance operation. 2.3 Requirements SpecificationsSoftware to be Produced:This software will provide a means to track and control access to specific equipment. In the design will be incorporated a database that includes all authorized personnel and log entries for what systems were accessed. An interface for users and an interface with superuser rights for project manager. There will be display of project steps and where the current standing is as well as a estimated time for steps and projected completion. Hardware to be produced:This Hardware will involve 3 device that interface with electrical outlets. These devices will communicate with a main system that will authorize activation and deactivation of the devices. Each of the devices will contain some sort of circuit that withdraws the power needed to run the equipment. Product OverviewAssumptions:The platforms for the software are to split up among the functionality needed. We assume the integration of html, php, Mysql and javascript will fulfill the desired functionality. However we have a particular expertise within the group involved in . These platforms are known to perform functions needed for the system. The relational schema for the database is assumed as we may find the need to change the structure. We could find the need to expand tables and create new relations for more efficient and simple query statements. Hardware needs are assumed to be standard with respect to normal wall outlet specifications. The interface between the devices and system will be wireless for easier implementation. The main system will need to send and receive wireless data and maintain a database for reports and queries. Stakeholders: Customers - These are the individuals who will pay for the product or try to acquire the product after its completion. This can sometimes be the same as the user but not always. Our customers will be managers, professors, and project leaders wanting to track and control the use of assets. . Users - These are the ones who will use our system. Each will use the system in a different way. For example, the administrator access will be allowed to add units and people to the system. Engineers - We take into account the people who will be building the system as well as maintaining and improving it. They will be able to estimate costs and development time due to their expertise. The software developers for this system will mainly be us until we grow into a larger company. 3 Related ResearchWhile developing any project it very important to consider the existence of similar products. It is also a necessity to research the other options to determine the significance of the existing products in relation to the project. It also will behoove the team to research different ways of achieving the technical specifications of the project. The different types devices that will meet our specifications will be researched for the most acceptable option. Most acceptable option should include these characteristics:Lowest costMost durableCompatibilitySmall sizeLowest optimal power needsWhile these traits are the objective some of them may not be absolute. For instance lowest cost may need to be forgon to achieve most durable and compatible. This is ultimately what we will find in the research of the parts. We will attempt to find the closest match to what we need to accomplish the project.3.1 Existing Similar Projects and Products 3.1.1 KEES (Keyless Electronic Entry System)The Keyless Electronic Entry System was a senior design project that was created in Fall of 2013. This project utilizes many different ways in which to open a door or grant entry. Though our project does not hope to accomplish this task specifically, we do hope to achieve the similar level of access control that this project achieved, through the use of several different techniques. Due to this fact some of our hardware and coding will be close to the arrangement in this project. Some of the means this group used for access that will be of interest to our group, as we proceed to research and fully gather our own ideas and plans for ACS, was how they utilized the RFID scanner, incorporated face recognition, and mobile app control of the KEES. These 3 features are items we wish to incorporate into ACS. The RFID they use as a base mean of granting access. If all else fails they employ the use of basic RFID scanning to allow a person into the room. Through image processing and face recognition KEES, it gives the user or administrator privileges to create a backlog and database of authorized users, just as our group plan to do with ACS, although possible not with facial recognition. However that is an option we are exploring as it would be an efficient way to keep things highly secure. The mobile app also is an idea that we will be using, this also creates a database of allowed user or authorized devices that can be not only be added to and taken away but would allow for an accessible option, as cell phones and their interface, rather Android or Apple are commonplace today.Though there are similarities with this project there are also a slew of differences. The obvious is that ACS would not be used to unlock and lock doors. ACS plans to achieve absolute control and security of each piece of equipment on which it is installed. KEES employs a database to keep authorized entrants registered and anyone else out, our project not only intends to do this but also log the time they have access and potentially develop an invoice system so that future use of ACS could be used to bill for equipment use. KEES also has listening capabilities to better detect a knock pattern that is stored in memory as a unique knock and thus authorize access. This is an exclusive feature that would be a major key feature and trademark of the KEES, but it has no useful purpose on the ACS, nor would anything similar be employed on it. While the KEES has to be mounted on a door, the ACS will need to be designed to be mounted on a variety of different surfaces and it’s footprint would need to be relatively small to avoid needing a lot of room in a place where space is at a premium, which is not what KEES would have had an issue with as their application can remain constant.Despite the differences between systems, the commonalities is what will be important to us as we attempt to understand and piece the ACS together more; this first project we reviewed will be more important to understand how some of their access control devices were working on an embedded level. Important also is how things were able to communicate seamlessly across different platforms whether it is Linux to Android or Windows. Using the KEES as a reference point for the ACS will be a beneficial addition to our research into making the ACS work flawlessly and in a multitude of means, just as Chris Condella, Josh Baxter, Sam Demole, and Jason Wagner did for their UCF Senior Design project.3.1.2 Euchner EKSThe Euchner EKS (Electronic Key System) is a commercially available product that accomplishes the task of controlling access. This device does not have as many features as we would like the ACS to have and does not support any form of mobile application. However the EKS was designed to be a highly portable access control system that could be applied to many different situations, some of which include PC access, programmable logic controllers, tool cribs, and standard building access. The versatility of the Electronic Key System is something that we hope to be able to mimic. EKS is able to communicate through Serial RS232/RS422, USB, Ethernet TCP/IP, and PROFIBUS DP. Not only does it have versatility it also comes in a relatively small package that is designed to be easily incorporated in any space which is a top concern of ours when it comes to fitting the ACS on workstations that could already be crowded, needing as much as space as possible. Table 3.1.2.1 entails the dimensions and also the power usage of the Euchner EKS. Due to the high adaptability of the EKS and the small footprint Euchner opted to make a variety of different models depending on the need the EKS would fulfill. Doing so made the current consumption vary, as well as voltage. The values listed in Table 3.1.2.1 are the listed typical values found for the EKS.Typical Power Supply (V)24Current Consumption (mA)100Dimensions (mm)68x33x50 (LxWxD)Temperature Rating (?C)0-55Enclosure RatingIP67Table 3.1.2.1 – Euchner EKS SpecificationsThe EKS uses programmable keys that are set for specific functions and even rates. These keys work wirelessly and communicate though induction means and includes a 116 byte programmable E?PROM, plus an additional 8 bytes. The programming of the keys is done through a user friendly program on a PC that allows the administrator to set all kinds of unique parameters including the rate at which a machine is used for the set user. It also grants the administrator at anytime to edit, create new, or delete old and lost keys. The ACS hopes to incorporate this kind of accessibility to our design. Though we do not wish to regulate the rate at which a device is used we do intend to monitor how long the device was used which is not as involved as the monitoring level that the EKS has. The EKS does also provide us with more motivation to be thorough in our design as there is an established market for such access control methods. ACS hope to be as versatile and accessible as the EKS, if not more so, with our incorporated support of mobile platforms and possible incorporation of biometric scanning devices that will reduce the need to purchase and track keys or tags.3.2 Access Technologies Access technologies refers to the Means by which the system will approve or deny authorization. The passing of the credentials will need to utilize one of these technologies in order to provide an easy way for a user to interface. This will eliminate the need of logging into the system and also provide a way track the usage activity. There are a few options available that will satisfy this requirement. These are :RFIDNFCFace Recognition/ BiometricsMagnetic stripBarcode scanner3.2.1 RFIDRFIDs have been in production for more than fifty years () and have recently with technological advanced been considered a disposable technology. The price of RFID technology has become increasingly inexpensive as time goes on, similar to most technologies, some of the retailers are listed in Table 3.2.1.1 with the price and capacity information. RFID tags are either passive or active, active tags are powered by battery and passive tags get energy from receiving RF energy from a reader.Table 3.2.1.1 RFID Passive ReadersA Radio Frequency Device (RFID) is capable of transmitting a maximum of 2,000 bytes of data () using a chip and an antennae. The size of a RFID chip is the size of a grain of rice, the smallest in history was created by Hitachi, a Japanese technology giant ( ). The measurements are a mere 0.15x0.15 millimeters, with a thickness of 7.5 micrometers thick (), in order to write data on the chip Hitachi uses semiconductor miniaturization an electron beam, writing to such a small device requires this method. The market sells a wide variety of RFID devices that include flexible and waterproof. Because of the small nature of the RFID design, the technology can be imprinted on a label. Using a special ink a device can be printed on paper and some are less than half a millimeter square (Technovelgy). The extremely small size works makes affixing the RFID imprinted on a label to any object simple and convenient. A comparison of passive RFID devices on the market is shown in Table 3.2.1.1. The ACC-809 RFID is expected to work within less than a foot of the signal reader, whereas GR-1.5-915 can reach at maximum thirty feet. Comparing RFID technology to Barcode or Near Field Communication (NFC) method of detection RFID has a much broader detection range.There is a disadvantage of using RFID that commonly occurs which is known as reader and tag collision. Reader collision is when two or more reader’s signals overlap. The RFID tags are not capable of handling multiple queries simultaneously. Tag collision is when numerous tags are in a small area and the signals need to be read one at a time because simultaneous reading causes reader collision. There are not set global standards on RFIDs and due to this RFIDs have been implemented in various ways.RFID systems can be easily disrupted or intercepted. You do not want to store sensitive information on RFIDs, anyone with a reader can intercept the signal from a distance without the knowledge of the RFID carrier. Data storage capabilities range from holding as little as a social security number or as much as several pages of data (). Using RFIDs can pose risk to electronic medical devices that can be affected by electromagnetic disturbances ().3.2.2 NFCNear field communication (NFC) occurs between two electronic devices that can communicate when they are within approximately two inches of each other. The small range of a few centimeters of transmission would infer safer data, but the communication between devices is not ensured to be secure. NFCs are still subjected to the man-in-the-middle-attack, which is when a conversation between devices occur and there is something intercepting information that is happening in that conversation without permission of the devices communicating. In most cases one device is transportable, like a cellular device, where the other device is stationary. A common example of NFC technology is smart pay at grocery stores where you can use your cellphone to pay for your purchase. The communication takes place on the radio frequency ISM band of 13.56 MHz using electromagnetic induction between two loop antennae(cite).There are three working states of NFCs, card emulation, peer to peer, and reader/writer states. The card emulation state, allows the users to use their NFC enabled device as a credit card. Amongst NFCs capabilities of holding secure data, PIN numbers, loyalty card data, and contacts can be stored. The safety of NFC technology is dependent upon the user, if you were to lose your wallet with all the credit cards, loyalty cards and identification there is nothing to protect that information. A smart phone however can be protected with a password, adding an increased level of security to storing your card’s data on your cellular device.NFC Standards require that the channel that data is sent from one device to another is secure and implements the usage of data encryption. Standard ECMA-340 Near Field Communication Interface and Protocol (NFCIP-1) describes the restrictions and mandated protocols that must be followed. Table 3.2.2.1 lists some these standards that near field communication must follow.ECMA ProtocolDescriptionECMA-356Specifies tests for ECMA-340 which defines RF test methods for Near Field Communication devices that fit in an area of 40mm x 50 mmECMA-373Requirements for the interface between a transceiver and the front end.ECMA-362Specifies Test MethodsECMA-352Radio Frequency requirements (prevents collision), specifies the frequency to not interfere with any communication on the 13, 56 MHz range.ECMA-391Defines modulation schemes and conditions that are mandated to prevent collision when initialization occurs as well as exchanging of data.ECMA-390Denotes commands required for ECMA 373, and control the exchange of control and state data between the two wires.ECMA-340Defines standards relating to passive and active communication devices, modulation schemes, and agreements that happen between the accepting and transmitting parties.Table 3.2.2.1 ECMA Standards DescriptionsNear Field communication coincides on smartphone devices with bluetooth communication. Bluetooth communication however has a longer range and subsequently uses more power to operate than NFC. Bluetooth can connect to another device that is within thirty two feet on the device, NFC has the ability to transmit data to another device within four centimeters. NFC is simple to use, and can transmit data quickly with the swipe of your device, and the reduced range reduces the odds of a man in the middle attack occurring, where someone is basically listening in on the communication you are initiating or receiving. Near field communication has the ability to transmit data, and even power between two devices using induction. During near field communication two devices that are powered on transmit a magnetic field to each other the transmission of data takes less than one second to complete using minimal power. Figure 3.2.2.1 - Protocol Arrangements3.2.3 Face Recognition and Other BiometricsFacial Recognition and biometric scanners, such as fingerprint scanners and voice identification systems, have been a fast growing market and a lucrative feature for any security or access control device to have. Before looking into incorporating any such devices, it would need to be looked at which would be the most feasible and reliable for use in the environment the ACS is bound to be in. Accuracy will play a huge role in the selection of the proper biometric scanner as we hope to make ACS as accessible as possible; without the user needing to repeat or otherwise use a “back-up” option such as a magnetic stripe card reader, if the scanner fails to recognize the parameter that we are employing. It is the goal of ACS to make a highly straightforward device and the addition of biometric access control would be apt.There are several different open source codes and API’s for facial recognition software, including OpenCV’s FaceRecognizer. This code can use several different algorithms including Eigenfaces, Fisherfaces and Local Binary Histogram Patterns. Eigenfaces incorporates the Principal Component Analysis (PCA) which was independently proposed by Karl Pearson (1901) and Harold Hotelling (1933) to turn a set of possibly correlated variables into a smaller set of uncorrelated variables. The idea is, that a high-dimensional dataset is often described by correlated variables and therefore only a few meaningful dimensions account for most of the information. The PCA method finds the directions with the greatest variance in the data, called principal components. Fisherfaces utilizes the Linear Discriminant Analysis maximizes the ratio of between-classes to within-classes scatter, instead of maximizing the overall scatter. The idea is simple: same classes should cluster tightly together, while different classes are as far away as possible from each other in the lower-dimensional representation. This analysis does differ from the PCA method employed by Eigenfaces which finds a linear combination of features that maximizes the total variance in data. Of course this is surely a strong and certain way to analyze data, however it does not consider a good deal differentiation and a lot of discriminative data might be lost when components are thrown out during calculations. Using either of these algorithms would involve a database of around 8 to images per authorized user to get about 96% recognition rates according to an analysis of working code on . To achieve the same results with fewer images Local Binary Patterns (LBP) could be implemented. The basic idea of LBP is to summarize the local structure in an image by comparing each pixel with its neighborhood. Take a pixel as center and threshold its neighbors against. If the intensity of the center pixel is greater-equal its neighbor, then denote it with 1 and 0 if not. You’ll end up with a binary number for each pixel. By doing this you stop looking at the whole image as a high-dimensional vector, but instead break it down into low-dimensional objects. While this is useful in being able to discern the image from lighting issues, it does also make it sensitive to other areas such as scale. This algorithm actually was able to compete with state of the art results for texture classification. Due to all these source codes being available, it might be best to experiment a little with each though it would seem most appropriate to go with LBP as it does not need as many images per authorized user and not as sensitive to lighting which might not be dependable where the ACS will be implemented.Electronic fingerprint scanners have quickly risen in prominence since they were first being implemented by the FBI in 1999. The technology has grown and made them increasingly accurate. Overall there are 4 main types of hardware associated with the fingerprint scanners; they are optical, capacitive, ultrasound, and thermal. An optical sensor takes an image of the finger, and is perhaps the most widely used sensor. A capacitive sensor determines each value of the pixel based on capacitance measured, due to the fact that air would have less capacitance than an area of skin. Ultrasound sensors rely on the prisms that are reflecting light that would be related to a fingerprint. Thermal scanners often need a swipe of the finger to evaluate the difference in temperature over time to create a digital image. Once these images are captured there are two different algorithms that are widely used today to compare fingerprints. There is Pattern matching, which is comparing two images and seeing how well they match. The more widely used and more accurate method is minutiae-matching, this relies on matching minutiae points that were scanned using the sensors. Minutiae in biometrics are the major distinguishing features of a fingerprint. Fingerprint scanners have been proved to be fairly accurate; according to the NIST (National Institute of Standards and Technology) the one finger scanners have been proven to be accurate 98.6% of the time. There are several open source codes as well that would be available to be able to utilize and manipulate as ACS needs to work seamlessly. There are numerous one finger scanners available for use and integration into a system, they also happen to be inexpensive as well.Voice recognition is another fast growing field as it has been determined to be another key feature that is unique to one person and is generally accessible by everyone. The equipment needed for this is just a basic microphone that will take in the analog speech and convert it digitally to be analyzed by an algorithm. There are 2 forms of analyzing speech data; one being text dependent in which a user has a fixed word or phrase they have to repeat and the other being text independent which is more flexible as it analyzes rhythm and intonation among other factors. The problem with voice recognition is not that it is not accurate, as with the text dependent method systems have proved to be quite accurate. It is the fact that voice recognition devices have been shown to be bypassed by having a recording of the user’s voice, and that depending on the environment; it could be very hard to get a clean sample to be analyzed. This would be extremely difficult to determine in the case of the ACS as it could be installed on a device that is located in a very noisy machine shop. While this might be the lowest cost implementation of a biometric scanning device it might also prove to be the most problematic.After researching these various means of biometric recognition devices, it seems that facial recognition and fingerprint recognition are the best options for a secure and reliable alternative for controlling access with the ACS. However, due to the cost effectiveness of voice recognition, it might be worth looking into making it work in a test environment if our timing constraints are not stretched as well as our fiscal constraints. Implementation of a biometric device would be a great experience for all involved in this project as biometric devices are only continuing to rise in use, whether it is in mobile applications for consumers or it is being used for professional means to grant access or keep logs of activity. Table 3.2.3.1 gives a quick price breakdown of each piece of hardware needed for the operation of the biometric device.Biometric DeviceHardwareCostFace RecognitionLogitech HD C270 Webcam$20.32Fingerprint RecognitionFingerprint Reader Sensor Module$29.90Voice RecognitionKY-037 Microphone Sensor Module$3.66Table 3.2.3.1As shown in Table 3.2.3.1 and mentioned previously the cost of hardware voice recognition is quite inexpensive, however the cost of the other devices are relatively similar. While they are higher in cost they potentially will be more efficient.3.2.4 Magnetic StripMagnetic Stripe technology has been used since the 1960s () , the first usage being in the London Underground in the UK, and within a decade the US had adapted the technology for Bay Area Rapid Transit. The magnetic stripe simply stored a value that could be read by the reader. After the advent of magnetic stripe was standardized it began being used for financial institutions for debit and later , credit cards. The University of Central Florida has magnetic stripe technology used for Student Identification cards, which have capabilities of working like debit cards in some vending machines and copy machines.Advantages of Magnetic StripesSimple to UseWidely Implemented TechnologyInexpensive to ProduceEasily Write/Read numerous timesPIN numbers can protect dataStudent Identification/Credit/Debit Cards Use this TechnologyDisadvantages of Magnetic StripesLimited Storage CapacityCan be duplicated cheaply (security issue)Magnetic Fields can damage stripeThieves can easily retrieve dataThe magnetic stripe is composed of magnetic particles that are contained within a resin and applied to a card, which is generally made of plastic but could be made of any material. The process of changing the data stored on Magnetic Stripes is as simple as the first encoding of data and can be done an unlimited amount of times. Data is stored as binary digits where the polarity of the Magnetic Stripe section depicts if the bit is a one or a zero. The range of a Magnetic Stripe is minimal and direct contact is generally necessary to get data. Magnetic stripe cards can be bought blank, you may purchase them online through Amazon, or technology retailers, they are also found in store at Staples costing seventy five dollars for five hundred blank cards that are ready to be encoded.There are standards for magnetic stripes, the current and commonly used being, ISO/IEC 7810,11,12 and 13 ( ). The standards are shared between Japan and the US , so cards adhering to these standards can be used in either vicinity. The standards only adhere to the banking systems, so when creating a magnetic stripe there are no mandated standards if the usage is outside of banking.Many retailers are straying away from magnetic stripes because data can be easily read and reprinted, making counterfeit cards a bountiful problem. The alternative is using a chip, the reason chips are safer is that you can not clone a card’s chip , where magnetic stripes can be cloned easily (). The following table 3.2.4.1 shows the average cost of some common readers that are available for purchase. Though using the data from the table it is easy to see that the cheaper options do not fearure the ability to write on the magnetic stripe card itself. Though, this might not be necessary for the ACS to operate if we intend to magnetic stripe cards that are already encrypted with Infomartion, such as employee ID cards or student ID cards. These could also be pre-programmed “guest cards.”NameRetail PriceRetailerReaderWriterMSR605 $175mag-stripeYesYesELO E757859 Magnetic Stripe Reader$50StaplesYesNoSquare Reader$0 Percentage Fees ApplysquareupYesNoTable 3.2.4.1 Magnetic Stripe Reader/Encoder3.2.5 Barcode ScanningBarcodes are a widely used technology and have three different scanning methods. A wand scanner implementing LED can be used to light up the dark bars and empty spaces, and capture the pattern in order to decode the pattern to obtain information. Using LED technologies will a wand scanner requires the wand to come in physical contact with the barcode in order to read it. Charge-Coupled devices may also be used to read a barcode. The Charge-Coupled device (CCD) is used to denote a single row of photocells that reside on one semiconductor chip, the benefit of s CCD reader is the ability to read the entire cross section of a barcode instantaneously without a swiping motion that required by a wand scanner that uses LED. Laser scanners have longer range of readability and have the potential of reading a barcode from as far as 12 inches away. All readability ranges can be found in Table 3.2.5.1. Laser scanners have a higher precision over LED and CCD readers and it can handle larger barcodes if the barcode is moved away from the laser to accommodate for the size. The quickest type of laser scanner uses an interlocking pattern to increase probability of capturing a scan. Scanning TechnologyReadability Range (min)Readability Range (max)LEDXXCCD0.25 inches1 inchLASER1 inch12 inchesTable 3.2.5.1 - Range of readabilityThe ease of obtaining a barcode is as simple as going online to a barcode generator, inputting desired data and printing the barcode on either a label, packaging or a piece of paper. The data that can be stored on a barcode is variable depending on which type of barcode is used. The ease of creating and printing barcodes make it extremely cheap, costing less than any other reader technology such as RFID or Near Field Communication (NFC). sells labels for printing barcodes on, 100 sheets can be purchased for less than twenty dollars, and one sheet can be purchased for four dollars, each sheet has 154 labels.Advantages of BarcodesInexpensive to generate and printWidely Used (user familiarity)Numerous Barcode Varieties ExistDisposableDisadvantages of BarcodesNo SecurityData is easily read by thieves Reading Scratched/Crumpled barcodesMust be in line of sight to be readErroneous functionality possibleThere are many types of barcodes, including QR codes which hold a website URL. Code 128 has a high data density which makes it ideal for shipping and packaging barcodes it has an unlimited length capability of holding ASCII characters. Data Matrix is used for holding text or binary data as well as numbers ranging from 1 - 255 and is widely used for labeling produce or electronics. 3.3 Embedded CPUs/ Microcontrollers3.3.1 Embedded CPU/ComputerWe are interested in the embedded Broadcom SoC chipset, this chipset often comes with ARM architecture and are often integrated with an embedded computer already. We are going to need a small embedded computer to provide communication to from the point of access device, to the database, and to then to microcontroller that will be in charge of turning on the access controlled equipment. The Raspberry Pi is an inexpensive embedded central processing unit, created in England by the Raspberry Pi Foundation. It is a very popular product for hobbyists and students alike. The form factor is relatively small, about the size of a credit card (85mm x 56mm), which would be important for the size of the enclosure needed. The power rating on the Raspberry Pi is low as well with values ranging from 0.8 to 4.0 watts. This would be perfect for our project use as we do not want to draw a lot of power. There are several form factors the Raspberry Pi comes in. Finding the right embedded computer is very crucial to this project as we want to explore as many features as we can without getting too complicated for the system to perform its essential task of allowing only authorized users the permission to operate the equipment. All the processors that are utilized in the Pi’s, use the variations of the ARM architecture, which creates a very easy environment to create and transmit data as a possible use of ARM microcontrollers might be used to control the access to the equipment. Raspberry Pi’s all will run using Linux and the newer models use Windows 10 IoT (Internet of Things), which is the new version of Windows Embedded. The versatility of being able to run either OS is beneficial as Windows is a more marketable OS and user friendly, but Linux is better for a development environment. It should also be noted that these CPU’s are not known to run hot enough to have any thermal considerations, i.e. heat sinks or any active cooling applications. Though if a processor was needed to be over clocked it would not be for certain that the normal thermal considerations would not be guaranteed thus a heat sink would possibly be needed. All of the Raspberry Pi boards involve the same GPU (Graphics Processing Unit). The incorporated GPU is Broadcom’s VideoCore IV, which supports all standard definition formats, as well as full HD formats.The first generation board from Raspberry Pi features a Broadcom BCM2835 32 Bit SoC (System on Chip) and 256MB of RAM or upgradable to 512MB of RAM. Though this amount of RAM is relatively small our utilization of RAM would not be great for the essentials of our project. The ARM processor operates at 700MHz and does support floating point operation, which will help in more complicated processing tasks. The board also has 1 to 4 USB 2.0 connectors that will allow for simple manipulation of peripheral devices as we hope to integrate more into our project, as well as a place to be able to plug in a mouse and keyboard so direct debugging can take place, along with the HDMI port which is compatible with most standard LCD monitors available. The first generation board does have 1 Ethernet port available. However, the version of this board that has the higher value of RAM and the higher number of USB ports, has become more difficult to find as it has been discontinued due to the rising popularity of the second generation board and the very recent unveiling of the third generation Pi board. The average cost of this board is about $25 new and used ones can be found online for as little as $5. This project will not be using used boards as there might be problems found with them that will hinder our progress in trying to prepare our prototype in the next semester.The second generation board comes with all the available features of the first generation Pi but with a higher clocked CPU that operates at 900 MHz and 1GB of RAM. This is a Broadcom Single Board Computer (SBC) that’s CPU is a quad-core ARM Cortex-A7. This is also the first generation of Raspberry Pi’s to be able to run both OS. The hardware differences alone are enough to want to utilize this board for the purposes of interfacing with the microcontroller and communicating with the database. The cost is about $10 more which is reasonable enough to upgrade to a platform that would allow for more versatility and better reliability in handling all the processing that would be necessary for any extra feature we can add such as a camera for facial recognition and Open CV. With this added functionality it does raise the power consumption rating to 800 mA or about 4 W, which as noted previously would not interfere greatly with our end goal of the project.Raspberry Pi has released the third generation of embedded computers in February 2016. This board features a SoC Broadcom that had an ARM Cortex-A53 64 bit quad-core processor that operates 1.2 GHz. This board also comes with 1GB of RAM like its predecessor which is more than enough for our purposes as we don’t plan on running too extravagant of programs or more than one at a time. There’s an upgraded switched power source that goes up to 2.5 Amps instead of just 2 Amps, which would help not limit us if we did find a peripheral that needed more power, such as some of the biometric devices that may be incorporated to control access. This does create a higher raise in the power consumption but only if there is a USB device plugged in that utilizes the higher current draw. Otherwise the power consumption of this board is identical to the previous generation. The biggest upgrade on this board variation is the addition of wireless technology built in. The other boards had Ethernet and would support the small USB adapters that would allow for Wi-Fi, but this board not only has an adapter built in, it also has Bluetooth Low Energy (BLE). These two available options make this board the optimum choice for this project, with this technology built into the board we would not have to account for added space and power to the adapter. The ability to communicate to the database wirelessly will help in the overall enclosure and placement of the hardware on the equipment. Bluetooth would help with the option of how to integrate tablets and smartphones. However due to the fact that it is such a new release, availability becomes an issue as well as if there are any problems with quality control issues that have yet to be uncovered. With the board being the nearly the same price as the second generation it is going to be worth looking into acquiring this board when we begin to gather all the components needed for this project.Though the optimum board is the latest iteration of the Pi, the second generation board might be the best fit, as it is readily available now and is known for being reliable. This will end up being an opportunity to use the time between now and the time at which we will be acquiring all the elements required. We can continue to plan to work with the third generation Pi and all the advantages it will give our design as far as more options. All of the features that the third generation has that the second does not have, can be included, either through peripherals, whether USB or serial, and raising the clock speed through overclocking the processor. 3.3.2 Arduino Development BoardsArduino is essentially a name brand of microcontrollers with which they have many options for various uses. The main characteristics as shown by the manufacturer for arduino products are as follows : Processor, operating voltage, CPU speed, Analog in/out, digital io/pwm, eeprom, sram, flash, usb, uart. There are currently sixteen different models of arduino boards. These variations utilize different aspects of the characteristics. The first major characteristic of these boards is the processor. There are several kinds of processors that are used on the boards. The table 3.3.2.1 below shows the different types of processors and the voltage associated with them as well as the cpu speed. A few processors actually have more than one configuration. While some of the processors have different voltages it should be noted that the voltage is relative to the board they are seated on. The boards have different memory configurations and ports which contribute to varied voltage specifications. The board configurations vary but the language for Arduino is the same throughout. For our purposes we will likely need low voltage with a lot of ports to test the separate devices. ProcessorCpu speedOperating/input voltageIntel? Curie32MHz 3.3 V/ 7-12V ATSAM3X8E84 MHz3.3 V / 7-12 VATtiny858 MHz3.3 V / 4-16 VATmega168V8MHz2.7-5.5 V /2.7-5.5 VATmega328P8 MHz 8 MHz16 MHz16 MHz2.7-5.5 V /2.7-5.5 V3.3 V / 3.35-12 V5 V / 7-9 V5 V / 5-12 VATmega32U48 MHz16 MHz3.3 V / 3.8-5 V5 VATmega256016 MHz5 V / 7-12 VSAMD21 Cortex-M0+48MHz3.3 V/ 5VAR9331 Linux400MHz5 VATSAMD21G1848 MHz3.3 V / 7-12 VFigure 3.3.2.1 – Specifications on Arduino Development BoardsThe Arduino program language can be divided into three main parts. The parts are : structure, variables and functions. The structures consist of two primary structures : setup() and loop(). There are control structures as well these are as follows : if, if...else, for, switch case, while, do...while, break, continue, return and goto. Further syntax structures are common C syntax such as semicolon, curly braces, single line or multi- line comments, #define and #include. Arithmetic operators are the same as the standard operators used in most other languages. Comparison operators are also in line with other languages like C. Boolean operators (and, or, not) are the same as C. Referencing operators also known as pointers are the asterix for dereferencing and ampersand for referencing. Bitwise operators hold to the standards of C for and, or, xor, not, left, right. Compound operators used to simplify expressions are also reflective of C. The compound operators are the usual types such as increment, decrement, compound addition, compound subtraction, compound multiplication, compound division, compound modulo, compound bitwise or and compound bitwise and. The second part of the language is variables. In variables we have constants, data types, conversion, variable scope and qualifiers and utilities. In table 3.3.2.2 we see a list of variables associated by their categories. ConstantsData typesConversion Variable scope and qualifiersUtilitiesHIGH | LOWINPUT | OUTPUTINPUT_PULLUPLED_BUILTINTrue | falseInteger constantsFloating point VoidBooleanCharUnsigned charByteIntUnsigned intWordEtc…char()byte()int()word()long()float()Variable scopeStaticVolatileConstSizeof()PROGMEMTable 3.3.2.2 – Variable ListThe third and final part of the language is known as functions. There are 14 categories of functions as specified by the Arduino reference material. These categories are as follows : Digital I/O, Analog I/O, Due & Zero only, Advanced I/O, Time, Math, trigonometry, characters, Random Numbers, bits and bytes, external interrupts, interrupts, communication and USB(32u4 based boards only). Digital I/OpinMode()digitalWrite()digitalRead()Analog I/OanalogReference()analogRead()analogRead() - PWMDue & Zero onlyanalogReadResolution()analogWriteResolution()Advanced I/Otone()noTone()shiftOut()shiftIn()pulseIn()Timemillis()micros()delay()delayMicroseconds()Mathmin()max()abs()constrain()map()pow()sqrt()Trigonometrysin()cos()tan()CharactersisAlphaNumeric()isAlpha()isAscii()isWhitespace()isControl()isDigit()isGraph()isLowerCase()isPrintable()isPunct()isSpace()isUpperCase()isHexadecimalDigit()Random NumbersrandomSeed()random()Bits and ByteslowByte()highByte()bitRead()bitWrite()bitSet()bitClear()bit()External InterruptsattachInterrupt()detachInterrupt()Interruptsinterrupts()noInterrupts()CommunicationSerialStreamUSBKeyboardmouseThe Arduino language is based on C/C++. It allows the use of any functions in the AVR Libc. With respect to libraries the Arduino environment can be extended through the use of libraries similar to most programming platforms. Many of the libraries come installed within the IDE for Arduino. Additional libraries can be downloaded or creation of a custom library can be done. This makes Arduino customizable for the needs of the developer. Standard Libraries that are included are listed below. EEPROM - reading and writing to “permanent” storageEthernet - used to connect to networksFirmata - used to communicate with applications and serial protocolGSM - used in connecting GSM/GPRS networkLiquidCrystal - used to control LCD’sSD - for reading SD memoryServo - for the operation of servo motorsSPI - used for serial peripheral interface busSoftwareSerial - for serial communication on any digital pinsStepper - for control of stepping motorsTFT - for drawing text, shapes and images WiFi - used to connect WiFiWire - Two wire interface for send and receive of a network of devices or sensorsThere are many other libraries that have been created for use in different applications. We will not go into them for their lack of relevance to this project. With this being said we can safely assume that the Arduino is a feasible solution to our needs. It possesses the features of low cost architecture with versatile application. The assessment of other candidates will determine if Arduino is the favored choice for the needs of this project. 3.3.3 MSP430The MSP430 was developed by Texas Instruments and is a mixed signal microcontroller. When developed the goal was to create an embedded application platform that is typically low cost and power consumption. During idle mode the MSP430 produces a current that can be lower than 1 microAmp, which the ability to change between six modes. Because of the rapid wakeup time associated with the MSP430 the device can stay in sleep mode for longer periods of time and conserves energy by not needing to be turned on when not in use.Microcontrollers in general, are microprocessors that are embedded in a variety of devices, you may find microcontrollers readily within a car, because they have the capability of controlling something as simple as the radio and as complicated as aspects of the engine. Microcontrollers are essentially a less sophisticated version of a cellular phone. The benefits of using microcontrollers are their small size, low price and they can be programmed and reprogrammed to perform tasks. The reusability of the MSP430 is virtually unlimited and can be programmed hundred of thousands of times without encountering any issues. Technological advancement over the years has made microcontrollers that are able to rival or even beat some of the computers that existed in the seventies through the nineties. The tools needed to use the MSP430A programming environment with debugging capabilitiesMicrocontroller Support Circuitry Application Specific Circuitry.Knowledge Needed to Use the MSP430Assembly Code / C Programming LanguageDigital LogicEZ430-F2013 USB Stick Development Tool Utilizes the MSP430 and comes on in a convenient USB stick which is easy to transport without damage and costs around twenty dollars. THe EZ430-F2013 houses two boards that are both secure beneath a plastic casing. The two boards are the programming board and the target board. The Programming board on the MSP430 is the platform that the code is run on and the target board houses the MSP430. The MSP430 is programmed using assembly language which when assembled is turned into a machine language program. The micro-architecture that is used with the MSP430 is the size of a flash drive. Microcontrollers are binary computers and they work by interpreting binary numbers.Because binary is time consuming to decipher by humans, there is assembly language which is written in basic english then transformed into binary for the MSP430 to understand. Writing in C language is then converted into assembly language and finally into binary. There are two types of Registers in the MSP430 the CPU registers and the Module Registers. Registers are a small set of data holding slots, similar to a filing cabinet that is capable of storing data. These registers are then used to hold any type of data, from a storage address or computer instruction, to random values. Module registers are specifically for controlling the peripherals in the MSP430. Inside the MSP430 there are a variation of both 1 byte and 2 byte registers. Some of the qualities that make the MSP430 beneficial to use can also be considered a downside to using the MSP430, because it is geared for long energy use and designed to run minimally intensive applications it is inexpensive and good on power, however memory capabilities are limited as well as processing capabilities. Advantages of MSP430:16 bit processor Low Power UsageSimple debugging within IDEsLow CostReadily Available Learning MaterialsSmall SizeMultiple PinsDisadvantages of MSP430:4k Limit on the IAR Embedded WorkbenchLower Processing Capabilities3.3.4 ARM microcontrollerARM stands for Acorn RISC Machine at its origination but has adapted to be called Advanced System Architecture. RISC stands for Reduced Instruction Set Architecture, and is a designed CPU design strategy using a simplified set of instructions instead of a more complex set which would be titled CISC, Complex Instruction Set Architecture. RISC architectures use the load and store architecture, in the load and store architecture memory is accessed normally through the specific instructions rather than through other instructions such as add or sub.The ARM Module allows for saving electricity with is quicker reboot time but also saves energy because in general it is an energy efficient device. The ARM architecture is inexpensive to manufacture, you can purchase the entire ARM platform which has the companion chip and a processor and the total will be about fourteen percent less expensive than the 86 bit processor.The ARM Architecture has an elaborate support system in place. The support systems that are in place are considered efficient and effective. The ARM Architecture allows for a processor to run seamlessly with it, and you should not anticipate a delay. The small size and minimal configurations required, it is regarded as a great option for creating mobile applications. The flexible design also makes it a viable option for mobile devices. The development time is expected to be short because they are easy to configure.Over a period of time the ARM Architecture has transformed to meet the expectations that the market desires. In order to keep up with the times technology companies like the ARM developers have had to create devices that are quicker, have flexible technology and enhanced features. There are three profiles for the ARM Architecture. The ARM ISA is always improving but has backwards compatibility making the ARM Architecture extremely versatile.ARM ArchitecturesARMv8-A ArchitectureARMv8-R ArchitectureARMv8-M ArchitectureOf the three ARM Architectures they all have very different purposes. The ARMv8-A Architecture was developed with high performance in mind, they are generally used in mobile devices and enterprises. The ARMv8-R was developed with embedded applications in mind as well as usage in the automotive industry. Lastly the ARMv8-M architecture was designed for both embedded technology but also to be used with the Internet of Things and other similar applications.The ARMv8-A includes 64 bit general purpose registers as well as a stack pointer and a program counter. The ARMv8-A supports processing and virtual addressing. The two main execution states that are included are the AARCH64 and the AARCH32 where both are execution states with an exception model, programmers model and instruction set for that state, the only difference between the two is the bit size. Respectively AARCH64 and AARCH32 are 64 bit and 32 bit. The two execution states are A32 and T32, A32 is called ARM and is 32 bit instruction set. The T32 is called Thumb and is a 16 bit architecture set.We will explore the ARMv8-A in depth as it suits the needs of the Asset Control System’s design. The ARMv8-A is a 64 bit support system for the ARM Architecture, and the company boasts an excellent power efficiency. Compatibility between the ARMv8-A and existing 32 bit architecture is seamless. There is availability of larger registers if desired, and cryptography instructions are available, the ability to use cryptography on the ARMv8-A Architecture is extremely valuable.ARM DS-5 is the Development Studio used for ARMv8-A, it includes a toolbox of all the necessary tools required to develop on the ARM processor. There are a couple different development studios available, the ARM Compiler 6, ARMv8 Fixed Virtual Platform. The DS-5 development studio is used in conjunction with ARM Fast Models to develop and debug as well as optimize designs and efficiency.The ARM has 37 registers that all are 32 bits in length those register dedications are shown in table with their respective uses. Table 3.3.4.1 shows the seven basic operating modes and a brief description of each of the operating modes.Table 3.3.4.1 - Operating Modes and DescriptionsTable 3.3.4.2 Seven Basic Operating ModesDepending upon whether you are operating the ARM state or in the Thumb state the number of instruction size changes. The instruction size for the ARM state is 32 bits wide where all instructions are required to be word aligned. During the operation of the Thumb state the instructions are only 16 bits wide with the alignment needing to be halfword aligned. Halfword is 16 bits wide and word aligned is formatted into 32.Table 3.3.4.3 Conditional Code ChartARM Cores are used for devices like smartphones, the technology is easy to learn and use. Not only are ARM cores considered simple to use, they also are considered more cost effective, when comparing the ARM architecture to an eighty six bit processor the price difference is staggering. The ARM Architecture has a faster boot loader guaranteed, this will make turning off a machine and on the hardware when necessary in order to save electricity easy. Long periods of not using the software can trigger the device controller to be turned off, and because of the quick reboot feature it is not an inconvenience to save electricity.3.4 SwitchThe switch is the component that will be necessary to regulate and control the power to the assets with which we want to control. There are four types of switches that we are considering. These four types are as follows :Standard RelaysBJTMOSFETSCRIn the following subsection of section 3.4 we will evaluate each of these for their plausibility in the system. The switches main function is to limit the flow of power to a device. This however is not as simple as it sounds because some factors need to be taken into account. First standard outlet energy comes in the form of 120 VAC. with this in mind we will need to preserve the source signal while controlling output. The switch will need to be durable enough to withstand such a high level of energy. The convenient property here is that we will not need to convert the signal to DC. This we will leave to the individual asset’s power regulation mechanism. This will ensure that the asset does not experience any unwanted effects of the power intervention. Another convenient property is that since the device will be connected to an energy source there will be no need to acquire a source for operation of the device. Therefore we can build the device with a parallel circuit to the power regulation switch. The circuit will allow for the activation of the switch as needed and will also power the display on the device. The switch will provide power to asset when activated and will meet the standards of electrical outlets as well as relay the same standards to output. Switching power can be damaging to some assets so it is considerable that we may implement a switching procedure that doesn’t actually terminate power but lowers the voltage to prohibit functionality. This may not be desirable for all types of assets we could connect. It may be necessary to provide warnings as to the effect the switch will cause in order to prevent asset damage. Each switch will need to be durable enough to handle the load. Also it must be of high quality to ensure longevity and mitigate component failures.3.4.1 Standard RelaysStandard power relays are a basic electro-mechanical switch that allows for control of power or signal to be passed through without the user needing to physically throw a switch or otherwise provide a path for conduction. This is done through a small electric signal that when applied to the relay forces an electromagnet to close a switch, thus causing the high current output to be allowed to be pass through. Relays have been a main component of power control systems for a long time; they have proven to be very accurate at providing consistent power. Below is a Table 3.4.1.1 which shows the specifications of the TE Connectivity PCB relay with a 5 VDC coil.Coil Voltage5VDCOperation Voltage3.5VDCRelease Voltage0.5VDCContact (Output) Voltage250 – 400VACContact (Output) Current10-16AOperating Temperature0-85?CDimensions29x13x16 (LxWxH)mmContact typeThrough-hole Table 3.4.1.1 – TE Connectivity RT1 PCB RelayThis relay, based on the values in table 3.4.1.1, have the specifications the ACS needs for the switch. The RT1 relay costs $4.24 each, from Mouser Electronics and the availability is not plentiful. There are other options that have the similar ratings such as the K10 series from TE Connectivity, however, these relays are more than double the cost as the contacts are able to withstand more power and come in many different varieties. Relays are a standard when it comes to electronically switching power; however they have been known to fail due to their mechanically moving parts that make it susceptible more to wear due to temperature and constant use. The advantage of using a standard relay comes from its simplicity to implement. It is a straightforward design that works and has been used in a variety of applications from automobiles to radios. The ACS does want to be a product that uses the most up to date technologies, but it also needs to be proven to function during all conditions. Standard relays are going to be our most rugged option, which is why standard relays will still be considered as the ACS solution to switching power to the device.3.4.2 BJTThe use of BJTs as switches is a very common practice, to accomplish this all you need to know is the cutoff and saturation regions of the BJT you wish to use. Using the cutoff level this would make sure whatever the load on the emitter is not getting any of the source power from the collector. This would be the case for an NPN BJT. When the saturation threshold had been crossed, BJT would allow source current to the load, turning it on until the threshold current is no longer available. Transistors of this type generally are used in smaller applications such as controlling lamps and miniature dc motors. They have even been used to control and switch on standard relays. Such small applications would not be applicable to the ACS. We hope to be able to use our project to control bigger pieces of machinery, which is possible using transistors just not a single one.Darlington Pairs are a combination of two transistors that when configured correctly will be able to control both larger current and larger voltage. Darlington Transistors simply contain two individual bipolar NPN or PNP type transistors connected together so that the current gain of the first transistor is multiplied with that of the current gain of the second transistor to produce a device which acts like a single transistor with a very high current gain for a much smaller Base current. The overall current gain Beta (β) or Hfe value of a Darlington device is the product of the two individual gains of the transistors. However due to the output current being driven by the base, the circuit then begins to become more complex as current is not something that is easy to remain constant. This value would also need to be changed constantly depending on the load that the ACS is hooked up to. Due to the cost and reliable performance from BJTs this option is still one that will be weighed with the others so that the ACS will have the appropriate switching mechanism.3.4.3 MOSFET MOSFETs like BJTs are quite commonly used as switches in PCB applications, used to turn on channels due to their fast switching nature. The main difference between BJTs and MOSFETs is that while BJTs are controlled by current, MOSFETs are controlled by voltage. This makes the circuitry easier to design around because voltage is maintained more feasible than current. However, when using a MOSFET or any type of field effect transistor for that matter as a solid-state switching device it is always advisable to select ones that have a very low RDS(on) value or at least mount them onto a suitable heatsink to help reduce any thermal runaway and damage. Power MOSFETs used as a switch generally have surge-current protection built into their design, but for high-current applications the bipolar junction transistor is a better choice.With the main limitations of MOSFETs being that it cannot handle the higher current functions, this appears to be not a good answer for the ACS. However it is entirely possible to put MOSFETs in parallel, this would give the ACS the ability to handle the high voltage and high current loads. This is another feature over the BJTs that MOSFETs have. Though this will inevitable take up more board space on our design it might be worth the cost of space to have a solid state electronic device that is easily controlled by voltage as an option for the ACS. Just as our other selections, we will make an educated assessment of what we will use that will best fit the purposes of the ACS.3.4.4 SCRA silicon controlled rectifier or semiconductor-controlled rectifier (SCR) is a four-layer solid-state current-controlling device. One of the biggest benefits of using the SCR over a standard relay is the elimination of the relays biggest failure and source of delay. This is the fact that the SCR is a solid state electronic device, where the standard relay is an electromechanical device, that often makes for a noisier circuit. The name "silicon controlled rectifier" is General Electric's trade name for a type of thyristor. The SCR was developed by a team of power engineers led by Gordon Hall[1] and commercialized by Frank W. "Bill" Gutzwiller in 1957. Some say silicon controlled rectifiers and thyristors as synonymous, other sources define silicon controlled rectifiers as a proper subset of the set of thyristors, those being devices with at least four layers of alternating n- and p-type material. According to Bill Gutzwiller, the terms "SCR" and "controlled rectifier" were earlier, and "thyristor" was applied later, as usage of the device spread internationally. SCRs are unidirectional devices as opposed to TRIACs, which are bidirectional. SCRs can be triggered normally only by currents going into the gate as opposed to TRIACs, which can be triggered normally by either a positive or a negative current applied to its gate electrode. SCRs are typically used in high voltage and high power conditions. This is due the use of its PNPN structure that allows for this use of high current.The method of securing SCR conduction is called triggering, and it is by far the most common way that SCRs are latched in actual practice. In fact, SCRs are usually chosen so that their breakover voltage is far beyond the greatest voltage expected to be experienced from the power source, so that it can be turned on only by an intentional voltage pulse applied to the gate.When looking to use SCRs we need to be sure that the turn on voltage or current is low enough to be able to utilize the signal from the microcontroller we have selected. The other critical part is making sure that it can handle the current and voltage needed by the typical machines we will be controlling access to. If we select a part that just meets the average standard then ACS will end up having critical failures as soon as the average is exceeded. Keeping this in mind, Littelfuse has a line of branded SCR thyristors called Teccor that are sensitive to control current and do have high voltage and current ratings. These SCRs also will fit into our budget as they are under $1 for one in most cases. The Table 3.4.4.1 gives a breakdown of the specifications we can expect from a Teccor thyristor.Gate Current0.2 to 15mAGate Voltage0.8 to 1.5VMax RMS Current6AMax Voltage400 to 1000VOperating temperature-40 to 110?CPeak Gate Current2APeak Surge Current100AAverage gate Power dissipation0.5WDimensions (Surface mount)9.5x6.5 (LxW)mmTable 3.4.4.1 – Characteristics of Teccor SCRsUsing the data from table 3.4.4.1, we can see that the ACS should definitely be able to operate with an SCR. This would also facilitate our goal of having less electro-mechanical devices in our design. The power ratings are consistent with what we would need for most devices to which we would be controlling access. The Teccor SCRs are often used in the control for power tools including high voltage welding equipment. Though these SCRs might need the higher specification gate voltage, it is still possible to accomplish a 1.5V signal to turn the SCR on. Due to its surface mount package and dimensions this also would make the final version of the ACS a more consolidated product that would save space for the enclosure and thus smaller footprint that we seek.3.5 LCD/ Touch screenTouch screens are comprised of two flexible coated sheets that are both coated with a resistive material, in between the two layers there is an area composed of air, or something called microdots. The two types of metallic layers are called Matrix and Analogue. The analog metallic layer is made up of clear electrodes that do not have a pattern, where the Matrix’s electrodes are made of glass or plastic and they are mirroring each other in a pattern. As of late analogue has been declining in price, making it more affordable than the matrix design. The pressure of a finger or stylus presses two sheets together and allows the completion of a circuit which can be traced down to x and y coordinates. Touch screens allow for only one touch input at a time, unless the touch screen is extremely complex and expensive.Resistive touch screens have a technology that measures the amount of resistance occurs when a point on the screen is touched. The standard touch screen is analog resistive. When a user touches the screen the two sheets come in contact and the lines that are running horizontal and parallel within the sheets are capable of registering and understanding the location at which the user touched. A resistive touch screen can be activated with the hand or with using a stylus to the screen. Both analog and matrix use the grid system of an x coordinate and a y coordinate that is pinpointed when the two screens are pressed so they come in contact with each other. A resistive touch screen has the advantage of being used with gloved hands, which is not something every touch screen can do, because it only requires pressure and not temperature from the object pressing the screen.One common problem with non-resistive touch screens, or capacitive touch screens for examples is the disadvantage of needing a capacitive object to activate sensors. A capacitive object is your finger, or would require a special pair of gloves with a capacitive surface to register a touch to the screen. Cellular devices use capacitive touch screens because they do have the advantage of putting your phone in your pocket and not having it accidentally dial a number, or open a folder because of the pressure from your pocket. Resistive screens have a lower pressure threshold which can make light touches go unnoticed. Today’s market for touch screens is predominantly rooted in capacitive screens.In general there are a couple advantages of using touch screen technology. One of the main advantages are a professional looking display that bears little cost to the manufacturer. A disadvantage that may occur with touch screen usage is a phenomena called drift, drift is when the calibration of the touch screen becomes distorted naturally over time, it is easy to calibrate, however would be something you would need to be aware of as this can be an annoying problem. The touch panels technology are limited to a stiff surface as bending will cause breakage and scratching is another issue that happens because touch screens are not strong enough to use a sharp object to apply pressure. If too much pressure is applied or bending occurs with a touch screen device that is not designed to be bended, a dead spot can occur on the screen and that area will become unresponsive to input because the electricity will not be able to flow through those points.Devices that require touch screens are limited to the size of casing, as most touch screens are considered larger, and customers desire slimmer devices. The reason for the bulkier than desired design is the air gap that is necessary to separate the two planes. The reason why in direct sunlight it can be hard to see a touch screen display has to do with the air separating the two panels. High ambient light is a problem because the light will go through the first layer on top and then a bending will occur when the light enters the air gap, that bending of light causes a reflection that is pushed out through the front display. The combination of reflecting the light causes the display to be nearly impossible to read.Unlike resistive touch screens, P-Cap is a solid state device that instead of interpreting electrical resistance it take input from electrical capacitance. This P-Cap technology uses capacitance to detect objects within an electromagnetic field. The act of touching the screen allows for the painless passing of an electrical charge from your finger to the screen. The P-Cap technology makes the implementation of multiple touches at the same time simple. The sophistication and enhanced capabilities of P-Cap make this touchscreen technology more expensive. Also the input cannot be detected if you are using your fingernail or wearing gloves.Liquid Crystal Displays, or LCD screens require two layers of glass, and OLED screens only requires one layer of glass, the single layer of glass also has an advantage over LCD because it is thinner and lighter than the LCD’s layer. In the LCD liquid crystals are used because their light modulation allows for a visual display of images. The crystals in the LCD themselves are not emitting the light, the emission of the light is coming from a source instead of inherently. The wide usage of LCD occur in computer monitors, televisions and sign displays, the common usage equates to a decreased price tag for this technology. The predecessor to LCD was the Cathode Ray Tube or CRT.LCDs are prone to an issue known as image persistence. Image persistence, also goes by the alias image retention and describes a temporary burning of an image into the screen. In order to combat image persistence a screen saver can be used so the screen does not display the same image for a long period of time allowing for a burning to happen to the screen. An alternative to LCD is a plasma screen, however even plasma screens are not impervious to image persistence.The energy efficiency of LCD screens are a benefit, and disposal is simple whereas using a CRT needs precautions when disposing. To connect the LCD screen to other surfaces the LCD panel has thinly coated metal pathways that are placed on a glass panel that forms the circuit that makes it possible to operate. Soldering is not a technique that is used on the LCD panel because you have to use interfacing instead. Interfacing is applied using a plastic ribbon that has an adhesive. The adhesive and ribbon used contain a slight conductivity.OLED stands for Organic light emitting diode. As the name suggest there is an organic component to an OLED. The device is similar to an LED, but the film of emissive electroluminescence is composed of an organic compound which is used to display light when an electric current is applied. The organic substance is sandwiched between two electrodes. The design of an OLED makes it a thinner and lighter option for a display, and does not require a backlight to work. OLED of course has a higher cost because it is a comparable technology to LED, but it is thinner.The combination of touchscreen and LED displays are the high popularity making it user friendly, easy to learn, and it comes with a lower price point. Touchscreen technology makes the need of a keyboard and mouse obsolete, which will save space and reduce parts required. LCD touchscreens are light enough to easily transport and they are durable.3.6 EnclosureEnclosure is the hardware we can use to contain the device we create to perform the asset control. There is really only two options in this area we can choose from. They are:Mechanical MountMagnetic MountThese are simply put and self explanatory with regards to how the function as an enclosure. Cost and capacity are the only real factors here. The possibility of it being installable or concealable would be advantageous as well.3.6.1 Mechanical MountThe idea for the enclosure for the system is fairly basic. It needs to be rugged and secure, yet easy enough to perform maintenance on by an authorized person. This can all be done simply and with an off the shelf product like an enclosure fit to our design from Hammond Manufacturing. They offer a variety of plastic and metal enclosures that are rated at IP68 and up. However, the main issue is finding the space to place it that would be functional not only for the end user but for the ACS as well. The idea of mechanically mounting the device is the most secure as this would make removal of the device deliberate and possibly damage the equipment it was installed on. The first type of mechanical mount would be a placement of a few bolts through the enclosure and fastened to the equipment. This would result in direct modification of the user’s equipment, which could be an issue in some instances. Another option would be to install a clamp on the back of the ACS enclosure making it a bit less secure as far as ease of removal, but would provide the solution to the ACS not being in the way or damaging the user’s equipment. The major downfall of this option is the cost of a reliable clamp that will hold the ACS in place and require a hex or torx head screwdriver to loosen it. These clamps cost anywhere from $20-50 each, depending on how big and the strength of a clamp. The last option for a Mechanical mount would the use of securing straps. These would go through our enclosure and wrap around the user’s equipment. While this would not appeal aesthetically, it would cover the entire basis we need it to. The cost is low for these straps, $20 for a package of 100 and it would not be damaging the equipment while making the ACS impossible to remove without deliberate action to do so.3.6.2 Magnetic MountThe idea of the magnetic mount is not necessarily about making the device secure as much as it is about accessibility. These are 2 options that are being weighed as it is a debate as to whether the ACS enclosure needs to be more secured to the equipment or more accessible and easy to customize its location. The assumption also is then that the equipment we will be encountering will be encased in a metal that magnets can stick to. Though this will probably be the case it is not certain that we always will have that option. The other problem with this solution is if the magnet would happen to cause any inference not only with the ACS but with the user’s equipment as well. Due to the versatility of the ACS it has the potential to be incorporated into an area where there is sensitive equipment and having magnets could disrupt other measurements being taken or even processes that are being automated.However, if we can prove that there would be reason enough to go through with a magnetically mounted system, it would be cost efficient way of mounting the ACS in a way that would benefit the user’s ability to customize the location as they see fit. The costs of magnets that are used to mount are up to $10 for a package of 10. These would be placed on the enclosure and secured in place with an epoxy, making sure that they would not transfer over to the user’s equipment. This method might even work in conjunction with the mechanical mounts making it even more secure, this way we might lose the ease of use with magnets but our overall security would be that much greater. 3.7 Software UI/SystemThis section will discuss the various options for software needed to build the system. The main software components of the system can be categorized like this:DatabaseU/I interfaceThese two components will combine to create our client server architecture. The server side will contain the database and the web page interface. The HTML site will utilize scripting and style sheets to perform functions and maintain a consistent polished look. We will most likely program the query and insert functions of sql in php scripts which we will embed into the web applications. The use of framework such as jquery is not at all out of the question as it would make things easier with regards to programming tasks. ?3.7.1 Database optionsThe top five databases that are used today are all very competitive in their design. The most well known database is SQL. Another major database system is Oracle’s 11g. IBM’s DB2 is now at version 10.5. SAP’ Sybase adaptive server enterprise (ASE) is another majorly know databases. PostgreSQL is an open source system. Another open source system is Maria DB Enterprise. MySQL which is part of Oracle’s now is a well known and used webbased database. TERADATA is which is known for its very large and expansive scale of database system. Amazon’s Simple DB is also a well used option. Of all of these options the primary interest of the team is functionality versus cost. We do not necessarily need a massive capacity for the DBMS we choose but it does need to be easily accessible from a mobile or web based platform. First DBMS system we analyze will be the well known and trusted SQL by Microsoft. This DBMS is a cornerstone of what standards a DBMS should possess. Known as SQL it’s acronym styled name is Structured Query Language. The structure of SQL is known as a relational database (RDBMS) SQL also has a structure for data streaming which is also relational (RDSMS). The scope of SQL is ease of use it works well within windows environment. This system however is designed for a more large scale database application. IBM DB2 can run on multiple operating systems such as linux, UNIX, Windows and IBM mainframes. It is a large scale enterprise database system. While it is an impressive system we do not need the cost or the complexity. The system can be manipulated from a command line statement or a GUI. It can be integrated into eclipse or visual studio and has API’s for a large variety of languages. Support for SQL and XQuery does exist in DB2 and there is implementation of XML data storage. SAP’s Sybase system is another massive database product that is available. Sybase is actually a compilation of database products. Typical application of this system is with companies and their infrastructure. There is a multiple of mobile products that could be of use to this project. One particular one is known as SQL Anywhere. This is a relational database with a small footprint which is designed for mobility or cloud based service. This system does not come in a low cost form which is not in line with the needs of this project. MySQL is an impressive database system with mobility and portability aspects. This system is open sourced and does not represent any big costs for development. It is an RDBMS (relational database management system) that is highly compatible with web based systems. There is no GUI interface accompanied with MySQL which makes it mainly a command line database system. The is a MySQL workbench application that can be used as well as many third party GUI tools that are open source as well. This system presents a viable open sourced option for the project. Amazon’s Simple DB is another database system that is focused on availability. It is distributed as part of amazon’s cloud services. This system will be accessible in this nature by any access point and all without the need for an additional server. There are data limits with the cloud service a domain created cannot exceed 10 GB in size. An entity cannot have more than 256 attributes and each attribute cannot be larger than 1 Kb. With the size limit of the attributes we will need to restrict from using images in the database and use only raw data. 3.7.2 UI platformsThe User Interface or UI, describes the view that the user interacting with the device has. The Platform of the UI is in charge of what occurs during the runtime. The components of the User Interface can include a display screen, mouse, keyboard and anything that the user interacts with and the software and hardware responds to.Microsoft platform offers two runtime environments that each utilizes different technologies for creating elaborate user interfaces. Microsoft uses the .NET framework and also has a subset of .NET called Silverlight. Silverlight allows for the developer to cross platform between windows and mac browser.Adobe AIR, Adobe Integrated Runtime, operates outside of the browser security sandbox which allows for offline usage that will enable the program to store data on the user’s computer. Adobe Integrated runtime allows the program to be built using Adobe Flash , Ajax , HTML or Adobe flex and can be used to create a desktop application.Google UI is implemented using the browser and JavaScript, and Google is currently focusing on creating a faster and more efficient experience with the technology. Even by just using Google Chrome you are expected to see a quickening in JavaScript execution time. One useful feature in the Google User Interface is Gears, Gears gives the software the ability to run offline and upon connection to the internet gather the retained information that was stored while offline. The popular libraries used by Google are jQuery, EXTJS and JQuery UI. A noted disadvantage of using GWT is that even though you have the ability to build a responsive web application certain basic framework aspects are missing making development time longer and more challenging. The low usage rate of the Google User Interface makes it harder to get help while learning the UI because documentation is sparser. 3.7.3 Software RequirementsThe Asset Control System is required to perform a set of tasks that include allowing or disabling access to the set of tools available for usage or checkout and billing the user for the time they have been using the tool. The software must have login and logout capabilities, or be associated with a barcode, magnetic strip, near field, or any other form of authentication.The database standards required for storage of project data and user login are as follows and depicted in Table 3.7.4.1 Example Variable Naming Prefixes. We will use symbolic naming in which the first letter of entities will denote type of variable. For SQL standards we will create entities and relations utilizing primary keys and foreign keys to maintain the integrity of the data. Their schema will allow for efficient collection of information for the different tasks. EntityPefixSchemaUserUUidManagerMMgridToolTTidReportRRidLogLLidTable 3.7.4.1 - Example Variable Naming PrefixesManagement is required to have the capabilities of adding new tools and removing tools from the database of available tools for checkout. The software must limit access to users that have a past due balance for a period longer than one week. Users must have the ability to create an account and the user account must be approved with the tool’s manager discretion. The length of time the user is accessing a tool will be monitored and stored in order to bill the user. A report must be created in order to charge the user for the time used. The software must restrict access through some sort of mechanism to control power or login to the tool. Access must be restricted if user is not signed up with an account or if user is past due on a balance owed. The software must have capabilities for the user to disable account and submit payment for time used.The software must authenticate users and not allow a user to access tools that they are not trained to use. The tools will be broken into categories that have clearance levels assigned to them. For the administrators a report will be required to show the usage stats of certain tools so the administrator knows which tools have a higher demand or higher usage time. Users must only have access to their own data of usage and charge statements therefore a pin must be required to access sensitive information.The system software will include framework and scripting languages that aid in the execution of commands through a web interface. While C++ is the main software that we will use in the system we will most likely utilize jquery as an alternative framework. This section will have subsections of the languages we will be utilizing for the project. 3.7.3.1 C++C++ is an object oriented language that is allows for generic programming purposes. Originally C++ was developed for usage in embedded or system programming. The C++ language is considered efficient and flexible and it can be used in either small or larger systems while maintaining ease of use in design. ISO, the International Organization for Standardization gave standards to C++ and has a current revision as early as two thousand fourteen. ?C++ is derived from the C language and was developed to be an extension to C. There are a plethora of standard libraries available and C++ has been a large influence in other programming languages like C#, and Java.?????Object storage in C++ is similar to C, but C++ allows for an object oriented approach. There are classes which allow for the use of encapsulation, polymorphism, inheritance and abstraction. Encapsulation is act of concealing information in order to ensure security is maintained. The way encapsulation is used is by declaring a member as either public, protected or as private. As the name suggest public members are able to be accessed by any function where a private member can only be seen within its own class, or a class that is granted access to the class where the private member resides. While programming it is recommended from a security standpoint to make everything a private member is possible.The use of inheritance in C++ enables one data type to inherit, or obtain the traits from a different data type. Unique in comparison to many languages C++ has the ability for multiple inheritances which as the name suggests is the capability for a class to be derived from multiple classes. Polymorphism is the capability of allowing one common interface for a myriad of implementations, but still allowing an object to behave different depending on the current circumstances the object is under. Lambda expressions are provided in C++ which allows for an anonymous function which is a unique feature. Overall C++ is considered a versatile language that employs the ability to code in an object oriented method or in a C like style, or both simultaneously. The most regarded features available in C++ are the versatility and ability to program in both methods but also the usage of classes and functions. These features make it a viable option for programming the Asset Control System.3.7.3.2 JQuery / JavascriptJavaScript coincides with HTML and CSS to create content for the World Wide Web. JavaScript is widely used and nearly all websites support it. The JavaScript language supports an object oriented approach, an imperative style and a functional programming style. There is an API available that makes JavaScript code able to work with text, arrays and even regular expressions. However unlike C++, C#, or Java, JavaScript does not employ the ability to use any I/O, which means no networking or storage. Network, storage or any type of I/O is done on the embedded host environment.JavaScript is executed on the client side, which means that bandwidth is saved on the web server side. Even though the code is executed on the user’s computer it still is relatively fast and occurs almost instantly because the entire process takes place on user’s computer and excess communication between the browser and the computer is unnecessary to perform the task. Because JavaScript has syntax that is written similarly to English it makes JavaScript relatively simple to learn.The structure for JavaScript is a derivative of the C programming language. JavaScript is not limited to only web based applications and can even be implemented in a PDF document. JavaScript, as a derivative of C, shares most of the structured programming syntax with C, including but not limited to, while loops and switch statements. Dynamic typing is a useful feature applied in JavaScript. Dynamic typing is a feature that does not confine a variable to a specific type, it allows the type to change freely. The standard for JavaScript is ECMAScript.The HyperText Markup Language, referred to as HTML, is the standard markup language that is used to develop web pages in conjunction with CSS and JavaScript. Cascading Style Sheets, CSS, is the portion of the software’s code that formats the way the web page will look. The benefits of using a combination of HTML, CSS and JavaScript is that it is widely used and quick to learn because of the similarity between English and JavaScript as well as the C Language and JavaScript.JQuery is a JavaScript Library that is petite and feature rich. It provides ?a cross platform library of JavaScript. JQuery is the most popular JavaScript library that is in utilization today. The popularity of JQuery stems from is being a vast quantity of useful tools but it remains free as well as open source. One of JQuery’s advantages is that is simplifies the act of creating and navigating ?a document. With JQuery it is easier to handle events and create Ajax applications. JQuery has been adapted and pulled from in order to create other frameworks such as YUI version three and Dojo. JQuery is actually included with Microsoft’s Visual Studio, which makes using it when programming in , both AJAX and MVC frameworks it has already been integrated into the platform. The features of JQuery is listed in Table 3.7.3.2.1 and describes the useful features of JQuery.The Document Object Model, or DOM, is a cross platform convention used for a variety of languages. It describes the interaction and represents the interaction of object in HTML, XML and XHTML.The DOM model includes creating a tree , called a DOM tree. In JavaScript DOM supports navigation in a variety of directions which makes it convenient.Table 3.7.3.2.1 JQuery FeaturesFeaturesDOMEventsEffects and AnimationsAJAXJSON ParsingFeature Detection Multi-BrowserAJAX, is short of asynchronous javascript and XML and it is used in conjunction with the languages mentioned to create a client side asynchronous web application. An asynchronous web application is one that uses a form of input and output that allows for numerous components to be processed at the same time. The asynchronicity allows for Ajax to send and retrieve data from a server and it will not interfere with the display on the existing page. Basically everything is happening behind a curtain and the user is not disturbed during some loading.In short, the development of the web began in the early to mid 1990s and web pages were comprised entirely of HTML pages, now there are many languages, CSS, HTML, JavaScript, JQuery etcetera that all work together to produce a powerful display and functionality.Java was designed to allow for creating a program on the java platform then being able to run the program anywhere that runs java without having to write another line of code. As of late Java has become implemented more and more into operating systems and is becoming pervasive in the technology world. Java is also integrated into popular web browsers which allows for a high level of versatility between platforms.During the creation of Java it was designed with keeping security measures in mind. A safety feature in effect is the ability to download code that may be from an untrusted source and basically test run that code in a safe environment where it is not capable of harming the user’s computer. Java allows a developer to build a dynamic and extensible program. Java is an object oriented programming language that utilizes classes. The classes in Java are kept in separate files that will be loaded upon need.Table __ Java vs C++SpeedC++JavaHierarchyInheritance tree can be created anywhere and there can be multiplesOnly one inheritance TreeDeconstructorsRequired to manually garbage collect to free memoryAutomatic garbage collector exists that operates in conjunction with a cleanup methodPrimitive TypesSame as JavaExamples: Int, long, double, char, byteSame as C++Method OverloadingSame as JavaIt is okay to have the same name as long as there are different inputs or outputs.Same as C++PointersSupportedNot availableException HandlingA call to a function is made when an exception is thrownExceptions are dealt with during runtime and are enforced at that time as wellHardware accessSuperior to Java because it can run and compile directly with hardware without excess code requiredAccess to hardware is not a direct pathGoto methodNot AvailableGoto functionality exists and allows you to use it to go to other places in the codeThe performance of Java is slower than the C and C++ language, but is faster of course than compiling machine language. Although the runtime of Java is slower than C++ it should be noted that the Time-To-Market with Java coding is the reason why some programmers favor it. The Java language was developed with a strong architecture of APIs that are designed well. Results are found quickly while programming with Java. There are studies that show that switching to java to develop increases programmer efficiency.3.7.3.3 and C# Programming LanguageC# is described as an object oriented language that was developed by Microsoft as a part of Microsoft’s .NET framework. Since C#’s initial development it has been adopted into the ECMA-334 standard. C# is utilized with general purpose projects and the most recent version was updated in two thousand fifteen. There are a list of goals that were documented during the creation of C#. The intention of creating C# was to create a simple and modern language while maintaining object oriented capabilities.?????The C# language is designed to detect array out of bounds and it has automatic garbage collection. The intended use of C# is for creating software that is suitable for being dispersed to distributed environments. C# offers a high level of portability, which is valuable to programmers that have familiarity to the C or C++ language already. There is also a built in support for internalization.?????Internalization capabilities mean that there is a simplified way to adapt the computer software that is developed into a different language. Internalization occurs during the development process and is the process of creating the software in a way that allows for it to be easily changed into a variety of different languages.?????The class libraries of C# were developed as part of the .NET Framework and they were written with a managed code compiler, the compiler used was called SMC, Simple Managed C. has similar functionality and they compile down to the same Common Intermediate Language.For the Asset Control Systems requirements and the team members developing the Asset Control System it appears as though the software should be written using C# because the team members are well versed with C#. C#’s object oriented capabilities and it’s high level of portability make it a viable option.3.8 Possible Architectures and Related Diagrams 3.8.1 Database StructureThis database structure will be implemented by the server and help to log all data entries made by the ACS. This database will also house the authorized user list that will be crucial in keeping accessible for modifications as more users will need to be added or removed depending on the company implementing the ACS will need. There will be two structures crated in the Asset Control System database. One will be structured on users, their roles, payments, and their account info. This is seen figure 3.8.1.1, this will be crucial for allowing general access and being able to invoice the user later. The other structure will be more information on the device identification, location, time used, and how it can be used. This structure can be seen in figure 3.8.1.2.Figure 3.8.1.1 – Database structure for the UserFigure 3.8.1.2 – Database Structure for the Device Identification3.8.2 Device communication networkThe type of network topology used for the Asset Control System will determine the minimum requirements for each individual asset controlling device station. ?This section will review some of the possible networking configurations that will ultimately allow for the same finished product, but achieve it in very different ways. The following figures 3.8.2.1 and 3.8.2.2 show how these different topologies would work.3.8.2.1 STAR TopologyFigure 3.8.2.1 – Star Topology when applied to ACSBenefitsAsset Control Device cheaperLess hardware neededLess powerful processor neededNegativesExtra “Room” controller needed as proxy between Asset controller and main serverLess secure due to more exposed hardwareIf “Room” controller goes down, entire room is inoperable instead of single device3.8.2.2 Internet of Things Style ToplogyFigure 3.8.2.2 – IOT Topology when applied to ACSBenefitsFewer number of total devicesMore secure due to fewer network hopsEach Asset controller is independent of one anotherNegativesMore powerful hardware needed at each Asset controller3.8.3 Circuit Diagram The main circuit that will need to be designed is the one that is associated with granting access to the device we are controlling. This circuit will involve not only the microcontroller that we choose as the best option, but it will also show how the data will be transferred from the embedded CPU to the microcontroller. This circuit will also need to demonstrate that the signal provided by the microcontroller will be able to change the status of our triggering device to allow the load device source power and turn on. Being able to showcase these circuits and their abilities will require the use of two different programs. The first program, EagleCAD, will allow us to build and model our circuit using the actual pins that will be in use when practically designing the circuit. This program will also let us design a PCB for possibly handing off to a PCB vendor if we decide to use that method which will be discussed later. This program can be downloaded and used for free as long as the file size does not go over the limit, which for our design should not be the case. The second program is Multisim, this is a circuit simulation program that will allow us to verify that the circuits are working as they should when under correct conditions. This program is available on the senior design and SMART labs; it also can be downloaded and used for free under a trial license. Using these 2 programs we can better design our circuits to be sure that they will be working correctly.3.8.4 Power Path The path of power for the ACS will be a very crucial aspect of the design. The user devices we intend to provide control over cannot lose any of the original power. Figure 3.8.4.1 is a basic block diagram of the power should be split so the whole system can be powered from one standard power outlet. The AC to DC power supply can either be designed using a step-down transformer, rectifier, and filtering capacitor, or it can be bought off the shelf like the Mean-Well RS-25-12, this will provide 12 volts power source for any peripherals that utilize 12 volts, which is a common voltage. From this power converter it will go to a linear voltage regulator that will be low noise and provide 5 volts to the microcontroller the embedded computer. The microcontroller is then connected to the trigger on the switch; this switch is also tied to the original source voltage so that load could then receive required power to function normally.Figure 3.8.4.1 – Power path block diagram3.9 Relevant Programming Languages3.9.1 C++ Programming LanguageC++ is an object oriented language that is allows for generic programming purposes. Originally C++ was developed for usage in embedded or system programming. The C++ language is considered efficient and flexible and it can be used in either small or larger systems while maintaining ease of use in design. ISO, the International Organization for Standardization gave standards to C++ and has a current revision as early as two thousand fourteen. ?C++ is derived from the C language and was developed to be an extension to C. There are a plethora of standard libraries available and C++ has been a large influence in other programming languages like C#, and Java.Object storage in C++ is similar to C, but C++ allows for an object oriented approach. There are classes which allow for the use of encapsulation, polymorphism, inheritance and abstraction. Encapsulation is act of concealing information in order to ensure security is maintained. The way encapsulation is used is by declaring a member as either public, protected or as private. As the name suggest public members are able to be accessed by any function where a private member can only be seen within its own class, or a class that is granted access to the class where the private member resides. While programming it is recommended from a security standpoint to make everything a private member is possible.The use of inheritance in C++ enables one data type to inherit, or obtain the traits from a different data type. Unique in comparison to many languages C++ has the ability for multiple inheritances which as the name suggests is the capability for a class to be derived from multiple classes. Polymorphism is the capability of allowing one common interface for a myriad of implementations, but still allowing an object to behave different depending on the current circumstances the object is under.Lambda expressions are provided in C++ which allows for an anonymous function which is a unique feature. Overall C++ is considered a versatile language that employs the ability to code in an object oriented method or in a C like style, or both simultaneously. The most regarded features available in C++ are the versatility and ability to program in both methods but also the usage of classes and functions. These features make it a viable option for programming the Asset Control System.3.9.2 Java Programming LanguageJava was designed to allow for creating a program on the java platform then being able to run the program anywhere that runs java without having to write another line of code. As of late Java has become implemented more and more into operating systems and is becoming pervasive in the technology world. Java is also integrated into popular web browsers which allows for a high level of versatility between platforms.During the creation of Java it was designed with keeping security measures in mind. A safety feature in effect is the ability to download code that may be from an untrusted source and basically test run that code in a safe environment where it is not capable of harming the user’s computer. Java allows a developer to build a dynamic and extensible program. Java is an object oriented programming language that utilizes classes. The classes in Java are kept in separate files that will be loaded upon need. Table 3.9.2.1 Shows the comparison of C++ to JavaSpeedC++JavaHierarchyInheritance tree can be created anywhere and there can be multiplesOnly one inheritance TreeDeconstructorsRequired to manually garbage collect to free memoryAutomatic garbage collector exists that operates in conjunction with a cleanup methodPrimitive TypesSame as JavaExamples: Int, long, double, char, byteSame as C++Method OverloadingSame as JavaIt is okay to have the same name as long as there are different inputs or outputs.Same as C++PointersSupportedNot availableException HandlingA call to a function is made when an exception is thrownExceptions are dealt with during runtime and are enforced at that time as wellHardware accessSuperior to Java because it can run and compile directly with hardware without excess code requiredAccess to hardware is not a direct pathGoto methodNot AvailableGoto functionality exists and allows you to use it to go to other places in the codeTable 3.9.2.1 - Java vs C++The performance of Java is slower than the C and C++ language, but is faster of course than compiling machine language. Although the runtime of Java is slower than C++ it should be noted that the Time-To-Market with Java coding is the reason why some programmers favor it. The Java language was developed with a strong architecture of APIs that are designed well. Results are found quickly while programming with Java. There are studies that show that switching to java to develop increases programmer efficiency.3.9.3 and C# Programming LanguageC# is described as an object oriented language that was developed by Microsoft as a part of Microsoft’s .NET framework. Since C#’s initial development it has been adopted into the ECMA-334 standard. C# is utilized with general purpose projects and the most recent version was updated in two thousand fifteen. There are a list of goals that were documented during the creation of C#. The intention of creating C# was to create a simple and modern language while maintaining object oriented capabilities.The C# language is designed to detect array out of bounds and it has automatic garbage collection. The intended use of C# is for creating software that is suitable for being dispersed to distributed environments. C# offers a high level of portability, which is valuable to programmers that have familiarity to the C or C++ language already. There is also a built in support for internalization.Internalization capabilities mean that there is a simplified way to adapt the computer software that is developed into a different language. Internalization occurs during the development process and is the process of creating the software in a way that allows for it to be easily changed into a variety of different languages.The class libraries of C# were developed as part of the .NET Framework and they were written with a managed code compiler, the compiler used was called SMC, Simple Managed C. has similar functionality and they compile down to the same Common Intermediate Language.For the Asset Control Systems requirements and the team members developing the Asset Control System it appears as though the software should be written using C# because the team members are well versed with C#. C#’s object oriented capabilities and it’s high level of portability make it a viable option.4 Related Standards4.1 Design impact of relevant standards The PCI compliance standards help mold the pathway that is needed take for storing data, in order to store data in a safe way our programming will need to include encryption. Sensitive data cannot be stored in a location that does not have monitored access of whom is accessing it. A security management system needs to be in place that will deal with any unauthorized situations that may occur.To follow standards from PCI it is necessary to implement a firewall and keep the firewall up to date to protect sensitive cardholder data. The payments for time used with a tool must be placed over a secure network and the information must be encrypted. Sensitive data includes card numbers and addresses, the last four digits of a card’s numbers are allowed to be kept but the remaining are not allowed.The hardware chosen to encase the Asset Control System must be connected in a way that cannot be stolen and if the user interface portion is stolen the cardholder data must be inaccessible to thieves. The economic constraints point in the direction of choosing a housing option that is simple and can be produced at one of the University of Central Florida’s machines. Economic constraints also impose upon the Asset Control System the type of scanning and tool checkout equipment that must be chosen. A more expensive option like facial recognition is not recommended and something less expensive like barcodes and barcode scanners with a combination of magnetic strips to authenticate the user.The time constraints that the Asset Control System is under require a simple hardware design and a simple software design. During the summer semester there are only twelve weeks instead of sixteen, so the development time of the product is crammed into a smaller time period. The economic constraints we have require that if we are accepting credit card or debit card payments that we are fully compliant with the PCI standards or the Asset Control System will incur fines and potentially be disallowed accepting payments in person or online.The software portion of the Asset Control System needs to contain a password changing ability, in order to maintain PCI compliant it is necessary to have passwords that are updated on a regular basis, customers may not be allowed to use a default password and only a customer with an assigned identification number can access the data associated with records with that identification number. Software testing must be performed in order to test that the software follows the PCI standards and keeps user information safe. 4.3 PCI Compliance StandardsPCI compliance stands for Payment Card Industry, and is used to protect a consumer’s sensitive information such as their debit, credit, prepaid card or any personal information. These PCI security standards are developed by the Payment Card Industry Data Security Standards. PCI compliance ensures a safer way to transmit cardholder data.In order to accept credit card payments there are a myriad of PCI standards that must be met to ensure the customer’s data safety. The PCI basic requirements are broken into twelve requirements that have adjoining requirements associated with each requirement.The process implemented must be built and maintained to be secure. Maintenance must be performed on existing firewalls that are installed in order to protect data. Passwords to any running systems on your software and computer must be something unique and not left as the vendor supplied default password. It is recommended the passwords are changed regularly to maintain security.The cardholder’s data must be protected, and wherever that data is stored must be protected as well. Encryption must be used to protect valuable information that is passing through public networks. Where encryption is used it is recommended that the encryption key is stored in a segmented area away from the data that is encrypted.There must be a management system put into place that will deal with vulnerabilities. The management system is usually comprised of an anti-virus software that is kept up to date. The software system must be developed to be secure and any applications that comes in contact with sensitive information.Strong access control measures must be implemented. To implement these strong access control measures you must restrict access so data you handle or share is on a need to know basis. The PCI security mandates that each person with computer access must be assigned an ID and there must be a restriction to card holders data based on individuals IDs.There must be monitoring of networks as well as testing of said networks to track and monitor access to network resources and the customer’s data. The tests must be designed to ensure that access to sensitive data is protected. Finally the software must maintain an information security policy. The systems Information Security Policy must address all the policies that are being maintained to protect information.Under no circumstances may credit card information be transmitted or received through email, and only the last four digits of the credit card is allowed to be visible. If the cardholder data is stored on a physical piece of paper, that article must be locked away in a secure area. The area in which the papers are locked must only be allowed to be accessed by an authorized individual.In order to bypass any of the aforementioned policies there is a process in which you must write a written request. If any other these requirement standards are not met it may result in suspension of the ability to obtain physical or electronic payments and the infraction may result in a fine. Regardless of company size the PCI compliance requirements must be met and maintained.4.4 Data Security Standards The ISO/IEC 2700 group of standards are designed to help companies or organizations keep information about consumers or employees secure. The group of standards were developed to protect many kinds of secure information, from intellectual property to simple details about an employee or any sensitive information that you possess that should not be viewed by an unauthorized individual. ISO/IEC 27001 provides the standards that are necessary for maintaining data security for your security management system.The International Electrotechnical Commission IEC, along with the International Organization for Standardization the ISO, created the system to unite the world with one system for standardization. The national bodies that are encompassed within the IEC and the ISO are responsible for developing and participating in the development of these international standards that we use.In general the standards were engineered to provide requirements needed to aid in the creation, implementation and the management of an information security management system. The ISO/IEC standards have been around since two thousand and thirteen, it was an update to the two thousand five version.Clause 6.1.3 is an overview of how a company can respond to certain data risks by using a treatment plan that the organization develops. There are one hundred and fourteen controls in the newer standards which is eighteen less than the previous set of ISO/IEC standards. A few policies that are relevant to us include:A.5: Information security policiesA.6: Organization of information securityA.7: Human resource securityA.8: Asset managementA.9: Access controlA.10: CryptographyA.11: Physical and environmental securityA.12: Operations securityA.13: Communications securityA.14: System acquisition, development and maintenanceA.15: Supplier relationshipsA.16: Information security incident managementA.17: Information security aspects of business continuity managementA.18: Compliance; with internal requirements, such as policies, and with external requirements, such as laws. The National Institute of Standards and Technology, also known as NIST has a Computer Security Resource Center, CSRC, which actively shares information security tools and the practices necessary to maintain data security. NIST helps by providing resources to schools, government and organizations to maintain security for data protection. NIST Cryptographic Standards and Guidelines Development Process describes the procedures that are necessary for maintaining the cryptographic standards that need to be applied.Authentication is a major step in security. There are three types of authentication factors that should be met with authenticating a user. The first being something the user knows, this can be a password or a pin along with their username. The second is something the person owns, like an access card or a key. The third is biometrics which is the most costly form of authentication, it utilizes fingerprint recognition or voice recognition. To be considered a strong form of authentication there must be two of the three authentication factors. Passwords are the least expensive form of authentication and they require extra security.When a thief wants to get someone’s password there are a variety of attacks they can perform, therefore it is important to be mindful of them and how to prevent them from occurring. Electronic monitoring is described by listening to a network’s traffic and trying to gather information. If the file that stores the password is not protected the hacker will try and get into a file that contains all the passwords. The way to prevent unwanted access to the password files is to encrypt and use access control mechanisms to prevent unauthorized access.To keep user’s password and subsequently their sensitive data stored within their account safe encryption is used, as well as setting passwords that are considered difficult in strength level. After a password is encrypted a popular technique is then hashing the password. When a password has not been changed for a substantial period of time a user is vulnerable to attack, therefore it should be implemented that passwords will expires after a certain amount of set time.If a system does not limit the amount of times a user is allowed to attempt to login then there is an increased risk of attack by a computer randomly entering thousands and thousands of attempts in order to eventually, enter the correct combination of words and letters. One time dynamic passwords are used for authenticating a user for a service that would only be used one time, and it is used for extremely high level security measures. Cryptographic keys use private keys along with a signature that is digital, it is considered better than a simple password.Encryption is used for passwords, entire files and query strings as well in order to conceal information that is required to maintain hidden to ensure a user’s security is not placed at risk. The encryption does not prevent unauthorized access to a file or piece of data, but it does make it more difficult to understand. When encryption is used it is necessary to have the encryption key to turn the string of unintelligible numbers and characters into useful data. The government and military has been using encryption for a long time in order to communicate in private. Currently encryption is used to protect files and data that are in transit using a network, mobile phone or a Bluetooth device.The act of encryption is only as secure as the encryption scheme that is being used. To generate an encryption scheme it requires. In some circumstances the encryption key is then encrypted to add another layer of security. There are two forms of encryption, symmetric and public key encryption. Symmetric key encryption is when the encryption and the decryption keys are identical. In order to communicate from one party to another it is required that they both obtain the same key. Public key encryption is when the key is published to anyone can utilize the key to encrypt messages, however the receiving party is the only one with access to the decryption key. Another term for symmetric key is private key encryption, it was the first form of encryption and then Public Key encryption stemmed its usage in 1973.There are a few types of symmetric key algorithms because they can either utilize block ciphers or stream ciphers. A block cipher uses a fixed length portion of bits that are referred to as blocks in order to perform an algorithm upon it. Block ciphers are useful for encrypting large amounts of data. Using just a block cipher alone is not considered a strong form of security, however it may be used in conjunction with a universal hash function. The stream cipher is a little different because a set of plaintext digits are joined with a pseudorandom stream of digits. For a stream cipher to be secure it must be a large period and it is necessary that is it completely impossible to get the encrypted string from the keystream.Benefits of Public Key Encryption, before the introduction of public key encryption, in order to have a secure and confidential communication between parties it was necessary for both parties to obtain the same key. The difficulty with needing the same key is that the key would have to be given to the recipients which allows for a chance of the key getting intercepted by an unauthorized party. Public Key Encryption is safer than symmetric key encryption.Using encryption is a necessity in order to keep sensitive information out of the hands of unwanted people. Encryption must be done on passwords at minimum and the network must be secure if sensitive data is being passed through it. 5 Realistic Design Constraints5.1 Economic Constraints The cost of the design needs to be minimized as there is no outside funding from a third party. The hardware components will be chosen based on price and performance, and fortunately the coding portion does not come with an actual price tag, only time. To avoid costly fines for not implementing cyber security standards it is important to ensure everything is PCI compliant. Each record stolen by a hacker or unauthorized access to account details can result in a fine on average of one hundred and seventy five dollars.The design must cost less than four hundred dollars because the cost will be split between four individuals and the cost needs to be less than one hundred dollars each. The hardware options vary in price depending on the type of technology used.User Authentication Options and tool recognition options are the primary economic constraint for the Asset Control System the average price per unit of these items are available in Table 5.1.1 Hardware Components and Average Cost.Table 5.1.1 Hardware Components and Average CostAccess Restriction Options for allowing and disallowing users to checkout or use tools will be one of the main costs of the Asset Control System. Software Economic Constraints, some database software will require a monthly subscription or a onetime fee. Software development does not have an economic constraint because we will be working together to write the code. The more software intensive the project the more cost consciences we will be.Using options like Barcodes to read which tools the user wants to check out is a very inexpensive option for the tool checkout. By utilizing the magnetic strip that is already embedded in every student’s user identification card, the Asset Control System would only need to build a reader to gather information from the student identification card.5.2 Time Constraints The time allotted for assembly of final design and coding is twelve weeks. During those twelve weeks there are a lot of things that need to be accomplished. The coding is expected to be performed during the assembling of the hardware and the team shall work in unison on parts that can be performed at the same time and are independent. As a team the Asset Control System will be developed, hardware and software are two different sections that can be started at the beginning of the semester.In order to maximize available time the programming we do must be efficient, in order to meet our time constraint planning and delegating tasks using a software engineering approach is mandatory. Creating a list of tasks is imperative to stay on track. The system that is implemented needs to be simple to manufacture because of the time restrictions. Overall the time for deploying the Asset Control System is tight, there is a software and hardware portion of the Asset Control System is limited and the constraint of time is real and a pressing thing to remain aware of.5.3 Environmental Constraints In order to be environmentally conscious it is required that the Asset Control System uses environmentally friendly materials for labeling the tools that can be checked in and checked out. It is necessary to use a labeling device such as RFID or barcode labels that are durable so they will not need to be replaced often. One thing to keep in mind environmentally is the use of RFID cards, if access to the lab holding the tools is done through a RFID card reader the system is using a lot of extra plastic that could be avoided if entrance could be granted using an identification card that the customer would already own. 5.4 Safety and Security There are safety concerns associated with the Asset Control System, users that are not trained on certain tools will not be allowed to access those tools, and when access is requested for a tool that is considered to inherently have danger the user will need to sign a safety agreement to say they understand the risks associated with using the tool improperly.Credit and debit card security standards are described with PCI compliance standards. In order to follow PCI compliances we must make sure the cardholder’s data is stored and accepted in a secure manner. PCI Compliance Checklist:Build and maintain a secure networkFirewall must be installed and up to datePasswords must not be default, and must be changed regularlyProtect User’s Card DataRestrict access, only authorized individuals can view dataEncrypt DataDo not allow sensitive information to be sent or received through emailPhysical papers must be stored in a lock area with restricted accessMaintain a management program to ensure vulnerabilities are taken care ofAnti-Virus software must be used and up to dateStandards must be maintained and created for secure applications and systemsRequire strong access control measurementsCardholder data is restricted on a need to know basis An ID needs to be assigned to each userTrack and monitor test networksRegularly perform tests on systems in place for security systemsRegularly perform tests on processes relating to security systemsTest security systems to ensure correct functionalityMaintain and information security policyA policy must be in effect that explains the how information security is being kept Security constraints will limit our device to store credit card or personal information on a secure storage device, if payments for tools will be accepted online or in person the PCI compliance standards will need to be implemented to ensure fines are not accrued. If the display chosen to interface with the guests holds data about users and their address or card data, security measures must be taken to ensure that if someone were to steal the device that they would not have access to user data. A design constraint for the hardware will be making sure the device is not easily stolen and data can not be accessed excessively or accessed by unauthorized individuals.5.5 Ethical and Health ConstraintsThe ethical constraints deal with security and privacy to the users and their profiles. The privacy of information provided by users is of utmost concern. User profiles will have contact information and possibly financial account liability. Because of this there must be great care taken to ensure security of a user profile data. In order to eliminate some liability of the system we can limit data to only necessary information. We can also encrypt the password and username using a hash method. This will prevent the data from being deciphered and used to access the account. It will also help to stop unwanted activity logs due to the user log being obtained. Another ethical concern will be with the authorship and development credit of the system. This system will be credited to all members of this design team. This means all team members will retain rights to the use of the system and / or further development and adaptation of the system. Since there is no sponsor we will not need to credit any other support. The rights of the system to be given or “sold” to a third party will be at the sole discretion of the team and should be considered to have equal share in any revenue generated. Since there are four members of the team any revenue generated from this product will split evenly among the members. Data integrity is another ethical concern. We do not want the system to make incorrect entries into the activity table. We also do not want to allow users to edit the activity data for a log. This would not suit the goals of the system. Reports would not be considered representative of the actual activity. One of the primary objectives of this system is to track and report activity of assets by user. There will be many tests of the data entry methods to ensure that this data is precise and reflective of actual usage. Two factors dominate this concern. The usage time and the user associated with it those factors. Both present a threat to integrity so great care must be taken in assuring the data is accurate. Health constraints are not are not very prevalent with this project. The main safety concerns are the project being safe from shock or damage of assets. The relay switch devices will need to be enclosed and also will need to meet safety standards with respect to electrical standards. The devices will also experience some heat which will need to be assessed for possible temperature dangers. If it is determined that the devices are getting too hot we will opt to add in a cooling method to mitigate the problem.5.6 Manufacturability and Sustainability ConstraintsIn order for the Asset Control System to stay viable for many years to come, careful precautions must be taken to ensure successful manufacturing and ease of sustainment for not only the current development process, but also for the future. ?Depending on the type of device made in a manufacturing environment, it is quite common that many components become obsolete before the first device rolls off the manufacturing floor. ?Sometimes this cannot be avoided due to unforeseen company shutdowns and/or bad economic conditions. ?Nevertheless, each component that is part of the device BOM should have its lifetime verified before use in the finished product. ?Furthermore, no components shall be used during the design time that are not currently released. ?The main manufacturing constraints posed on the Asset Control System are those that relate to the project budget (since the project is self-funded, which is explained in section 9.2 Budget and Finance). ?The other constraints can be minimized by following the guidelines set out in the IPC STANDARDS FOR ELECTRONICS MANUFACTURING. ?This is an exhaustive guidelines list for electronics manufacturing that is accepted by professionals across the world. ?Some basic takeaways for manufacturing guidelines that shall be used during the manufacturing process are:Surface Mount Devices (Active or Passive) shall be limited to standard package sizesNo custom size package devices will be usedAll components shall be sourced from a reputable vendor (local or online) that has been in the field for at least 5 yearsAlso vendor must have a relatively short lead time (under 6 weeks, depending on the part type)The sustainability aspect of the Asset Control System may be more difficult. ?Due to the constant changing nature of security standards (because of advancing technologies and vulnerabilities discovered in current technologies), there is no way to “future-proof” any device that utilizes electronic payments and/or third-party authentication services, such as Facebook, Google+, etc. ?An example of this would be the relatively recent conversion from the OAuth authentication standard to the OAuth2 standard. ?Many services that utilized OAuth for third-party authentication had to refactor their code structure to accommodate the forced change to the OAuth2 standard. ?The actual use of the third party authentication services is still not finalized because of this ever-changing nature. Since a fundamental aspect of the Asset Control System is to charge users for their usage of the controlled devices, electronic payment transactions is a basic requirement that cannot be avoided. ?The electronic payments processing will be evaluated twice a year (as long as the project is active) to ensure it complies with the Payment Card Industry Data Security Standard (PCI DSS). ?The PCI DSS is a set of requirements established to ensure that all merchants who process, store or transmit credit card information maintain a secure transaction environment. ?This will not prevent obsolescence of the currently used technology, but will, however, ensure that the Asset Control System will stay proactive regarding electronic payment transactions.6 Project Hardware and Software Design Details6.1 Initial Design Architectures 6.1.1 Initial Design Block Diargrams6.2 Hardware Design Details6.2.1 Switch Design For the circuit design of the switch we wanted to utilize the capabilities of the SCR. Figure 6.2.1.1 shows the simulation from Multisim of the designed circuit. However, due to the SCR being only able to cover half wave of the AC cycle, two were needed to achieve full power, in parallel, opposite of each other in position. Then a resistor was placed in series of the standard AC source and the parallel SCRs to simulate a device load that would require 5 A of current. The adjustable DC power sources were used to mimic the microcontroller signal being applied to the gate of the SCRs. There ended up being an issue with having both SCRs connected and getting them to trigger at the right moment. This caused the reverse bias SCR to turn on and allow for current to flow to the load when no voltage was applied to its gate, as shown in the oscilloscope reading in Figure 6.2.1.1. This could result in the device still being used and possibly damaged due to insufficient current.Figure 6.2.1.1 – Multisim simulation of the switch design using SCRsThis finding led us to go back to a more simple and rugged design using a standard PCB relay as the switch. Figure 6.2.1.2 below shows the resulting circuit simulation in Multisim. The simulated oscilloscope shows that when the relay gets turned on by about 6 mA of current, the voltage to the load matches that of the source which is what we need to supply. In the following figures 6.2.1.3-5, the data gathered from the simulation shows that the PCB relay does output voltage and current in a comparable manner that would allow for the load device to perform at normal conditions. The power output of the relay was also calculated and for the simulated load would be able to output 1100 W, while the power needed to turn on the relay would be significantly low at 0.02 W. The relay remains latched until the current goes below 1.4 mA or 0.7 V. This gives us some room for any fluctuations in power while the load device is in use. It should be noted that the relay in the simulation is not the one that will be used on the ACS but the specifications of the relay simulated and included in the schematic have similar characteristics of the TE Connectivity relay we wish to use.Figure 6.2.1.2 – Multisim simulation of switch design using a PCB relayV(coil)V(load)I(coil) (A)I(load) (A)02.19E-0401.05E-050.22.19E-044.00E-041.16E-050.52.19E-041.00E-031.18E-050.92.19E-041.80E-031.15E-051.32.19E-042.60E-031.15E-051.82.19E-043.60E-031.20E-052.32.19E-044.60E-031.20E-042.51.58E+005.00E-033.59E-022.71.9E+025.40E-034.49E+0032.2 E+025.99E-035.00E+003.22.20E+026.40E-035.00E+00Table 6.2.1.1 – Results from simulation of switch designFigure 6.2.1.3 – Graphical analysis of load voltage and coil voltageFigure 6.2.1.4 – Graphical analysis of load current and coil currentFigure 6.2.1.5 – Analysis of load power and coil power vs. coil voltageV(coil)P(coil)P(load)002.30E-090.28E-052.55E-090.50.00052.59E-090.90.001622.52E-091.30.003382.52E-091.80.006482.63E-092.30.010582.63E-082.50.01255.66E-022.70.014588.86E+0230.017971.10E+033.20.0204771.10E+03Table 6.2.1.2 – Calculated power on the load and coil 6.2.2 Microcontroller Circuit Design The circuit of the microcontroller is one of the more crucial parts of our design, besides the integral software and database that will be developed to make use of all the hardware. Using the Arduino ATMEGA88 series there are many things to take into consideration. The first of which is making sure that it has a highly reliable and noise free power signal which will be coming from the linear voltage regulator. This circuit is clearly shown in figure 6.2.2.1. This circuit was designed in EagleCAD like all the circuits for the microcontroller. The input comes from a 12 V DC supply like will be coming from the power converter that is to be designed or bought off the shelf. The two capacitors that are used in the circuit are used to decrease noise going into the regulator and coming out. The value for C4 is 100 nF and the value for C5 is 10 uF. The output of this circuit will be 5 V which will then be used by the microcontroller and the embedded computer. Figure 6.2.2.1 – Linear voltage regulator circuit Equally as important as a noiseless dependent power supply, is the need for a reliable clock that can be used by other devices if needed. For that reason we decided against using the internal timing provided by the ATMEGA chip. The use of a larger 20MHz clock allows for more use of it in other applications if we need it. The capacitors on either side of the crystal are to keep the clock signal free of noise and for this the recommended value for both C1 and C2 is 22 pf.Figure 6.2.2.2 – Clock oscillator sub-circuit The following sub-circuits of the microcontroller circuit utilize the ports of the ATMEGA microcontroller. The sub-circuit, for the LEDs, figure 6.2.2.3, utilize three ports for each of the three colored LEDs, this way we can give a status for debugging purposes on the PCB itself. Figure 6.2.2.4 shows the switch which was simulated in multisim in section 6.2.1. The resistor in line is used to reduce the voltage in the line as there could be a low amount of voltage present when the microcontroller is not sending out a signal to the relay. The pins being used in figure 6.2.2.5 are the communication lines for the embedded computer to the microcontroller. We plan on using standard RS-232 for serial communication for sending whether or not the user is authorized access or not. This communication will rely heavily on the communication in the embedded computer with the access control option and the database to make sure that there is an approved user requesting access. This communication will be discussed more in the software design portion. Figure 6.2.2.3 - RGB LED sub-circuitFigure 6.2.2.4 – Switch Sub-circuitFigure 6.2.2.5 – Embedded communication lines Using the EagleCAD drawing of this circuit, it will be easier to start the build of this circuit so we can test some of the more important fundamentals to prove that our basic setup and access control will work. We can even begin testing this before we get the embedded computer and all the software debugged. The other benefit to using this software is the ability to build a circuit board. The benefit of this is that we could then have our circuit board made to our specifications and have sent back to us to build. Though this will still be determined later, it would be good to have the board design ready. This microcontroller circuit will be the same for every version of the ACS we create, the access options will vary depending on what is most secure and accessible. Figure 6.2.2.6 – The complete microcontroller circuit6.2.3 Access Control devices The purpose of the ACS will be to incorporate several means of access control methods, in this way our product will be customizable to fit in several different environments. Concluding the research we have made into these devices we have chose 3 different access control means that will provide the robust design we are seeking to accomplish. The actual implementation of the database and logging system of the data these sensors and readers gather will be further discussed in the software design section. The following figure 6.2.3.1 shows how the basic data path will be planned from the access control point to the load device.Figure 6.2.3.1 – Basic flow of data from the Access Device The first of these means is a combination RFID/NFC reader from HK Elechouse Electronics Technology Co. This is a USB device that will not only read in information from most RFID tags and cards, it will also be able to communicate with most NFC enabled phones, being able to push or pull data from android devices. Since this reader is USB it will not use any pins on the ATMEGA. The access authorization data will be sent from the embedded computer to the MCU through the USART serial lines. The code for this device is open source so manipulation of the data being used is possible for customization as we need it for the database and logging system. GO2NFC141U RFID/NFC readerSupply Voltage: 5V regulatedSupply Current: 100mA (Max)Operating distance:50mmOperating frequency: 13.56 MHzOperating Temperature:0 to 50 ?CDimensions:46.0mm x 48.5mm x 10.5mmCost:$19.00 (ebay) For an easy and cheap access granting system or to allow for a secure guest access setup we intend to utilize a magnetic stripe reader that will be able to read data encoded in the stripe. Just as the RFID/NFC reader will use USB so will this reader, thus the main database look up and time logging will all take place directly on the embedded computer. The grant of access would come from the embedded computer on the USART data line to the microcontroller. Generally there is no software truly needed for the magnetic stripe readers. The raw data that is gathered from the stripe would be taken in and cross referenced with our database and depending on the result of this the card information would be logged and then access granted to the user, whether this is a temporary use case for guest access or the permanent solution for the load device ACS, we intend to make sure the option is available to better accommodate the environment. OSAYDE MSR90Supply Voltage: 5V regulatedSupply Current: 40mA (Max)Operating life:500,000 swipesError Rate: 0.5%Operating Temperature:-20 to 70 ?CDimensions:90mm x 27mm x 28mmCost:$12.88 (Amazon) The last access control device we are going to implement will use biometrics as the key. We are going to incorporate a fingerprint scanner that will use an open source API that will allow us to manipulate the data as we need. This will help with logging the user that wished to gain access and verifying them with our database. The fingerprint scanner is another USB device so it will be communicating with our embedded computer directly as the other access control devices will be. This will provide the embedded computer with direct logging and granting access. ZK4500Supply Voltage: 5V regulatedSupply Current: 170mA (Max)Resolution:500 DPIFingerprint Sensor: Optical SensorOperating Temperature:0 to 55 ?CDimensions:53mm x 80mm x 60mmCost:$45.00 (Amazon) 6.2.4 Embedded Computer The utilization of the Broadcom BCM2837 64Bit quad core processor would be the most beneficial to the ACS. Thus, the 3rd generation Raspberry pi development board will serve as our embedded platform as it has more for the ACS to utilize as far processing power and features. The power is going to be supplied from the 5 volt line on the microcontroller circuit. Figure 6.2.4.1 shows which pins will be used for the serial communication lines between the microcontroller and the embedded system. These lines will need to have a voltage divider circuit on them as the communication lines for the ATMega operate on a 5 volt level and the Pi operates on a 3.3 volt line. The database structure and algorithms needed for this communication will be further explained in the software design section.Figure 6.2.4.1 – GPIO Header with UART transmission lines highlighted as well (Permission Requested from element14) Raspberry Pi 3 Model BOperating Voltage:5 VOperating current:2.5 A (max)Operating Temperature:0 to 70?CCPU Speed:Quad @ 1.2 GHzRAM:1 GB SDRAMUSB:4 ports (2.0)GPIO:40 PINS 6.2.5 LCD Touch screenThe addition of a touch screen will allow for greater ease of use for the ACS. The LCD screens will be small and only used for administrative purposes. It will allow for direct interfacing with each of the ACS systems. The screen is a TFT 3.2” LCD. IT will utilize the SPI pins on the GPIO of the Raspberry Pi. The exact pins that will be needed are shown in figure 6.2.5.1. Due to the LCD touch screen only needing use of the SPI pins, power pins, and a few others for buttons on the touch screen board itself, the space requirements that we wish to not interfere with the ACS will not be greatly affected.Figure 6.2.5.1 – GPIO Header with the pins needed for the touch screen highlighted (Permission Requested from element14)3.2 Inch TFT LCD Display Module Touch ScreenOperating Voltage:3.3 - 5 VOperating current:1 A (max)Operating Temperature:-20 to 70?CResolution:320 x 240 (pixel)Touch Screen:4 Wire Resistive Size of the module:85.7 x 64.6 mmBrightness:250 LumensIllumination type:ReflectiveCost:$13.396.2.6 Enclosure Design The ACS will have a custom case that will be purchased from Hammond Manufacturing. The box will be an ABS plastic enclosure which will make it easier for the box to be modified if more holes needed to be place in it for clearance or running wires. This enclosure has internal mounting holes that should help with stabilizing the printed circuit boards within it. Figure 6.2.6.1 shows the dimensions of the enclosure which will be fitting the microcontroller PCB, the Raspberry Pi, and the power converter. Another option that is available with this enclosure are “feet” adapters that will be an efficient way to mechanically mount the ACS with the secure straps. Due to it being made out of ABS plastic it will be easy to mount the LCD touch screen within the cover of the enclosure. The enclosure also has a seal that goes around it that makes it watertight and helps meet our goal of being a more rugged design.Figure 6.2.6.1- Hammond Manufacturing enclosure drawing (Reprinted with permission from Hammond Manufacturing) 6.3 Software Subsystem The software subsystem will use a client server architecture. We will use a database server to control and record data. We will have target platforms that we will use to build the system for. The server will act as the database and the host for the web page and or mobile application. Due to the load of software we will use the hardware specifications will be expressed in this section. 6.3.1 Target PlatformsThe target platform will be raspberry pi. We are considering using windows 10 IOT as the operating system on board the raspberry pi. The main reasoning for this is that the operating system will need to communicate with a central device. Since these communications will be using a wireless technology drivers will be necessary. ?We will target the android mobile platform for mobile access to the system. 6.3.1.1 Windows IOT (internet of things)Universal windows applications are valuable tools for programming and code portability. Tools like:Visual studio Azure SQLThese can be used in conjunction with windows IOT. These tools will be part of our development package so this is an obvious choice for operating system platform. The core of the system will be done in visual studio. This operating system can run visual studio which can allow us to create clones of system software directly into each device. ?The operating system can perform consistent device management. It utilizes a modern device management stack which is relative to industry standards. This capability will allow for peripheral devices to be added for communication and other recognition devices. Recognition devices include possibilities that are explored in section6.3.2 Specific Hardware Requirements of target deviceThe Asset Control System shall be able to regulate power to its connected piece of equipment ONLY if the equipment complies with the following requirements:Equipment shall operate on110-120 V AC60 Hz refresh rate20A Max current consumption1-phase lineEquipment shall be UL ListedEquipment shall contain a _________ electrical connectorNEMA 5-15 grounded (Type B) (preferred)NEMA 1-15 ungrounded (Type A)The electrical connector physical dimensions shall not exceed3 in x 3 in x 4 in6.3.3 Payment processing/InvoicingThe main reasoning for the Asset Control System is to limit access to various pieces of equipment that can have specialized usage requirements (special training), determine utilization of the equipment, and finally, charge the users a fair price that will cover equipment maintenance and hopefully have some left over to expand the equipment available to users. ?In order to accept payments in an electronic and automated system, a third-party payment processor is needed. Unfortunately this service is not free, This section will highlight on some of the available payment processors and determine which one is a viable choice for use with the Asset Control System.6.3.3.1 Transaction FeeCredit/Debit2.9% + $0.30ACH Bank0.75% additionalSetup Fee$49Misc Fees$25 for chargebackTable 6.3.3.1 - Pricing6.3.3.2 Stripe ()Transaction FeeCredit/Debit2.9% + $0.30ACH Bank0.8% ($5 capped)Setup Fee(None)Misc Fees$4 for failed ACH payments$15 Dispute fee (if lost)Table 6.3.3.2 -Stripe Pricing6.3.3.3 Intuit PaymentsTransaction FeeCredit/Debit (Pay as you go)2.4% + $0.25Credit/Debit ($19.95 Monthly)1.6% + $0.25ACH Bankn/aSetup Fee(None)Misc Feesn/aTable 6.3.3.3 - Intuit Pricing6.3.3.4 Payment ConclusionAfter reviewing the payment processors listed above, the most viable choice for use with the Asset Control System is Stripe. ?Overall, stripe is the cheapest per transaction and it also does not charge fees for customer account issues. ?The most important factor was the pay as you go model since most small businesses do not have enough initial capital to warrant a base pricing model. ?Furthermore, Intuit was the “at first glance” choice because of the company’s popular reputation and other well known products and services. ?However, at this level of investigation, it appeared that they did not offer ACH Bank transfer payments, which was desired because in order for a small business to be successful, multiple payment types must be available to the customer or else the customer may not pursue business at this time.6.3.3.5 InvoicingCustomer invoicing will be integrated into the Asset Control System administration software (web based application). ?The calculations are very simple for equipment usage and invoice statement periods will coincide with the traditional calendar months. Sample invoice shown in Table 6.3.3.5.Period1/1/2016 - 2/1/2016Tool Unit CostTotal Period UsageTotal CostTool 1$5.00/hr3.23 HR$16.15Tool 2$3.75/hr2.07 HR$7.76Total$23.91Table 6.3.3.5 - Sample Invoice6.3.5 Report Designer SoftwareBefore we begin looking at report designer software it is important to list the requirements for the report that the Asset Control System will be generating for the user of the system. The report will need to contain the attributes described in Table 6.3.5.1. Other functionality besides the capability to display the fields below would be a bonus but not required. Ease of use and cost are the main factors in making a decision on which report designer will be used for the Asset Control System.AttributeDescriptionClient DataName, Address, Phone NumberCharge SummaryA list of tools used and the amount of time each tool was being used as well as the price per hour for each pany ContactPhone number, address and other related information for the party that is billing the customerGraphical RepresentationsAbility to provide optional graphical representations about tools used for the companyPayment Due DatesDeadlines for each payment and information about how to make a payment and avoid late fees.Table 6.3.5.1 Potential Data Attributes Displayed In ReportComponentOne Report Designer, also known as C1Report designer is a report creator for .NET programming and it allows for a report that has an access style. C1Report designer has the ability to implement barcodes as well as design features like adding a gradient field. Reports can be imported into C1Report Designer and the capability to generate a PDF or Excel spreadsheet version of the report is possible with very little extra coding required. The C1Report Designer software is royalty free and they provide source code which makes designing the reports and customizing them easier.Visual Studio offers a Report Designer name Visual Studio Report Designer, (VS Report Designer). VS Report Designer has an advantage over other report designers if the Asset Control System development team is already developing the code using Visual Studios. Besides the easy integration of using Visual Studios to code and VS Report Designer to produce reports it has a phenomenal ability to accept many formats of data sources. C1Report Designer is not able to produce a report that includes numerous types of data sources. A disadvantage of VS Report Designer is that you must be coding in Visual Studio and also have SQL server Business Intelligence Development Studio installed as well on your device.Pentaho Reporting is a resource of open source reporting tools that facilitates the development of reports from a range of different data sources. Pentaho is focused on creating vibrant and meaningful reports in a variety of formats and uses Java as the software platform. To name a few of the formats that can be produced using Pentaho, PDF, Excel, XML and CSV. For the Asset Control System a PDF file will be necessary to transmit the user’s bill and usage data through email. In the Pentaho community there is a large repository of people whom you can ask question on the forum if trouble arises or questions need to be answered quickly. Having a support system dedicated to helping create and use a report designer software will expedite development time.InetSoft Report Designer boasts an efficient atmosphere for creating flexible and powerful reports. InetSoft’s business intelligence software allows for a report to include text and graphics. InetSoft gives the developer a choice between two different layouts that allow for customer creations as well. The first layout type is called the flow layout and it resembles a word document format and the data will flow in the specified direction. The second format that InetSoft offers is a tabular report and it is unique to Inetsoft when compared to other report designing software. The tabular layout allows for designers to divide the report amongst smaller areas called cells. From there the cells can be divided into smaller cells and data can be placed at any place within the report.Report Designer SoftwareBenefitsDisadvantagesC1 Report DesignerRoyalty Free with many design options, easily constructed detailed reports with from a database of records.Must purchase ComponentOne with a package, ComponentOne Ultimate or ComponentOne Studio EnterpriseVisual Studio Report DesignerMultiple forms of data can be displayed, integrated with Visual StudiosMust use Visual Studios to develop codePentaho Report DesignerStrong online community for support. Multiple types of data accepted.Java Software PlatformInetSoftDiverse design capabilities, multiple sub reports supportedNewer product with a support system that is not fully developedTable 6.3.5.2 Advantages and Disadvantages Report DesignersIn summary, there are many inexpensive options for report designers. If the Asset Control System’s code will be developed in Visual Studios it may be advantageous to utilize the report designer that is coupled with visual studio, the Visual Studio Report Designer. Each report designer is a viable option as they all perform the tasks necessary and are capable of displaying the required data that is displayed in table 6.3.5.27 Project Prototype Construction and Coding 7.1 Parts Acquisition and BOM The parts that will be needed for this project are crucial to indentify and find sources for them. The cost will be split among the members and should be evenly split among the different ACS devices we will be creating. Table 7.1.1 is the BOM for the hardware for the entire Asset Control System. ItemSourceCostQuantityTotalRaspberry PiAdafruit$35.003$105.00ATMega 88Mouser$4.513$13.53LM2936DT-5.0Mouser$1.853$5.553.2 Inch TFT LCD Display Module Touch ScreenBanggood$13.893$41.67ZK4500 Fingerprint ScannerAmazon$45.001$45.00OSAYDE MSR90 Mag Stripe ReaderAmazon$12.881$12.88GO2NFC141U RFID/NFC readerEbay$19.001$19.00OVSTRGBB1CR8 LED RGBMouser$1.823$5.46TE Connectivity RT314A03 RelayMouser$2.813$8.431554U2GY EnclosureMouser$24.123$72.36Mean Well AC-DC 12VJameco$11.493$34.47RFID TagsAmazon$1.505$7.50Various circuit components: Wires, resisors, capacitors, breadboard, etc.Mouser$15.001$15.00Total$385.85Table 7.1.1 – Bill of Materials for ACS7.2 PCB Vendor and Assembly This section and its subsequent subsections will investigate pcb manufacturers based on the design and quantity of pcb we will require for this project. It should be noted that we will order more than is necessary in order to have spares. This is a precautionary in the event of board failure or damage. Cost is the primary concern here and the only real measure for the various producers. Assembly of the components to the pcb boards will be done by the team members. We will have to determine the values of components needed for the circuits. Such values are related to the type of component commonly known as:Capacitors (farad)Resistor (ohms)Inductor (henry’s)Diode (properties of this component are constant )Depending on the design will determine the number of resistors used to create each pcb. As well as capacitors, diodes and inductors. It is not believed that we will need transistors for the circuit but that may change as development continues. We will utilize the university facilities to assemble the boards with components. The assemblage of the unit devices will also be done in facilities on campus. We do not expect to use outside companies to assemble any parts of this project except for printing of the boards. ?7.2.1 PCB ManufacturersThe following sections compare several available PCB manufacturers in order to assess which vendor would be the best candidate for supplying our required PCBs for this project. ?There are several assumptions that were made in order to gain a normalized estimation for the PCBs.Number of Layers: 2Board Dimensions (Range): 2” x 4” - 3” x 5”Approximate quantity: 6 (1 for each Access control device, and an extra for each)7.2.1.1 ExpressPCBMin Cost: $41 - 3 PCB, 2 LayerBoard size must be 3.8 x 2.5 inchesProvide Free CAD and Schematic softwareLocated in USASTUDENT DISCOUNTS1 day Lead time Advanced CircuitsMin Cost: $33 per PCB, minimum of 4 PCB order, 2 Layer ($132)5 day Lead TimeProvide Free SoftwareLocated in USA OSH Park$5 per square inch, includes 3 copies, free shipping3 PCB, 2 LayerUp to 12 day Lead Time7.2.1.4 UCF TI Innovation LabThis lab is useful for assembly and prototypingLab containsSoldering kitsOscilloscopesVoltage regulators3D PrintersMany other tools that aid the prototyping process7.2.2 PCB SummaryExpressPCBAdvanced CircuitsOSH ParkCost$82$198$80Lead Time1 day*5 days12 daysNotesForced to use specific PCB sizeNo free software, but would not use anywaysTable 7.2.2.1 – Summary of PCB Vendors7.3 Final Coding PlanUltimately, the coding plan solely depends on the features implemented in the physical device, because the best practice when it comes to software is to use the correct tool for the job. ?In this case, the tool refers to the programming language for each application. ?Normally, on a target computer such as the Raspberry Pi, the preferred programming language is C or Python since the preferred operating system is a distribution of Linux. ?This would only affect the Asset Control Device because the remaining of the complete system would communicate via HTTP commands (sometimes referred to as web services calls, web API calls, or REST service). ?This is essential for the main server architecture to be independent of the clients’ architecture. However, adding more sophisticated authentication features, such as the facial recognition would require much extra planning and programming to be successful given the project’s slim timeline. ?Utilizing Windows 10 IOT and its facial recognition SDK could drastically reduce the development time. ?After researching more into the Windows 10 IOT Core, it would allow a common language codebase for the Asset Control Device since device-driver like functionality is already present within and would not require a group member to tackle these tasks. This is also beneficial to the Graphical User Interface (GUI) because it would also fall within this common codebase because all Windows 10 IOT applications are referred to Universal Windows Platform (UWP), which are written in any .NET language that utilizes the Common Language Runtime (CLR) such as C#, , F#, etc, but most commonly written in C#. ?Another benefit of using Windows 10 IOT is the built in device drivers for the popular Raspberry Pi WIFI cards and the Raspberry Pi official touchscreen.Since human interaction is one of the primary requirements of the project, the Asset Control Device application shall be written first, at least in the capacity that will allow interaction with the authentication devices that will be chosen for the final project build. ?This part of the complete system should be written first because it is the first interaction point with the user, therefore, it is essential that all features work as planned. ?Once the initial proof of concept is working that validates correct functionality of the authentication methods, the intermediate service layer can begin its development process. ?Since all data passed between the clients and server will be using the HTTP transport layer, the architectures of the clients will not be dependent of the server and vise versa. ?Therefore, the server can be hosted in any environment. ?It is more common to see a linux based server rather than a Windows based server, and hosting price may vary with architecture also. ?As long as the server and client utilize a central interface, the development process can occur concurrently with the GUI. Figure 7.3.1 is a representation of how our final coding plan should be with regards to REST service calls.Figure 7.3.1 – Final coding with REST service calls8 Project Prototype Testing 8.1 Hardware Test Environment The environment for testing the ACS and its hardware components will initially be done in the controlled environment of the S.M.A.R.T Lab or the Senior Design lab on UCF campus. These are lab environments so there should be a limited number of variables that will cause interference with our testing. Once initial testing has been complete and successful, we will want to rerun the tests in an environment that will be less controlled and more noisy, like that of a machine or wood shop. Each member will be testing separate components of the ACS to verify that accurate and, more importantly, consistent results are achieved. Once all components have proven to be consistently successful in both environments we will then begin full prototype testing.8.2 Hardware Specific Testing 8.2.1 LCD/Touch screen TestingObjective: Correctly be able to use the 3.2” screen to not only view the embedded computer GUI but also interface with it.Supplies:3.2 Inch TFT LCD Display Module Touch Screen Compatible HDMI monitorRaspberry PiDC power supplyPreparation:Using the compatible monitor make sure all drivers needed for the touch screen are installed.Procedure:Using the pin-out given with the screen connect the pins that match on the Pi’s GPIO.Unplug compatible monitor and check to see that the display has showed on the touch screenOnce image had displayed on the touch screen begin to interface with the GUI by using the touch screenExpected Result:The touch screen should display the image and be a fairly efficient way to navigate the GUI for administrative reasons.8.2.2 Access Control Device TestingRFID/NFC Reader TestObjective: Verify that the RFID reader is working correctly and receiving data from RFID and NFC sources, also to verify the range of effectiveness.Supplies:RFID cardAndroid device with NFC capabilityGO2NFC141U RFID/NFC readerRaspberry Pi3.2 Inch TFT LCD Display Module Touch Screen or compatible monitor.DC power supplyPreparation:Connect reader to the Pi via USB and be sure to install drivers if needed.Procedure:With reader connected and display on, swipe the RFID card/tag directly over the reader.Verify that the correct information is displayed from the card. Then using the android device push data through with NFC.Repeat step 1 at a distance of about 1 cm away from the reader and verify if it still scans. Repeat step 3 incrementing in 1 cm intervals until inconsistency in data retrieval is reachedExpected Result: The reader should read the information from both, the card and the android device, without any issues. The moment the RFID card data becomes inconsistently read should be close to the 5 cm mark as that is the limit established by the reader.Fingerprint Scanner TestObjective: Verify that the fingerprint scanner can gather a print and match prints.Supplies:ZK4500 Fingerprint scannerRaspberry Pi3.2 Inch TFT LCD Display Module Touch Screen or compatible monitor.DC power supplyPreparation:The Raspberry Pi will need to have the correct drivers installed and either testing software or ACS software installed.Procedure:Connect the ZK4500 to the Pi via USB and open up program platform for testing.Log initial fingerprint to program database, by following on screen directions and applying finger to the scanner.Once logged, apply finger to scanner again to verify that newly scanned print matches logged entry.Expected Result:The fingerprint scanner will successfully log initial finger print in testing platform database and will return as a match when finger print is scanned again.Magnetic Stripe Reader TestingObjective: Verify that the information on the magnetic stripe card is being read correctly on the reader.Supplies:OSAYDE MSR90 ReaderMagnetic Stripe card (UCF ID)Raspberry Pi3.2 Inch TFT LCD Display Module Touch Screen or compatible monitor.DC power supplyPreparation: Connect the MSR90 Reader to the Pi via USB. Ensure the drivers needed are installed Procedure: Swipe the card through the reader and verify the LED on the reader flashes.Look at the resulting data that is printed on the screen and make sure it is correct.Repeat step 1 and 2, 5 more times, varying cards used, verifying the data is correct.Expected Result: With an error rate of 0.5% there should be no problems in corrupted or otherwise wrong information, no matter the card used. 8.2.3 Switch TestingObjective: Verify that the PCB relay will adequately latch and run source power when small triggering voltage is applied. Supplies:TE Connectivity RT314A03 RelayDC Power supplyFunction generatorBreadboard OscilloscopePreparation: Connect the coil leads to the output of the power supply and the contacts of the function generator to the contact leads of the relay.Procedure:Let the function generator have a sinusoidal waveform and turn it on. Connect the oscilloscope across contact of relays.Begin applying more voltage from the power supply until you the generated function on the oscilloscope. Take note of this voltage.Once having steady response from the oscilloscope begin to turn down the voltage on the power supply mark at what point the generated function no longer appears on the oscilloscope.Set the power supply to the noted voltage in step 2 and leave it at that level and note temperature and oscilloscope response over the next 30 min.Expected Results:The relay should start showing source power at 3V and stop when the less than 0.7V is applied. The relay should continue to show source power as long as the coil voltage is between these 2 levels. There should be no adverse effects of leaving the voltage applied to the coil so that source power is available.8.2.4 Microcontroller TestingLED TestingObjective: Determine that the LED unit works from the I/O pins of the of the ATMega 88Supplies:OVSTRGBB1CR8 LEDArduino UNO development boardDC power supplyPreparations:Connect the Arduino UNO to power and program a test code.Procedure:Verify all components are correctly placed on the pins of the Arduino development board and that the power supply is at the correct value.Run the program that was created to flash the colors of the LEDsExpected Results: The OVSTRGBB1CR8 LED module will flash all LED colors therefore proving the microcontroller is sending the right amount of voltage to the pinsSwitch signal testingObjective: Show that the signal given by the microcontroller will be enough to throw the relay and provide source power. This will also determine if the TE connectivity Relay will be able to handle a current load for an extended period of time.Supplies:Arduino UNO development boardTE Connectivity RT314A03 RelayDC Power supplyFunction generatorBreadboard OscilloscopePreparations: Connect the relay coil leads to the ATMega pin that will be controlling the switch signal and the contact leads to the function generator. Create a simple program that will allow for turning on and off the signal.Procedure:Let the function generator put out a sinusoidal waveform and turn the power onConnect the power to the Arduino and verify it has the correct level. Then attach the oscilloscope across the contact leads of the relay.Begin running the program. Turn the signal on and view the oscilloscope read out. Begin switching the signal on and off and viewing the output of the oscilloscope response each time.Finally leave the signal on for 30 minutes and check the oscilloscope does not drop the source signal from the function generatorExpected Results:Every time the ATMega sends the signal to the coil that the switch should be thrown the source power should show on the oscilloscope and the opposite when the signal is off. While the signal is on, source power will continue to show on the oscilloscope until it is turned off without hindering the source power by any means.8.3 Software Test Environment The test environment for this project will be the same environment in which it is designed and built. Since this system will be designed to be self contained there will not be a need to create a separate testing environment. This will help to expedite the testing process and also prove to define the optimal environment in which the system should operate. The environment will most likely be conducted using the raspberry pi as the main system. We will decide between two different environments mainly. The first of the two environments is Windows IOT (internet of things). The other possible operating system we can use is Linux. Because of the nature of the system we might need a more compatible operating system for the use of database that is needed for the system functionality. In considering the operating system with which to run the system we are creating we should consider two factors of importance to us. The first factor is that the cost of the operating system needs to be as low as possible. In the case of Linux this is the cheapest option available since it is essential open software. Basically there is no need to purchase a license. With windows both IOT and 10 require a license. However IOT is not typical of Microsoft windows operating systems. It is downloadable without purchasing a license unlike windows 10. The operating system windows IOT envelops the abilities we need to address and communicate with multiple devices. IOT does not provide a true graphic interface like normal windows. It does however offer the ability to store data and utilize com ports which will be an important part of this project. The system does not need a graphic user interface within it. Instead we will use remote accessing techniques to configure and test the database functionality. The operating system requirements include the ability to use com ports and the ability to send information to remote devices. Another requirement will be security. The operating system will need to be secure and require security protocols that will protect the integrity of the system from unauthorized access. The system will hold a database and process commands and queries from the remote interfaces. The devices for asset control will require a wireless interface that will receive activation or deactivation commands from the system. ?The devices will be equipped with a touch screen display that provides user feedback to the screen for actions taken. This means that the devices will send an authorization request and then display data on usage and status. The operating system will need to facilitate the requests and provide information to the devices about time and transaction data. The devices will also provide updates to the database for the individual events that occur. In order to facilitate this the system will need to track each device in real time. This will allow for any change in status to be detected and then subsequently to update the database accordingly. It is imperative that the system keeps a log of every instance and its corresponding user data since this is one of the primary goals of the system. For user interface we will design an application that can be accessed via website or through a mobile app. The testing of the user interface will be done using a standard pc with an operating system that current and viable. This operating system can be any flavor. We can use any operating system that is compatible with a well known or utilized web browser. The goal is to design the system to meet the html standards of all major web browsers. With the browser compatibility in mind we will ensure through testing that it is functioning within the requirements of the system. Since the system acts remotely and accesses the database the testing environment for the interface side will be a windows based pc and an android application. The testing of the software on each platform will be based on the user case associated with the platform. For instance the administrator level will be accessible through a web browser. The user level interface will be accessible through web browser or mobile application. The testing environment for user level will be of two different kinds. The testing environment for the administrator level will be limited to the web browser. ?8.4 Software Specific Testing Software plays a major role in the success of the Asset Control System, therefore, software testing is a critical step to ensure the system operates as designed. ?In order to ease development and allow for easy unit testing, the software system was broken up into several abstractions or layers the list below and Figure 8.4.1 enumerate the basic layers used in the Asset Control System:Presentation LayerService LayerData Access LayerFigure 8.4.1 – Software layers present in the ACSAt a high level, this allows for separation of concerns, which in turn enables easy and independent unit testing. ?The service layer shall adhere to an interface, or contract, which the presentation layer shall call these interface methods during normal operation. ?What makes this easy for testing is the fact that the actual implementation is not part of this “contract”, therefore, a mock service can be used in order to test the presentation layer. ?In simple terms, this allows a single developer or development team to create the user interface without the need of a working service layer. ?The same concept is applicable for the service layer. ?This layer can be tested independently without the need for a working presentation layer. ?Figure 8.4.2 shows several testing scenarios that can occur during this testing phase. Figure 8.4.2 – Software testing scenarios of the ACSOnce the individual layer unit tests have passed and therefore satisfied all requirements, the next step in the software testing process would be integration testing. ?This consists of combining the individual parts of the software systems parts and verifying correct interactivity between the parts and the system as a whole. The integration of all the testing can be seen in figure 8.4.3.Figure 8.4.3 – Integration of all software testing on the ACS9 Administrative Content 9.1 Milestone DiscussionThe progress on this project will definitely need to be monitored and kept up to a schedule that will give enough time for any issues that might be encountered. There could be issues found in acquiring parts and even software that could be needed. Once the system is together we will want to be sure it operates as smoothly as possible and that will take time with troubleshooting at the end. In order to capture all these issues that might be encountered the following figures 9.1.1 to 9.1.2 are being used to give us that timeline and the milestones that will need to be completed in order to have a working, well thought-out design.Figure 9.1.1 – Timeline and Milestones first semesterFigure 9.1.2 – Timeline and Milestones second semester9.2 Budget and Finance Discussion The Asset Control System will be privately funded from each member of the group. ?The total cost will be split up equally between all group members (in this case, 25 percent each).?There shall be no exceptions to this capital structure unless a group member wants to keep part of the project. ?At this time, the group will negotiate an appropriate “buy out” price. ?Furthermore, since this is privately funded by students, the target budget shall be no more than five hundred dollars ($500 USD) for all inclusive costs.Table 9.2.1 – Project BudgetTable 9.2.2 – Asset Control BudgetTable 9.2.3 – Switching Device BudgetTable 9.2.4 – Total Budget AllocationAppendix A Copyright Permissions Raspberry Pi GPIO (Figure 6.2.4.1 and Figure 6.2.5.1)Permission Status: RequestedACS Enclosure (Figure 6.2.6.1)Permission Status: GrantedAppendix B Table of FiguresFigure 2.0.12Figure 3.2.2.110Figure 3.3.2.111Figure 3.8.1.149Figure 3.8.1.250Figure 3.8.2.151Figure 3.8.2.252Figure 3.8.4.154Figure 6.2.1.174Figure 6.2.1.275Figure 6.2.1.377Figure 6.2.1.477Figure 6.2.1.578Figure 6.2.2.179Figure 6.2.2.280Figure 6.2.2.380Figure 6.2.2.481Figure 6.2.2.581Figure 6.2.2.682Figure 6.2.3.183Figure 6.2.4.185Figure 6.2.5.186Figure 6.2.6.188Figure 7.3.1100Figure 8.4.1109Figure 8.4.2110Figure 8.4.3111Figure 9.1.1112Figure 9.1.2113Appendix C Table of TablesTable 3.1.2.110Table 3.2.1.111Table 3.2.2.114Table 3.2.3.118Table 3.2.4.120Table 3.2.5.121Table 3.3.2.226Table 3.3.4.133Table 3.3.4.234Table 3.3.4.334Table 3.4.1.136Table 3.4.4.139Table 3.7.4.147Table 3.9.2.156Table 5.1.164Table 6.2.1.176Table 6.2.1.278Table 6.3.3.190Table 6.3.3.2.190Table 6.3.3.3.191Table 6.3.3.592Table 6.3.5.193Table 6.3.5.295Table 7.1.196Table 7.2.2.198Table 9.2.1114Table 9.2.2114Table 9.2.3115Table 9.2.4115Appendix D Sources ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- er publications
- face detection theory and examples opencv python
- bina nusantara library knowledge center
- college of engineering purdue university
- departments of ece and cs home
- c c programming with visual studio 2019 and opencv 4 2 0
- perancangan aplikasi e tour guide dengan image
- c c programming with visual studio 2017 and opencv 3 2 0
Related searches
- mis departments of comparative compa
- different departments of a company
- buy and remodel home loan
- list of ece classes
- list of state departments of education
- different departments of a business
- briggs and stratton home generator
- at and t home internet
- primitive and country home decor
- wyoming game and fish home page
- departments of company
- irrevocable trust and nursing home care