Parking Lot Project

From CS486wiki
Jump to navigationJump to search

12V Lead Acid battery

It is a YUASA brand 12V-7Ah lead acid battery. It will be easier and safer to use dry batteries because of the risk of leak in the battery. It is also necessary to use a battery which can make whole system last for a night. The battery might be overloaded with too many hardware. Low voltage in the battery causes routers to begin restarting continuously. Batteries should be kept in weather proof boxes. Due to weather conditions where the system will be used, it could be hard to protect battery from a short circuit.

Solar Panel

Place the solar panel under sunlight for 8 hours to charge the 12V battery. Connect the router's power cable to the anode and cathode accordingly. The full battery provides 22 hours of power for the router that has a USB webcam plugged in. If there isn't enough sunlight light from a light bulb is sufficient, too. Low output 12 volt solar maintainer designed for the smaller lead acid type battery. Basic uses include Riding Mowers, ATV, Motorcycle, Jet Ski and small electronics applications. A blocking diode is built in the circuit to protect the battery against discharge in low and no light situations.

The solar cells are contained in a UV proof Polycarbonate plastic housing with epoxy sealed silicon rubber on the edge of the plastic housing. This provides protection against rain, wind, salt air, etc. Solar panel ships with versatile mount, can be used on wall, ground, and adjusts angle for best solar output.

Features:

• Waterproof and Corrosive proof

• 6 foot output alligator lead set

• 1 Year Warranty


Comments: Recommended for 12 volt battery maintenance, battery size not larger than 30 amp hour.

[1]

Dimensions: 6 3/8" L x 6 7/8" W x 1/2" H

Actual Weight (lb.): 1

Shipping Weight (lb.): 2

Rated Power: 1.26 W

Operating Voltage: 12 V

Operating Current: 70 mA

Open Circuit Voltage: 18 V

Manufacturer: UPG

Image Recognition

The code is written in java. An open source code is used for the main image recognition part. Some modifications and additions are done. The code simply takes two images for comparison. The first image is an empty parking lot while the second image is the current look of the parking lot, that's taken by client routers and sent to the server. The code divides the first picture to 48 equal square parts and does the same on the same sized second picture. The two pictures are compared and the output is a 8 to 6 matrix. This can be modified as required. The location of the numbers in the matrix correspond to the locations of part of the picture. This matrix is the output after the code is executed. The greater the number is (min 0-max 64), the more change occurred in that area. At the same time, a third image is created from the second image. The third image shows the areas where changes occurred in red boxes. The red boxes are corresponding to the significant number changes in the 6 to 8 matrix in the output. So if the whole image is different, the image recognition would show 48 red boxes to indicate change. The purpose in the third image is to show where there has been a car movement in the parking lot. If the first image is always the empty parking lot, the third image would only note the cars that parked in the area. If the first image is always the current image and the second one is the most current one, a counter must be set to count the empty vs. taken spots.


IMAGE AND CHANGE RECOGNITION CODE:

import javax.imageio.ImageIO; import javax.swing.*; import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.text.*; import java.net.*; import java.util.*; import java.awt.*; import java.awt.image.*; import com.sun.image.codec.jpeg.*;

