EPS@ISEP | The European Project Semester (EPS) at ISEP


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
report [2015/06/22 17:08] – [7.4 Design] team4report [2015/06/23 12:06] (current) – [7.2 Architecture] team4
Line 1480: Line 1480:
 __Arduino Sketch__ __Arduino Sketch__
  
-The Arduino runs a continuous sketch that has several functions to read values from the sensors while waiting for input from the serial port. The main idea behind the code was to turn the connected devices only when requested by Raspberry Pi. +The Arduino runs a continuous sketch consisting of several functions. Their tasks are to read values from the sensors and control devices connected to the microcontroller. The main idea behind the code was to turn the connected devices only when requested by Raspberry Pi. 
-Used libraries:+**Used libraries:**
  
   * One Wire – allows using waterproof temperature sensor DS18B20, is applied to detect the sensor and create monitoring instance.   * One Wire – allows using waterproof temperature sensor DS18B20, is applied to detect the sensor and create monitoring instance.
Line 1487: Line 1487:
   * Stepper – allows the control of stepper motor movement e.g. number and speed of rotations.   * Stepper – allows the control of stepper motor movement e.g. number and speed of rotations.
   * IRremote – library operating infrared shooting sensor and allowing to create modulated infrared signal emitted from the connected diode.   * IRremote – library operating infrared shooting sensor and allowing to create modulated infrared signal emitted from the connected diode.
 +
 +The code structure is presented below.
 +
 +<WRAP>
 +<figure flabel87> 
 +{{:flow-chart_vio.png?700|}}
 +<caption>Flow chart for Arduino code</caption>
 +</figure>
 +</WRAP>
  
 The initial setup for Arduino consists of defining the pin status and first temperature request in order to turn the heater on automatically if the water is too cold. The initial setup for Arduino consists of defining the pin status and first temperature request in order to turn the heater on automatically if the water is too cold.
  
-Further code flow is controlled by Raspberry Pi //i.e.// that the microcontroller only responds to the requests sent through the serial port. Firstly there is a ready check performed, then the several values are obtained from sensors, afterwards, the user input from website is applied //i.e.// the settings for feeder, pump, lamp and heater are uploaded and performed. The code runs in continuous loop.+Further code flow is controlled by Raspberry Pi //i.e.// that the microcontroller only responds to the requests sent through the serial port. Firstly there is a ready check performed, then the several values are obtained from sensors, and sent back to Raspberry Pi. afterwards, the user input from website is applied //i.e.// the settings for feeder, pump, lamp and heater are uploaded and applied. The code runs in continuous loop.
 ==== 7.3 Components ==== ==== 7.3 Components ====
  
Line 2108: Line 2117:
 ==== 7.6 Tests and Results ==== ==== 7.6 Tests and Results ====
  
-In order to visualize the functionalities test and results Table {{ref>tlabel654}} shows this information.  Test column if simply to confirm the works as expected. The result column shows a status of pass, fail, or incomplete. A status of pass means the functionality performs as expected and needs no further development. A status fail means that in development and can be tested, but is not functioning as expected. This fail means that some further development is needed. A status in incomplete means that the function is in development and may need extensive work to earn a status of pass.+In order to visualize the functionalities test and results Table {{ref>tlabel654}} shows this information.  Test column if simply to confirm the works as expected. The result column shows a status of pass, fail, or incomplete. A status of pass means the functionality performs as expected and needs no further development. A status fail means that in development and can be tested, but is not functioning as expected. This fail means that some further development is needed. A status in incomplete means that the function is in development and may need extensive work to earn a status of pass.\\  
 +For the tests and results concerning the feeder, light and heater it was necessary to hook up the devices with the Arduino in order to test the code. For the next step the challenge was to control the devices through the serial port from Raspberry Pi to Arduino. The final step was to control all three components from our website via Wi-Fi.\\ 
  
 <table tlabel654> <table tlabel654>
Line 2141: Line 2151:
 The main success was staying under the budget threshold while keeping the product fully functional and sustainable. We managed to find cheap solutions offering the same as products even four times as expensive.\\ The main success was staying under the budget threshold while keeping the product fully functional and sustainable. We managed to find cheap solutions offering the same as products even four times as expensive.\\
 The biggest problems during development were the heating of the board which we solved by mounting the box in a specific position, the current consumption which was solved by Arduino coding turning the sensors and stepper motor on only when requested by Raspberry Pi.\\ The biggest problems during development were the heating of the board which we solved by mounting the box in a specific position, the current consumption which was solved by Arduino coding turning the sensors and stepper motor on only when requested by Raspberry Pi.\\
-The other issue was to integrate Arduino code with Raspberry Pi controls and the web application. That problem took a lot of trials to solve but the ultimate solution was to make Raspberry Pi the master device responsible for writing to database and controlling the slave – Arduino.+The other issue was to integrate Arduino code with Raspberry Pi controls and the web application. That problem took a lot of trials to solve but the ultimate solution was to make Raspberry Pi the master device responsible for writing to database and controlling the slave – Arduino.\\  
 +The final prototype was mounted in a used PC power supply box. There were multiple modifications to be undergone in order to make all components fit in the right way. The installed final system is displayed in Figure {{ref>flabel8886}}. 
 +Inside the box are the following components:  
 +  * Raspberry Pi 
 +  * Converter from 12 V to 5 V 
 +  * Arduino Uno 
 +  * 4-channel Relay 
 +  * Power supply 
 +  * Principle switch button 
 +  * Power light converter from 240 V to 25 V
  
 +
 +<figure flabel8886> 
 +{{:imag1759_1.jpg?450|}}
 +<caption>Final prototype</caption>
 +</figure>
 ===== 8. Conclusions ===== ===== 8. Conclusions =====
 ==== 8.1 Discussion ==== ==== 8.1 Discussion ====
QR Code
QR Code report (generated for current page)