2014-IoT
Fall 2014, Room 4202, 10:10~12:00 Wednesday
Instructor: Kun-chan Lan
(this course is offered in English)
an introductory course to teach you how to become a “maker” of Inerent of Things (IoT) technology using publicly-available open-sourced tools
Goal: a brief walk-through of the open-source tools (both hardware and software) you can use to create an IoT application
Objectives
- We start with describing the theortical part of technology
- Followed by an introduction of various open-sourced tools such as Arduino, Android, and Hadoop
- Guide you through the cycle from having an idea to finally creating a real product rce it
- A strong hands-on focus
Scope
- Sensor Network
- TCP/IP and socket programming
- Arduino
- Android programming
- Using Hadoop
- How to open-source your project
Recommended reading
Lecture Slides
- Week 1: Slide
- Week 2: Slide Course outline, Intro to IoT, RFID, Sensors
- Week 2: English Transcript --> Course outline, Intro to IoT, RFID, Sensors
- Week 2: Video
- Week 2: Quiz , Answer
- Week 3: Slide--> Open source, Big data, OSI, Intro to AdhocNet
- Week 3: English Transcript -->Open source, Big data, OSI, Intro to AdhocNet
- Week 3: Video--> Open source, Big data, OSI, Intro to AdhocNet
- Week 3: Quiz , Answer
- Week 4: Slide--> Broadcast, DSR, AODV, Wimax, LTE
- Week 4: English Transcript--> Broadcast, DSR, AODV, Wimax, LTE
- Week 4: Video--> Broadcast, DSR, AODV, Wimax, LTE
- Week 4: Quiz , Answer
- Week 6: Slide --> IntroTCP/IP, Congestion Control, Loss Control, Sockets
- Week 6: English Transcript --> IntroTCP/IP, Congestion Control, Loss Control, Sockets
- Week 6: Video --> IntroTCP/IP, Congestion Control, Loss Control, Sockets
- Week 6: Quiz , Answer
- Week 8: Slide --> Socket, TCPsocket, Multiplex, Addressing
- Week 8: English Transcript --> Socket, TCPsocket, Multiplex, Addressing
- Week 8: Video -->Socket, TCPsocket, Multiplex, Addressing
- Week 8: Quiz , Answer
- Week 10: Slide --> Daemon, IO, IP option, Raw socket
- Week 10: English Transcript --> Daemon, IO, IP option, Raw socket
- Week 10: Video --> Daemon, IO, IP option, Raw socket
- Week 10: Quiz, Answer
- Week 11: Slide --> Intro-Arduino, Arduino IDE, Basic Arduino programming, Arduino IO
- Week 11: English Transcript --> Intro-Arduino, Arduino IDE, Basic Arduino programming
- Week 11: Video --> Intro-Arduino, Arduino IDE, Basic Arduino programming, Arduino IO
- Week 12: Slide --> Intro-Android, Android programming, GUI design, Spinner
- Week 12: English Transcript --> Intro-Android, Android programming, GUI design, Spinner
- Week 12: Video --> Intro-Android, Android programming, GUI design, Spinner
- Week 12: Quiz, Answer
- Week 13: Slide --> Part1, Part2, Part3, Part4
- Week 13: English Transcript --> Part1, Part2, Part3, Part4
- Week 13: Video --> Part1, Part2, Part3, Part4
- Week 13: Quiz, Answer
- Week 14: Video --> Link Part1, Part2, Part3, Part4
- Week 14: Slide --> Part1, Part2, Part3, Part4
- Week 14: English Transcript --> Part1, Part2, Part3, Part4
- Week 14: Quiz, Answer
- Week 15: Slide --> Part1, Part2, Part3, Part4
- Week 15: English Transcript --> Part1, Part2, Part3, Part4
- Week 15: Video --> Part1, Part2, Part3, Part4, Link
- Week 15: Quiz, Answer
Announcement | ||
---|---|---|
Date | Content | |
10/22 | For next week (10/22), you guys only need to prepare week 4's materials. | |
10/29 | no class | |
11/05 | Group 5 will present | |
11/19 | Group 2 will present | |
11/26 | Tutorial for Arduino | |
12/03 | Group 7 will present Socket Programming (Network Programming III) | |
the quiz will be on Android programming (I) | ||
12/10 | Group 8 will present Android Programming II | |
12/17 | Group 6 will present Android Programming III | |
12/24 | Group 12 will present Hadoop | |
12/31 | > Please send the URL links (YouTube) of your project demo video to TA (e-mail) before 12/31 9.00 am. The project demo will start at 10.10 am. | |
01/07 | Final exam: write the answer in English |
Instructor
Prof. Kun-chan Lan
Office: new CSIE building 12F 65C05
Office hours: 3-4 pm on Wednesday and Friday, or by appointment via e-mail
Email:
This email address is being protected from spambots. You need JavaScript enabled to view it.
TEL: +886 6 2757575 ext 62550
TA
Paweeya Raknim
Office: new CSIE building 5F
Office hours: 14-16pm on Wednesday and Thursday
Email:
This email address is being protected from spambots. You need JavaScript enabled to view it.
TEL: 06-2757575 ext.62520 (and then another extension 35)
Prerequisite
- Programming knowlege in Java/C++ (should have been coverd in Program Design I/II)
Grading Policy
Creative project (25%)
- Report (10%)
- Demo (15%)
Home Work Exercise (30%)
Exam (25%)
- Midterm (10%)
- Final (15%)
Quiz (20%)
- Extra credits (+/-)
Class participation and course review
- Up to +/- 10%
Syllabus
week 1 (9/17) Administration issue
week 2 (9/24) A network of Sensors (I)
week 3 (10/1) A network of Sensors (II)
week 4 (10/8) A network of Sensors (III)
week 5 (10/15) Out for conference
week 6 (10/22) Network Programming (I)
week 7 (10/29) no class
week 8 (11/5) Network Programming (II)
week 9 (11/12 ) Midterm exam
week 10 (11/19) Network Programming (III)
week 11 (11/26) Introduction to Arduino, Homework I due
week 12 (12/3) Android Programming (I)
Week 13 (12/10) Android Programming (II), Homework II due
week 14 (12/17) Android Programming (III)
week 15 (12/24) Introduction to Hadoop
week 16 (12/31) in-class project demo
week 17 (1/7) final exam, Homework III due
Homework
Homework I: TCP/IP programming
Homework I description: At the core of your ping program, you will craft a ICMP ECHO request packet (client side), send it to the specified destination, and wait for a reply. Normally, it will send a packet every second, You have to write a version of ping with which the user can define the sending interval (not fixed!) at the unit of ms, an example command will be like ping -t 200 www.google.com (sent a ping request every 200ms) ping -t 10 www.ncku.edu.tw (sent a ping request every 10ms) and print output based on the replies. To familiarize yourself with ping, try executing the built-in ping program that comes standard on must OS installations. For example, here is some sample output of pinging www.google.com on Windows: (Ping -t 200) |
Homework II: Arduino programming
Homework III: Android programming
Homework III: Android Emergency Alert with Fall detection
Write Android programing to create an alert system for fall detection using a smartphone to both detect the fall and alert authorities.
>>>Using an Android-based smartphone with an integrated tri-axial accelerometer.
o Data from the accelerometer (A) is evaluated with several threshold (defined by yourself) based algorithms and position data to determine a fall.
o If A > threshold --> Fall is detected --> System alert!!!
>>>The system alert: the system will contact the emergency call automatically by picking information from a user’s profile.
o In the user’s profile consist of the emergency number (phone call or SMS).
1. If the user selected “Phone call” as the first emergency contact, the system will make a call automatically to provided phone number when detected a fall.
2. If the user selected “SMS” as the first emergency contact, the system will contacts with an informational message via SMS when detected a fall.
Term Project
- Design something interesting that can amaze everyone
- Based on what you’ve learnt from the class
- Use your imagination!!
Project report
You will need to submit a 2 page project report that explains what you plan to do for your project and how exactly you are going to do it
Due 11/26/2014
Demo your project
In the end of semester, you will demo your project in-class
Each team has to make 5-min video to demo your project
The video should be uploaded to youtube
The project demo will be scored by me and also peer students
Project evaluation
Mid-term
2 page, 11-pt-font, double-spaced report that describes/explain your project (10%)
Final
Project demo (15%)