public class ImageCompare {

protected BufferedImage img1 = null; protected BufferedImage img2 = null; protected BufferedImage imgc = null; protected int comparex = 0; protected int comparey = 0; protected int factorA = 0; protected int factorD = 10; protected boolean match = false; protected int debugMode = 0; // 1: textual indication of change, 2: difference of factors

public static void main(String[] args) throws IOException { // Create a compare object specifying the 2 images for comparison. //FileUtils.copyURLToFile(new URL("http://192.168.1.2/user/webcam.jpg"), new File("C:\\Users\\ezgi\\Desktop\\webcam.jpg"));

URL url; try { url = new URL("http://192.168.1.2/user/webcam.jpg"); //192.168.1.2 is the client router's IP address, the host router is 192.168.1.1 but with WDS the host router //is getting the image from the client router's usb webcam and it is saved as test2.jpg in the specified directory. BufferedImage bi = ImageIO.read(url); try { ImageIO.write(bi,"jpg",new File("C:\\Users\\calaylin\\Desktop\\Java\\SeniorPRMotionDetection\\test2.jpg")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }//image url

ImageCompare ic = new ImageCompare("C:\\Users\\calaylin\\Desktop\\Java\\SeniorPRMotionDetection\\test1.jpg", "C:\\Users\\calaylin\\Desktop\\Java\\SeniorPRMotionDetection\\test2.jpg"); //test1.jpg is the first jpg file that you manually put there for comparison //test2.jpg is the second and the most current picture received from the webcam

// Set the comparison parameters. // (num vertical regions, num horizontal regions, sensitivity, stabilizer) ic.setParameters(8, 6, 5, 10); // Display some indication of the differences in the image. ic.setDebugMode(2); // Compare. ic.compare(); // Display if these images are considered a match according to our parameters. System.out.println("Match: " + ic.match()); // If its not a match then write a file to show changed regions. if (!ic.match()) { saveJPG(ic.getChangeIndicator(), "C:\\Users\\calaylin\\Desktop\\Java\\SeniorPRMotionDetection\\changes.jpg"); //this is the third image file created after the comparison of first two in the directory specified above } // Please don't forget to name the directory according to your files' location }

// constructor 1. use filenames public ImageCompare(String file1, String file2) { this(loadJPG(file1), loadJPG(file2)); }

// constructor 2. use awt images. public ImageCompare(Image img1, Image img2) { this(imageToBufferedImage(img1), imageToBufferedImage(img2)); }

// constructor 3. use buffered images. all roads lead to the same place. this place. public ImageCompare(BufferedImage img1, BufferedImage img2) { this.img1 = img1; this.img2 = img2; autoSetParameters(); }

// like this to perhaps be upgraded to something more heuristic in the future. protected void autoSetParameters() { comparex = 10; comparey = 10; factorA = 10; factorD = 10; }

// set the parameters for use during change detection. public void setParameters(int x, int y, int factorA, int factorD) { this.comparex = x; this.comparey = y; this.factorA = factorA; this.factorD = factorD; }

// want to see some stuff in the console as the comparison is happening? public void setDebugMode(int m) { this.debugMode = m; }

// compare the two images in this object. public void compare() { // setup change display image imgc = imageToBufferedImage(img2); Graphics2D gc = imgc.createGraphics(); gc.setColor(Color.RED); // convert to gray images. img1 = imageToBufferedImage(GrayFilter.createDisabledImage(img1)); img2 = imageToBufferedImage(GrayFilter.createDisabledImage(img2)); // how big are each section int blocksx = (int)(img1.getWidth() / comparex); int blocksy = (int)(img1.getHeight() / comparey); // set to a match by default, if a change is found then flag non-match this.match = true; // loop through whole image and compare individual blocks of images for (int y = 0; y < comparey; y++) { if (debugMode > 0) System.out.print("|"); for (int x = 0; x < comparex; x++) { int b1 = getAverageBrightness(img1.getSubimage(x*blocksx, y*blocksy, blocksx - 1, blocksy - 1)); int b2 = getAverageBrightness(img2.getSubimage(x*blocksx, y*blocksy, blocksx - 1, blocksy - 1)); int diff = Math.abs(b1 - b2); if (diff > factorA) { // the difference in a certain region has passed the threshold value of factorA // draw an indicator on the change image to show where change was detected. gc.drawRect(x*blocksx, y*blocksy, blocksx - 1, blocksy - 1); this.match = false; } if (debugMode == 1) System.out.print((diff > factorA ? "X" : " ")); if (debugMode == 2) System.out.print(diff + (x < comparex - 1 ? "," : "")); } if (debugMode > 0) System.out.println("|"); } }

// return the image that indicates the regions where changes where detected. public BufferedImage getChangeIndicator() { return imgc; }

// returns a value specifying some kind of average brightness in the image. protected int getAverageBrightness(BufferedImage img) { Raster r = img.getData(); int total = 0; for (int y = 0; y < r.getHeight(); y++) { for (int x = 0; x < r.getWidth(); x++) { total += r.getSample(r.getMinX() + x, r.getMinY() + y, 0); } } return (int)(total / ((r.getWidth()/factorD)*(r.getHeight()/factorD))); }


// returns true if image pair is considered a match public boolean match() { return this.match; }

// buffered images are just better. protected static BufferedImage imageToBufferedImage(Image img) { BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics2D g2 = bi.createGraphics(); g2.drawImage(img, null, null); return bi; }

// write a buffered image to a jpeg file. protected static void saveJPG(Image img, String filename) { BufferedImage bi = imageToBufferedImage(img); FileOutputStream out = null; try { out = new FileOutputStream(filename);

} catch (java.io.FileNotFoundException io) { System.out.println("File Not Found"); } JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi); param.setQuality(0.8f,false); encoder.setJPEGEncodeParam(param); try { encoder.encode(bi); out.close(); } catch (java.io.IOException io) { System.out.println("IOException"); } }

