A. Tools and resources used
To achieve desired functions, apart from standard Python/ RaspberryPi functions and AWS services, we imported some other libraries, which introduction and links are listed below.
1) GrovePi (http://www.dexterindustries.com/grovepi/)
We deployed GrovePi electronic board on our Raspberry Pi to connect sensors and relays. Some of the hardware we used came from the developer's kit provided by this semester's labs.
2) PyAPNs (https://github.com/djacobs/PyAPNs)
To send push notifications to our iOS application with our RaspberryPi/ec2 server, we used PyAPNs library and send notifications with regard to token numbers.
3) Apple's Developer's Account
To send push notifications, we acquired an Apple developer's account (with $99).
4) Apple Push Notifications Service (http://docs.aws.amazon.com/zh_cn/sns/latest/dg/mobile-push-apns.html)
We initialised configuration with AWS SNS to send push notifications with Python.
1) GrovePi (http://www.dexterindustries.com/grovepi/)
We deployed GrovePi electronic board on our Raspberry Pi to connect sensors and relays. Some of the hardware we used came from the developer's kit provided by this semester's labs.
2) PyAPNs (https://github.com/djacobs/PyAPNs)
To send push notifications to our iOS application with our RaspberryPi/ec2 server, we used PyAPNs library and send notifications with regard to token numbers.
3) Apple's Developer's Account
To send push notifications, we acquired an Apple developer's account (with $99).
4) Apple Push Notifications Service (http://docs.aws.amazon.com/zh_cn/sns/latest/dg/mobile-push-apns.html)
We initialised configuration with AWS SNS to send push notifications with Python.
B. Github
Back-end
Client iOS App
https://github.com/rockypandalu/Food-Ordering-System-iOS.git
Seller iOS App
C. Detailed description to facilitate reptetition of the project
1) Deployment of hardware of smart food delivery boxes:
To set up the hardware portion of the project, prepare boxes, magnetic locks, temperature&humidity sensors, relays, and batteries. Set up Raspberry Pi first with AWS CLI configured. Connect relays to digital outputs on GrovePi electronic boards and temperature&humidity to digital inputs. Connect relays between batteries and magnetic locks. Then make sure internet connection on Pi is stable, and run our "application.py" program on it.
2) Deploy AWS services.
Make sure you are using the same AWS account as the configured AWS CLI on Raspberry Pi. Deploy Lambda programs on AWS Lambda, and configure AWS machine learning. Create a topic with specific subscribers in AWS SNS and make sure all of the relating tables are present in DynamoDB. Start a ec2 instance with AWS CLI configured, and run "sendorder.py" on your ec2 instance.
3) iOS app deployment
Download our iOS application on both the restaurant and user and, start placing order and make sure everything is properly putted together.
To set up the hardware portion of the project, prepare boxes, magnetic locks, temperature&humidity sensors, relays, and batteries. Set up Raspberry Pi first with AWS CLI configured. Connect relays to digital outputs on GrovePi electronic boards and temperature&humidity to digital inputs. Connect relays between batteries and magnetic locks. Then make sure internet connection on Pi is stable, and run our "application.py" program on it.
2) Deploy AWS services.
Make sure you are using the same AWS account as the configured AWS CLI on Raspberry Pi. Deploy Lambda programs on AWS Lambda, and configure AWS machine learning. Create a topic with specific subscribers in AWS SNS and make sure all of the relating tables are present in DynamoDB. Start a ec2 instance with AWS CLI configured, and run "sendorder.py" on your ec2 instance.
3) iOS app deployment
Download our iOS application on both the restaurant and user and, start placing order and make sure everything is properly putted together.