Introduction: Manage Attendance and Protect Your Child - IDC2018IOT

When a child does not come to school it is very important to inform the parent. Time can be critical, as small children may get in trouble and help should come quickly.

Our system updates an internet database that tracks the children's arrival at school. At the beginning of the day the teacher will receive a link to the database so that it saves significant time that is wasted today on naming names, this time can be used for learning.

For every child who does not arrive that morning, we will send an email to one of his parents and update him. The parent will be able to answer the teacher if the child is with him or he can push the button to alert the police about the child's absence.
The main advantage of this system is immediacy, we were all students in the school and it is important that we take care of our children.

In this project, we used the NodeMCU controller, the firebase database, the Blynk application, and the IFTTT website.
Hope you can learn about the different interfaces and the variety of capabilities these tools allow. Enjoy and keep your kids safe.

Step 1: Explanation Video

    Step 2: Step Before Starting

    In our project we use the following components:

    • Firebase - The purpose of using the updated DB is to store information online to access it by multiple devices and to view data in real time. In our project, the information we needed to store was the condition of the children in the class whether the child was present in class or not. Every morning the DB updates all children as unavailable to re-enable the presence.

    If you lack any knowledge on this subject, you can use:

    https://www.tutorialspoint.com/firebase

    • NodeMCU - It is the main computer of our project and it manages all the existing syncs between the various components. Its purpose is to communicate with the hardware and transfer the information to the Internet.

    If you lack any knowledge on this subject, you can use:

    http://nodemcu.com/index_en.html

    The project assumes you have a basic knowledge… Because Arduino is life!

    • MFRC522 RFID READER - The purpose of the sensor is to sense the entry of the children/students into the class by placing it on the front door and every child/student who enters the class will transfer his chip.

    If you lack any knowledge on this subject, you can use:

    https://www.instructables.com/id/MFRC522-RFID-Reade...

    • RFID Chips - Each child will have a personal chip that identifies him and is linked to his name.
    • Blynk - An application installed on the teacher's phone, which connects the controller to the Internet. In this project we will receive an input from the Internet about the time, so we will know how to manage the schedule. In addition, this application allows us to trigger events on the Internet from the code itself
    • IFTTT - We use IFTTT applets to communicate with Blynk, and to send notifications as E-mails and SMS.

    If you lack any knowledge on this subject, you can use:

    https://ifttt.com/discover

    Well after you're sure you know all the elements of our project you can start

    Step 3: System Description

    Step 4: Firebase Initialization Phase

    Our system works with Real-Time Database and for this purpose need the server address and token.

    • Find and copy the server address and save the Real-Time Database. Then, Database-Choose server address looks like xxx.firebaseio.com.
    • Database Secret / Token: Project Settings-> Service Accounts-> Database Secrets -> Show

    Copy and save these strings to the side.

    Step 5: MFRC522 RFID - Wiring

    If there is a problem, look at the comments for pin changes according to the specific model

    https://www.instructables.com/id/MFRC522-RFID-Reade... (Same link as before)

    Step 6: Writing Code to NodeMCU

    Attached code of the project,

    Hashmap library: https://github.com/vlast3k/Arduino-libraries/tree/...

    Enter the details of the FireBase, Wifi address, Blynk in the code and the names of the students in the class corresponding to their chip.

    Step 7: Prepare the Appropriate Applets in IFTTT and Widgets in Blynk

      In Blynk app we used two button widgets and one webhook widget. the buttons were used to receive updates from IFTTT, the webhook widget was used to trigger an event on IFTTT.

      IFTTT applets

      • Date/Time -> webhooks, from Sunday to Thursday at 8 am a virtual pin on Blynk change its value. Which triggers a function who sends mail to the parent of the kid who was found absent
      • Date/Time -> webhooks, from Sunday to Thursday at 10 pm a virtual pin on Blynk change its value. Which triggers a function that resets the firebase
      • Date/Time -> Gmail, from Sunday to Thursday at 8 am the teacher receives an email with a link to the presence list on the firebase
      • Webhooks -> Gmail, if a child is found absent the teacher can trigger an IFTTT event using Blynk webhook, this event sends an email with links to two other IFTTT events, one who sends back an email and another who sends an SMS to the police.

      Step 8: System Boot Stage for Operation

      Set the alarm time: In our system in the manner described below, it is possible to determine the threshold time at which the DB will be examined and by this time messages will be sent to the teacher and the parents whose children have not arrived.

      Determination of Teacher's Email: This is an example of the list of names that the teacher receives every day at the appointed time.

      Enter the students' names into the code to be written in firebase by their name: We hope that we will update the project later and this step will be more automatic and accessible, but at this stage, the names of the students should be entered in the appropriate place in the code according to the Chip ID.

      Step 9: Creator's Final Words

      Our main challenge

      We had a lot of challenges during our project. It started with the challenge of connecting the hardware. We tried our identification process using a fingerprint sensor. After many attempts to work with the sensor, we realized that the sensor was of poor quality.

      The process of developing the concept was particularly challenging because during the year we acquired many tools that could be used, and we had a hard time choosing the tools we wanted to use in this project to best fit our idea.

      During the process of working on the project, we have decided that we want to make the mail informing the parent to be a mail that can be answered by reply. Finally, the solution was using IFTTT events.

      We learned a lot about firebase and found ways to easily extract data from it:
      https://gbhackers.com/firebase-vulnerability/

      We never faced such a challenge and had to read, research and learn to complete the task. And, of course, a lot of help from our teacher Zvika!

      System limitations

      1. The system does not know how to deal with the transfer of chips between the children because the chip in terms of the system is the child's ID.
      2. The system does not know how to deal with children who are late for the deadline.
      3. The system needs the intervention of a technological factor when you want to add a new student to the class.
      4. The system does not relate to the academic calendar in a wise manner, and it refers to school days according to the school days defined in the same manner for all the weeks of the year.
      5. The system can not warn of the departure of a child in the middle of the day.


      Future developments

      A convenient interface for initial initialization of a class in the system: definition of chips, the definition of student name, child-to-parent coupling, time of arrival by a day. All of the above will be updated through a user-friendly interface. It will also be possible to define the school days and to relate specifically to the holidays and festivals.

      A realistic timetable for the continuation of the project:

      • In early August 2018 the synchronic solution with the academic calendar marking the holidays and holidays.
      • In mid-August 2018 completed the characterization of the system boot interface.
      • In mid-September 2018 the completion of the interface design characterization.
      • After the Jewish holidays, we will be ready to experience our first class :)
      • After that, we would continue our project by testing it in a classroom and learning the gaps that arise from the use of our system.
      • Later (beginning of 2019) we would like to use a similar idea in kindergartens as a safety device that prevents the inactivity of children in the vehicle.