// read a jpeg file into a buffered image protected static Image loadJPG(String filename) { FileInputStream in = null; try { in = new FileInputStream(filename); } catch (java.io.FileNotFoundException io) { System.out.println("File Not Found"); } JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in); BufferedImage bi = null; try { bi = decoder.decodeAsBufferedImage(); in.close(); } catch (java.io.IOException io) { System.out.println("IOException"); } return bi; }

}

Wireless Distribution System

In this project we were going to build a mesh network but since it is very complicated and has some internet restrictions, we decided to use Wireless Distribution Service(WDS). WDS creates a wireless backbone link between multiple access points that are part of the same wireless network. This allows a wireless network to be expanded using multiple access points without the need for a wired backbone to link them, as is traditionally required. The WDS-enabled access points can accept wireless clients (e.g. wireless laptop users) just as traditional APs would.

Also take note of the fact that all repeaters, including this WDS Repeater mode, will sacrifice half of the bandwidth available from the primary router for clients wirelessly connected to the repeater. This is a result of the repeater taking turns talking to not just one partner, but to two, and having to relay the traffic between them. As long as your bandwidth requirements are within this halved bandwidth amount there will be little or no reduction in "speed".

In regards to integration with DD-WRT, it is confirmed working with WEP, WPA, and WPA2.

Working Products

   * Linksys WRE54G Wireless Range Expander
   * Linksys WRT54G v2, v3, v4, v5, v6, v8
   * Linksys WRT54GS v1.1
   * Linksys WRT300N
   * Linksys WRT310N
   * Linksys WRT350N  
   * Linksys WRT600N v1.1

Standard terminology for a two router setup:

   * The client router is the router which does not have an internet connection.
   * The host router is the router which does have the internet connection and is going to share it with other routers.

