Hi, how are you?
Today we're going to introduce you to the SmartEDU project. Our concept is a solution to make learning environments better to any given group of students, taking into account their habits during the learning process and making the environment itself change its behavior to suit the needs of one specific group. We do that by gathering data using sensors attached to the Intel Edison board, sending it to the cloud, processing it and getting it back so we can change automatically a classroom`s lighting or temperature settings, for example.
The materials we used for this projects were:
- A green and red LED;
- four resistors;
- Several jumpers, for power and data transmitting purposes;
- Intel Edison;
- Sensors: A photocell (which we also refer to as light sensor) and a thermistor sensor;
Step 1: Setting Up the Edison Chip
the very first step into building the project is to attach the Edison chip to the board itself. It is a very simple procedure that most people will be able to handle without any further difficulties. The final result can be seen in the images provided.
Step 2: Connecting the GDD and GCC Cables on the Breadboard
Our next step is pretty straightforward, and consists in connecting the GDD and GCC cables from the Intel Edison Board to our breadboard, so we can provide it with power for it to work properly.
Step 3: Connecting the Light Sensor to the Breadboard
The third step consists in gathering the data related to the luminosity in a classroom, for example. We need to get this value so we can process it, send to the cloud, learn which is the best configuration for that specific group and send the optimized values back to the board so it can adapt itself and make the learning environment better, but we`ll get to that in further steps. For now , we will simply attach a light sensor to the ANALOG IN A0 (it is the yellow cable in the picture), making sure it is properly connected and then connecting a resistor for safety reasons. Here, pretty much any kind of resistor will do because its task is only to protect the sensors. Note that connecting a resistor is not mandatory but we highly recommend it due to security purposes.
Step 4: Connecting the Thermistor Sensor to the Breadboard
We use a thermistor in order to detect which is the temperature in the classroom, so we can learn if the students are having the best performance possible in that environment. The procedure is almost the same as the previous step, since the only thing that changes is the sensor we use. However, instead of connecting to ANALOG IN A0, we connect it to ANALOG IN A1.
Step 5: Connecting the Green LED
In this step, we`ll proceed to simulate what would happen if the luminosity wasn`t appropriate. We use a LED as a representation of a lamp, so whenever the luminosity value gathered by the sensor is not the best one to that group of students, we take action. We connect the LED to DIGITAL 13.
Step 6: Connecting the Red LED
In a very similar procedure to the previous step, we connect the red led to the breadboard. The difference is that it represents changes to the temperature, and we connect it to DIGITAL PIN 12.
Step 7: Final Step
Here we come to our final step for the project. After all the components are attached to the Intel Edison board and to the breadboard, we`re able to receive data from the environment and from the internet. We used several technologies for that to work, so we we`ll approach them as a suggestion having in mind that there are several ways for anyone to process the data received.
Having in mind that we did not have a controlled environment to make tests, we were still able to simulate a classroom by gathering the values from the Intel Edison board, writing it to a JSON file including the values of the light sensor and the thermistor. We set up a web server that would constant listen to incoming data through a specific port (you could do that locally by using the built-in Intel Edison web server), so whenever we made an HTTP POST request, the information contained in the JSON file would be stored to our database. We strongly suggest using Node JS to easily set up a web server, and the Express framework to manage the requests sent by the board. Also, since we were using JSON, we suggest using MongoDB to deal with the data, since it is very easy to treat JSON formatted objects with it (There are other options that you might also consider though, such as using SQL structured databases).
To receive incoming data to the board (the values optimized by some artificial intelligence set up by whoever is building the project. We used simple classification because we didn`t have the means by the time to implement anything more specialized, but we highly suggest looking further for better machine learning techniques) we used the technology provided by the board itself to handle internet calls, the wifi library that comes with Edison itself. Because of that, we could receive data coming from the outside to change the behavior of specific components in the board.
We hope you enjoyed our project and learned as much as we did by building this project with the awesome Intel Edison board!
Click here to open the github repository.