SETUP Two or more WRT54G / WRT54GS / WRT54GL boxes

  1. (Optional) Save the current configuration of both routers: Administration -> Backup. Click "Backup" button and follow prompts so save nvram backup files, i.e. nvram_host.bin, and nvram_client.bin. The configurations can be restored if the setup doesn't work out and you need to quickly get back to a different (working) configuration.
  2. Reset both routers to factory default settings so other settings will not have a possible conflict: Use the router's reset button or do it via the UI Administration -> Factory Default - select yes - click "Apply Settings" button.
  3. Give both the routers a different IP address, i.e. 192.168.1.1 (host/internet gateway) and 192.168.1.2 ("client router") on the same subnet. Setup -> Basic Setup
  4. (Optional) Change the Internet Connection Type to Disable on the client router. Setup -> Basic Setup -> Internet Setup -> Internet Connection Type -> Disable
  5. Set the Gateway and DNS IP addresses of the client router to the LAN IP address of the host router. Setup -> Basic Setup -> Network Setup -> Router IP -> Gateway
  6. For the client router router, under Setup -> Basic Setup -- Network Address Server Settings (DHCP) -- disable DHCP server. Only have the gateway router perform DHCP services. There can only be one DHCP server on any subnet (network) for reliable operation.
  7. Important ! Do Not use the DHCP forwarder either. It is equally as confusing to the network. The WDS bridge is exactly that, a bridge. All clients connecting to the repeater are bridged at the MAC layer to the primary radio and they will obtain their DHCP lease from the primary radio as though they were connecting directly to it.
  8. (Optional) Turn off the firewall on the client router. Security -> Firewall -> Firewall Protection -> Disable
  9. Turn off security on both routers (this should already be done if you reset as above). Security can be re-enabled after all other steps are complete, but in order to minimize troubleshooting, it's best to get things setup with no security active. Wireless -> Wireless Security -> Security Mode -> Disabled
 10. Put both routers into AP mode and on the same channel. Wireless -> Basic Settings
 11. Under Wireless -> Basic Settings, set the SSID to your liking. For WPA WDS, the SSID for the routers needs to be the same. For WEP, different SSIDs can make troubleshooting easier.
 12. If you plan to use WPA later, select Mixed or G-only in Wireless -> Basic Settings. You cannot use B-only with WDS.
 13. Open WDS configuration on both routers. Wireless -> WDS
 14. On each router, you will see its wireless MAC address at the top of the Wireless -> WDS page (note that this MAC address is different from the one that may be printed on the case!). Select LAN for the type, and put each router's wireless MAC into the table of the other router. If needed, consult WDS - configuration for more than two routers for some helpful info.
 15. There is no need to enable Lazy WDS or WDS subnet on either router.
 16. (Optional) Finally, Under Setup > Advanced Routing [ Static Routing ]  : For the Host router put in the IP for client router & for the client router put in the IP for the host router. Use same subnet and gateway of host router. Select LAN&WLAN. This makes sure the bridge is given a static IP route.
 17. You can go to Status > Wireless and at bottom check WDS Nodes make sure signal strength is not zero
 18. Test that you can ping the gateway from the client. Note that it may take a short amount of time for the WDS to be established, and you may need to reboot both the gateway and the client.
 19. Enable encryption now, if you like (highly recommended).


 20. WDS MULTIPLE ROUTER SETUP
 21. From DD-WRT Wiki
 22. Jump to: navigation, search
 23. Verified with DD-WRT v24-sp2 (09/04/09) build 11898 --Macgyver 22:57, 12 April 2009 (CEST) 
     This is a 3 router WDS setup using WRT350N and 2 WRT54G, with the 1st WRT54G connecting to the WRT350N, and the 2nd WRT54G connecting to the 1st WRT54G. I have also tested with WRT600N, WRT310N, WRT300N and WRT54GS, so any broadcom-based device should work with these settings 
     If you only need a 2 router WDS setup, simply ignore the third router setup options; alternately if you need more, just add as needed
 24. Router 1:  
     WRT350N  
     Basic setup page:  
     IP 192.168.1.1  
     netmask 255.255.255.0  
     DHCP server enabled
 25. Administration tab:  
     change TCP timeouts to 120s
 26. Wireless settings:  
     Make sure all units are using WPA2 Personal AES encryption, same SSID, and wireless channel(s)  
     (i.e all WPA2 AES, SSID 'ddwrt', channel 6)  
     on WDS tab set to 'LAN' mode and enter MAC address from first WRT54G  
     Advanced wireless settings:  
     CTS Protection Mode disabled  
     Preamble Auto
 27. WRT54G #1  
     Administration tab:  
     change TCP timeouts to 120s  
     change max connections to 1024 if it is set to 512  
     Services tab:  
     disable WAN traffic counter and DNS masq
 28. Security tab:  
     Uncheck 'filter ident' and 'block WAN requests', then disable SPI firewall
 29. Wireless settings:  
     Wireless mode: G-only  
     Make sure all units are using WPA2 Personal AES encryption, same SSID, and wireless channel(s)  
     (i.e all WPA2 AES, SSID 'ddwrt', channel 6)  
     on WDS tab set to 'LAN' mode and enter MAC address from WRT350N and MAC address from second WRT54G  
     Advanced wireless settings:  
     CTS Protection Mode disabled  
     Preamble Auto
 30. Basic setup page:  
     Connection type: disabled  
     IP 192.168.1.2  
     netmask 255.255.255.0  
     gateway 192.168.1.1  
     Assign WAN port to switch checked (optional)  
     DHCP server disabled  
     Uncheck all 3 boxes in DHCP section (Use DNSMasq for DHCP/Use DNSMasq for DNS/DHCP-Authoritative)
 31. WRT54G #2  
     Administration tab:  
     change TCP timeouts to 120s  
     change max connections to 1024 if it is set to 512
 32. Services tab:  
     disable WAN traffic counter and DNS masq
 33. Security tab:  
     Uncheck 'filter ident' and 'block WAN requests', then disable SPI firewall
 34. Wireless settings:  
     Wireless mode: G-only  
     Make sure all units are using WPA2 Personal AES encryption, same SSID, and wireless channel(s)  
     (i.e all WPA2 AES, SSID 'ddwrt', channel 6)  
     on WDS tab set to 'LAN' mode and enter MAC address from first WRT54G  
     Advanced wireless settings:  
     CTS Protection Mode disabled  
     Preamble Auto
 35. Basic setup page:  
     Connection type: disabled  
     IP 192.168.1.3  
     netmask 255.255.255.0  
     gateway 192.168.1.1  
     Assign WAN port to switch checked (optional) 
     DHCP server disabled  
     Uncheck all 3 boxes in DHCP section (Use DNSMasq for DHCP/Use DNSMasq for DNS/DHCP-Authoritative)
 36. Reboot first router, then once first router has internet, power up second router, then third, etc...  
     That's it!
Notes
   * In some cases it may help to put the IP of the client router as a DMZ'd machine in the host router. Of course, this only works with a WDS between 2 routers.
         o http://www.dd-wrt.com/phpBB2/viewtopic.php?t=669&highlight=dmz
   * The source material for this list comes primarily from the following DD-WRT forum posts:
         o http://www.dd-wrt.com/phpBB2/viewtopic.php?t=124
   * If you're using encryption, remember to configure it on all routers!
   * Set encryption after you got a running WDS.
   * On the main Status page and the Wireless Status you can see the signal strength for any other routers in the WDS. If they are showing 0 then you're not connecting to them for some reason (wrong MAC address or, for WPA links, wrong SSID).
         o It seems that when WPA2 is enabled, WDS does not work well with TKIP+AES: client router reports no signal from the host router, while the host router reports a valid signal from the client routeur. Using TKIP only helps.
         o WPA2 is works fine with TKIP+AES: Set both client and host to the same security settings, with the same password. Version in use is v24 Beta (07/12/07) - std on 2 Buffalo WHR-G125s.
   * If you want to use more than 2 repeaters with WDS and define multiple WDS paths for redundancy then you MUST enable STP or the network will loop back on itself and destroy all functionality. [Quote from GeeTek]
   * There is a known bug in v24 and v24-sp1 that affects WDS. See

[2]

Resources

The individual resources for each specific element are noted in the wiki as they were used. The team members are Aylin Caliskan, Selcuk Kabadayi and Ezgi Sucu.


DEVELOPMENTS OF THE PROJECT IN 2009/2010

PARKING LOT PROJECT

Parking Lot Project is an ongoing project that has started in recent years and didn't finish yet. Its main objective is to determine the empty parking spots in the M parking lot, which is the biggest parking lot in the campus. After the determination of the parking spots in the M lot, the information taken from our system will be put on the Internet so that the drivers who want to know which spot is empty can learn this beforehand with the cell phones. This will reduce the amount of time a lot, since the driver doesn't need to wander around the huge parking lot until he/she can find a spot. In this paper, we will discuss how far we have gone in this project, the details of the design alternatives, which design did we choose among the different design alternatives, cost analysis and different stages that our project went through. The group that was handling the project right before us, has completed their part. In their implementation the cameras in the boxes that were placed in the parking lot were taking the pictures of the parking lot and sending those images to the server via a mesh network. In the server, image processing was taking place and the empty spots were determined. Our goal in the beginning of the year was to implement this project with a different technology which was more efficient. This project was intended to be implemented with SuitSat-2 technology, the pursuer of Suitsat which was a retired Russian spacesuit with a radio transmitter mounted on its helmet and was deployed in an ephemeral orbit around the Earth on February 3, 2006. By SuitSat-2 technology, an integrated housekeeping unit, which was a combination of video digitizer, a PIC processor, 16Mb memory and FGPA, was meant. All the hardware would have been kept in a box. Our budget reserved for this project was $100 per box. We have made market researches to have a price draft. However, we have realized that this budget was too below from the market prices. As a result, we decided to find an alternative to keep the prices low while keeping the project’s efficiency high. In this project our biggest constraint was our budget. Since our professor's intended amount of money that will be spent on one box was low, we decided that implementing SuitSat2 technology in this project was infeasible. To concretize my assumption, I will discuss the prices of the needed hardware and make a rough estimation. The needed hardware and associated prices are as follows: Lithium-Ion Battery whose brand is DeWalt DC9280 28-Volt Lithium-Ion NANO Battery is worth $49.99; HP memory - 16 MB - DIMM 100-pin - EDO RAM for HP memory - 16 MB - DIMM 100-pin - EDO RAM is worth $25.00; Solar Panel Power Trackers whose brand is Sunforce 81095 Solar Shed Light is worth $29.00; W-10SM Watson 10A 13.8V Switch Mode Power Supply is worth $102; Grandtec SWT-1000 HDMI Switcher 1 Out 4 In; HDMI 1.1/1.2/1.3 compliant; Power Supply: DC 5V, 500mA; Power Consumption: 2W; Dimensions 148.8 (L) x 99.4 (W) x 25 (H) mm (SWT1000) is worth $95.25; Microchip - PIC16F887-E/P - 8-Bit Microcontroller IC is worth $2.45; Digital Temperature Sensor TMP102 is worth $5.95; Solar Panels, Mini-Panel, 3.0V, 100MA W/6 Red/Black Wire Leads is worth $11.95; 6A 12V/24V Solar Panel Charge Regulator Controller is worth $29.99; PIC24HJ12GP201 16-bit processor is worth $3.26. So when we add all these numbers to make a rough estimation the cost will be $354.84 for each box which is obviously exceeding our intended amount of money to be spent. While making some research on what else we can do to determine empty parking lots at a reasonable price, we came up with the idea of using RFID to spot the parked cars. However, there was a problem with this idea. The first one was about determining the position of an RFID tag. We thought we could have used GPS technology to solve this problem but this idea was not feasible since it was almost impossible to detect and comprehend signals from all those different GPS brands. The second idea was getting signals from people’s cell phones to spot their position. However there were some legacy issues about privacy in this problem. At last we have come up with different solutions, which we will explain in details later, while talking about alternatives of this project. Radio Frequency Identification technology is a generic term that is used to describe the system that transmits the identity of the person or an object using radio frequency signals. A basic RFID System consists of RFID tags, RFID readers and antennas. RFID tags contain two parts which are antennas and a radio frequency signal. There are generally three types of RFID tags which are; active tags which contain a battery and can transmit signals simultaneously, passive RFID tags which have no battery and require an external source to provoke signal transmission and battery assisted RFID tags which require an external source to wake up and have significant higher forward link capability providing greater range. Antennas are responsible for communicating with the tag readers and providing energy to the RFID tags. When an RFID tag passes through the field of the scanning antenna, it detects the activation signal from the antenna. That "wakes up" the RFID chip, and it transmits the information on its microchip to be picked up by the scanning antenna. After we decided on implementing the project with RFID technology, we went to interview with the manager of the parking services. We have asked him about the number of students that bought the parking permit this year so that we could calculate how much money should be put additionally to the parking lot permit expenses per person. We also asked him about the capacity of each separate parking lot and their accessibility. He gave us a lot of useful information regarding to the parking lots. He said that all the parking lots are divided into two groups which are commuter parkings and “anybody else” parkings. The parking lots that we will deal with are the “anybody else” parkings, which means that there are tremendous amount of entry and exit during the day. He said that there are 6339 registered students to the parking permit which makes up 43% of the total student population. We also requested the capacity of each parking lot. He said that M1 has 457 car capacity, M2 has 482 car capacity, M3 has 237 car capacity and M4 has 337 car capacity. We finally asked him whether he thinks our project is feasible and worth doing it. He replied us that our project is worth doing it, since it would make it easier for the drivers to find an empty spot in the huge M parking lot. Our first idea was putting RFID readers to the entrances of the parking lot. When a car enters or exits the lot from one of these gates, the RFID reader will record that information so that it will be able to hold how many empty spaces there are in the parking lot. To make the information more accurate and useful for the drivers, we decided to divide the parking lot into three major parts, which are M1, M2 and M3-M4 together and holding their information separately. Each of them is surrounded with gates and each gate will have 2 RIFD readers, one on each side of the road. One RFID is going to be responsible for recording the entering cars and the other is for the exiting ones. There are 12 entrances to Lot M in total; so 24 RFID readers will be needed for this parking lot. If a driver enters Lot M1 but does not park the car at this part and passes to Lot M2, the RFID readers between the two parts will notice that. One RFID reader will see that the car is leaving M1 and the other will detect that it is entering M2. Readers can be fitted with an additional interface that converts the radio waves returned from the tag into a form that can then be passed on to another system, like a computer or any programmable logic controller. The RFID readers in this alternative have short distance range because all the cars first has to go through the entrances to enter the parking lot, which minimizes the area the tags are going to be read. The shorter the range of a reader is, the lower price it has. In our previous design, we were going to implement an interface to the readers that would enable to communicate with a server, so that all the information regarding to the emptiness of the parking lots, coming from all the readers would be gathered in a server. From there it would be put into the Internet and would be updated rapidly. So, drivers who have Internet access in their phones can reach to the information of the occupancy of the parking lot. However, then we came up with a better idea. In our new design there will electronic signboards that will tell how many empty parking spot exists in its corresponding parking lot. With the help of these signboards, they can easily see how many empty spots are left in that part of the parking lot, instead of checking it via their phones, which may be hard to do while driving. Furthermore, people that don't have Internet access in their phones can also utilize this project by this way. Other than this, we won't have to deal with sending the data to the server and updating the information on the website frequently. There are two types of RFID, passive and active RFID. Passive RFID relies on RF energy transferred from the reader to the tag to power the tag. Passive RFID requires stronger signals from the reader, and the signal strength returned from the tag is constrained to very low levels. Active RFID allows very low-level signals to be received by the tag (because the reader does not need to power the tag), and the tag can generate high-level signals back to the reader. Additionally, the Active RFID tag is continuously powered, whether in the reader field or not. Active tags can also 'beacon,' or initiate communication with a reader (or other tags) when certain conditions are present. As the reading distance is short in this alternative we decided to use passive RFID. You can find the approximate project cost below. We have calculated the prices according to the most suitable RFID reader for the project in terms of price, reading range, having passive property and so on.

RFID Readers:

ZDP ZD100 is an RFID reader with a read range up to 304.8 cm. We need a range between 70 - 100 cm. Its price is $360.82. Here is a detailed description of the product which is taken from the website that sells the item. For further information please visit: http://www.aliexpress.com/product-gs/287983507-ZD1040-rfid-reader-rfid-portable-reader-rfid-reader-pda-rfid-writer-reader-rfid-reader-Handheld-rfid-wholesalers.html

Description:

Place of Origin:Guangdong China (Mainland) Color Depth:32 Bit Interface Type:USB,SCSI,COM,IR Optical Resolution:3mil Scan Speed:100 times/second Brand Name:ZZDP Model Number:ZD1000 Scan Element Type:laser Operation system: WINCE 5.0

Manufacturer:

ZZDP (Shenzhen China ) more than ten year's tech ZZDP ZD1000 Series Mobile Computer (PDA)

Combined barcode scanning and RFID capabilities Windows® CE 5.0 Professional operating system
Large, 3.5inches color TFT QVGA 320×320


Performance CPU ARM Core Operating system Microsoft Windows CE 5.0 Professional Memory 128MB Flash ROM /64SDRAM Interface COM,USB (2xHOST,DEVICE) ,,IRDA IRDA Baud Rate 7600BPS Working hours 12 hours @ 8000 times scan Operating power 3.7 V 1600 mAh Li-ion battery Adapter: AC 110~240 V input, DC 5 V/1A output Alerts Speaker /LED signals Wireless Communication WLANIIEEE802.11 b/g (optional) Data Capture Barcode scanning LaserEAN, UPC, CODE39, CODE93, INT25, CODE128 .etc RFID reader/writer Frequency:13.56MHz Supported tags: ISO 14443A, ISO 14443B,ISO 15693, ICODE Read range 0.2 feet to 10 feet (6.09cm to 304.8cm) Writer range 1 feet to 2 feet (30.5cm to 60.9cm) Physical parameter Display 3.5 Color QVGA,TFT , LED backlit320×320 Keypad 20 keys letter/Numeric KEYBAD Size (L /W / H) 190x86x32mm Weight 180g User Environment Temperature -10ºC to 40ºC operating temperature -30ºC to 70ºC storage temperature Humidity 5% to 95% non-condensed Impact resistance 1.2m multiple drops on concrete floor Programming Visual Studio 2005/2008,eMbedded Visual C,eMbedded Visual Toolsoffer barcode, operation buzzer, read and write M1, infrared send and receive routine ect. source code Communication cradle USB clientUSB hostCOM Warranty 1 year


For the tags, we have selected ISO 15693, which is supported by the chosen reader. Its being sticky is a big advantage for the project because putting it on the left side of the windshield will first of all make the usage easier for the driver. Once he gets the parking permit, he will also get the sticker and put it on the windshield and will not care about it later than that. Secondly, when the tag is on the left side of the windshield, it is closer to the reader and that will let us use a smaller read range for the reader. Using a small read range is important because the larger read range we use, the more possibility of detecting unintended tags. The price for this product is $0.99 if it is ordered over a thousand in amount, which is the case for this project. Here is a detailed description of the product which is taken from the website that sells the item. For further information please visit:

http://www.remoteidentity.com/tag/ti_45x45_tag_it_hfi_square_sticky_label


TI 45x45 Tag-It HFI Square Sticky Label

Face Material:Thermal Transfer Paper Color: White Adhesive: Permanent Dimensions (in.): 2.0(W) x 2.0(H) x 0.2(O) Inlay: 45 x 45 Tag-It HF-I


According to the products that are chosen, the average cost of this project is as follows: Price Quantity Total RFID Reader $360.82 24 $8,659.68 RFID Tag $0.99 6500* $6,435 Total $15,094.68 Price per car $15,094.68/6500 = $2.32

  • According to the information we have got from the parking service of Binghamton University, 6339 has bought the parking permit during the academic year 2009-2010. This number is an assumption based on this number.


If we take the amount of money paid per year for the parking permit into account, $2.32 per person is a very reasonable cost.

We have also developed a second alternative for our parking lot project. This system aims to direct our customers to the available parking lots in the shortest time possible. Our system is based on a plan of dividing our large parking area, into smaller regions in which we would be detecting the lots by an RFID reader. The regions are circular shaped and has a capacity of 40 to 50 cars. In the center of the circle, we have an RFID reader which has the capacity of controlling the given number of car lots. These RFID readers are able to detect the number of cars in these defined regions. These regions are divided according to the maximum read range of RFID readers. All registered cars to our parking lot have the RFID tag and these tags enable us to detect where the cars are parked. Briefly, the main reason for building this system is that we would like to give a more specific region so that our customers would be able to directly go to that available parking lot, in the shortest time possible. To make our goal possible, as we have mentioned before we have divided the parking lot in to smaller regions. Prior to our system, the parking lot was just divided into four different areas which were M1, M2, M3 and M4. If we just consider M1 lot, it had a capacity of 457 cars and it has been forming the 1/3 of the whole parking lot. We divided this parking lot into circles with a radius of 15 meter. Each divided region has a capacity of 40-45 cars. There are two reasons for us to keep the distance as 15 meters. Firstly, the price of an RFID reader increases as the distance increases and second reason concerns our customers. As the region gets larger, we would not be able to deliver specific information as we do right now.


      Another technical explanation that we need to make is about the information that is sent from the readers. We have two different options to use the information. We can either use both or just one of them. Both ways would give us sufficient information.  The first option is to receive the information and send it to the server by routers and update our website. To use this option, our customers should go online and check the website to see the available parking lots. To facilitate this process, assuming that most of our consumers use smart phones, we can establish an application that would also publish the same information. The second option is considered as low cost and higher efficiency compared to the first option that we have discussed. By using the screens in the entrance of the parking lots, our customers would be able to see the available lots in the entrance and they could easily reach to the parking lots that they prefer.


To implement our project we need some technical appliances. Preeminently, we need the RFID readers and tags. The table below indicates the details of the cost of every single product that is a part of the project. PRODUCT COST PER UNIT QUANTITY FOR M1 QUANTITY FOR M2 QUANTITY FOR M3&M4 TOTAL QUANTITY TOTAL COST RFID READERS $ 1,495.00 10 10 13 33 $34,500.00 ACTIVE RFID TAGS $7.00 N/A N/A N/A 6500* $45,500.00

	 	 	 	 	 	 $80,000.00
  • According to the information we have got from the parking service of Binghamton University, 6339 has bought the parking permit during the academic year 2009-2010. This number is an assumption based on this data.
    • Assessing our total cost, we will reach $ 12.31 cost per a registered car.

As a reminder, choosing the right RFID tag is the most important part of our project because there is a wide range of products but we choose the most efficient which would be able to read from 15 meters. In terms of comparing the two alternatives, we are taking their costs, feasibilities, performances and ease of use into consideration. In the second one, since the parking lot is divided into more regions, it gives more accurate information about the emptiness of the parking lot. However, in the first one M parking lot is divided only into 3 regions, so that in the second project, the driver would find an empty spot faster. Another issue is that in the second project we will be using active tags, however, in the first project, since we need a shorter range, passive tags would do fine. Passive tags are cheaper and they get energy from the RFID readers. Tags also don't have to have a microprocessor as it is the case for active RFID tags, since tags will be used only for detecting purposes and since there will be no information needed regarding to the car or the driver. Looking at the other side, passive tags are susceptible to signal disturbance from shiny metal surfaces and liquids, and are thus prone to failure. According to the people we made surveys, 90% of them said that they would rather choose the second option, regarding to the fact that it would give us more specific data. In terms of budget, option one requires 15,094.68$ and option 2 requires 80,000,000$. Both projects have strong advantages, however to choose among them depends on what factor you give the most priority. For instance, if Binghamton University's parking services give the top priority to the student's demand and have the necessary budget, than they definitely should choose the second option. According to our survey, most of the people of course preferred the second option since it gives more accurate data. However, one thing should be kept in mind and that is the cost. Second alternative is nearly 5 times higher than the first one in terms of cost. Furthermore, if the parking service is giving the top priority to the cost-effectiveness, then they should choose the first alternative. We as a group, decided that if we were to choose among the alternatives, we would choose the first alternative. Because we don't think paying 5 times more money is worth to have only more accuracy. But this choice comes from the managerial perspective, looking from the engineering perspective we would rather implement the first one. By the way, it is important to say that, if a person without a parking permit gets in the parking lot, since he/she doesn't have the RFID tag, the car would occupy a parking spot without the knowledge of the RFID reader and in the digital sign board, it would display as if that spot is empty. So, there would be a slight error rate because of the rule violators. In conclusion, trying different technologies within the same project has contributed a lot to our wireless knowledge. First of all, we were engaged with the SuitSat technology, analyzed it and examined its parts carefully which enabled us to learn more about hardware stuff. After that, with the RFID technology, we found a chance to make research about the RFID tags, RFID readers and RFID technology in general. At the end, we have decided that the best design for our project would be with the RFID technology. However, we had too many options with the RFID technology in terms of deciding the amount of readers to be used, distance of their positions to the lots, and budget that would be available for us to use, etc. After careful examination of the options, we have decided on the two best options as we have explained above. We also stated that if we had the budget we would choose the first alternative since it is much more cost-effective. Budget required to actualize the project can be high, however, since there will be 6500 cars, the money that would be added to the parking permits will be low.



The team members of Parking Lot Project who worked in 2009-2010, are Omer TEZYAPARLAR, Yasemin DOGRUL and Nesil AYDIN.