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
en:iot-open:hardware2:sensors_distance [2023/10/02 23:39] pczekalskien:iot-open:hardware2:sensors_distance [2024/05/27 15:02] (current) ktokarz
Line 1: Line 1:
 +====== Proximity and Distance Sensors ======
 +{{:en:iot-open:czapka_b.png?50| General audience classification icon }}{{:en:iot-open:czapka_e.png?50| General audience classification icon }}\\
 +== Infrared Sensor ==
 +An infrared (IR) proximity sensor detects objects and measures distance without physical contact. IR sensor consists of an infrared emitter, a receiving sensor or array of sensors and a signal processing logic. The output of a sensor differs depending on the type – simple proximity detection sensor outputs //HIGH// or //LOW// level when an object is in its sensing range, but sensors which can measure distance output an analogue signal or use some communication protocol, like I2C to send sensor measuring results.
 +IR sensors are used in robotics to detect obstacles located a few millimetres to several meters from the sensor and in mobile phones to help detect accidental screen touching.\\Sample IR sensor device is present in figure {{ref>proxim1}} and its connection to the microcontroller in figure {{ref>proxim2}}.
 +
 +<figure proxim1>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:sharp_c.jpg?200 | Distance Sensor GP2Y0A21YK0F}}
 +<caption>Distance Sensor GP2Y0A21YK0F</caption>
 +</figure>
 +
 +<figure proxim2>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:sch_apz_shemas_ir_prox.png?200 | Arduino and IR proximity sensor circuit}}
 +<caption>Arduino and IR proximity sensor circuit</caption>
 +</figure>
 +
 +An example code:
 +<code c>
 +int irPin = A0;  //Define an analogue A0 pin for IR sensor
 +int irReading;  //The result of an analogue reading from the IR sensor
 +
 +void setup()
 +{
 +    //Begin serial communication
 +    Serial.begin(9600);  
 +    //Initialize the analogue pin of an IR sensor as an input
 +    pinMode(irPin, INPUT); 
 +}
 +
 +void loop()
 +{
 +    //Read the value of the IR sensor
 +    irReading = analogRead(irPin); 
 +    //Print out the value of the IR sensor reading to the serial monitor
 +    Serial.println(irReading); 
 +    delay(10); //Short delay
 +}
 +</code>
 +
 +== Ultrasonic Sensor ==
 +The ultrasonic sensor measures the distance to objects by emitting a short ultrasound sound pulse and measuring its returning time. The sensor consists of an ultrasonic emitter and receiver; sometimes, they are combined into a single device for emitting and receiving. Ultrasonic sensors can measure greater distances and cost less than infrared sensors but are more imprecise and interfere with each other's measurements if more than one is used. Simple sensors have a trigger pin and an echo pin; when the trigger pin is set high for a small amount of time, ultrasound is emitted, and on the echo pin, response time is measured. Ultrasonic sensors are used in car parking sensors and robots for proximity detection. A sample ultrasonic sensor is present in figure {{ref>ultrasonic1}} and a circuit in figure {{ref>ultrasonic2}}.\\
 +Examples of IoT applications are robotic obstacle detection and room layout scanning.
 +
 +<figure ultrasonic1>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:ultrasound_c.jpg?200 | Ultrasonic proximity sensor HC-SR04}}
 +<caption>Ultrasonic proximity sensor HC-SR04</caption>
 +</figure>
 +
 +<figure ultrasonic2>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:sch_apz_shemas_ultrasound_proximity.png?200 | Arduino and ultrasound proximity sensor circuit}}
 +<caption>Arduino and ultrasound proximity sensor circuit</caption>
 +</figure>
 +
 +An example code:
 +<code c>
 +int trigPin = 2;  //Define a trigger pin D2
 +int echoPin = 4;  //Define an echo pin D4
 +
 +void setup()
 +{
 +    Serial.begin(9600); //Begin serial communication
 +    pinMode(trigPin, OUTPUT); //Set the trigPin as an Output
 +    pinMode(echoPin, INPUT); //Set the echoPin as an Input
 +}
 +
 +void loop()
 +{
 +    digitalWrite(trigPin, LOW);  //Clear the trigPin
 +    delayMicroseconds(2);
 +    
 +    //Set the trigPin on HIGH state for 10 μs
 +    digitalWrite(trigPin, HIGH);
 +    delayMicroseconds(10);
 +    digitalWrite(trigPin, LOW);
 +    
 +    //Read the echoPin, return the sound wave travel time in microseconds
 +    duration = pulseIn(echoPin, HIGH); 
 +    //Calculating the distance 
 +    distance = duration*0.034/2; 
 +    
 +    //Printing the distance on the Serial Monitor
 +    Serial.print("Distance: ");  
 +    Serial.println(distance);
 +}
 +</code>
 +
 +== Motion Detector ==
 +The motion detector is a sensor that detects moving objects, primarily people. Motion detectors use different technologies, like passive infrared sensors, microwaves and the Doppler effect, video cameras, and ultrasonic and IR sensors. Passive IR (PIR) sensors are the simplest motion detectors that sense people by detecting changes in IR radiation emitted through the skin. When the motion is detected, the output of a motion sensor is a digital //HIGH/////LOW// signal.\\
 +Motion sensors are used in security alarm systems, automated lights and door control. As an example in IoT, the PIR motion sensor can detect motion in security systems in a house or any building.\\Sample PIR sensor is present in {{ref>motion1}} and connection schematic in figure {{ref>motion2}}.
 +
 +<figure motion1>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:movemtn_sensor_c.jpg?200 | PIR motion sensor}}
 +<caption>PIR motion sensor</caption>
 +</figure>
 +
 +<figure motion2>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:sch_apz_shemas_pir_motion_detector.png?230 | Arduino and PIR motion sensor circuit}}
 +<caption>Arduino and PIR motion sensor circuit</caption>
 +</figure>
 +
 +An example code:
 +<code c>
 +
 +//Passive Infrared (PIR) sensor output is connected to the digital 2 pin
 +int pirPin = 2; 
 +//The digital reading from the PIR output
 +int pirReading;      
 + 
 +void setup(void) {
 +  //Begin serial communication
 +  Serial.begin(9600);   
 +  //Initialize the PIR digital pin as an input
 +  pinMode(pirPin, INPUT); 
 +}
 + 
 +void loop(void) {
 +  //Read the digital value of the PIR motion sensor
 +  pirReading = digitalRead(pirPin); 
 +  //Print out
 +  Serial.print("Digital reading = "); 
 +  Serial.println(pirReading);
 +
 +  if(pirReading == HIGH) {  //Motion was detected
 +    Serial.println("Motion Detected");
 +  }
 +
 +  delay(10);
 +}
 +</code>
 +
 +== Fluid Level Sensor ==
 +A level sensor detects the level of fluid or fluidised solid. Level sensors can be divided into two groups:
 +  * **continuous level sensors** that can detect the exact position of the fluid. Proximity sensors, like ultrasonic or infrared, are usually used for level detection. Capacitive sensors can also be used by recording the changing capacitance value depending on the fluid level. The output can be either analogue or digital value; 
 +  * **point-level sensors** can detect whether a fluid is above or below the sensor. A membrane with air pressure or changes in conductivity or capacitance can be used for level detection as a floating or mechanical switch. The output is usually a digital value that indicates //HIGH// or //LOW// value.\\
 +Fluid level sensors can be used for smart waste management, measuring tank levels, diesel fuel gauging, liquid assets inventory, chemical manufacturing, high or low-level alarms, and irrigation control.\\
 +Sample level sensor is present in figure {{ref>levelsensor1}} and connection schematic in figure {{ref>levelsensor2}}.
 +
 +<figure levelsensor1>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:level_sensor_c.jpg?100 | Liquid level sensor}}
 +<caption>Liquid level sensor</caption>
 +</figure>
 +
 +<figure levelsensor2>
 +{{ :en:iot-open:getting_familiar_with_your_hardware_rtu_itmo_sut:arduino_and_arduino_101_intel_curie:levle_sen_sch_hd.jpg?300 | Arduino Uno and liquid level sensor schematics}}
 +<caption>Arduino Uno and liquid level sensor schematics</caption>
 +</figure>
 +
 +An example code:
 +<code c>
 +int levelPin = 6; //Liquid level sensor output is connected to the digital 6 pin
 +int levelReading; //Stores level sensor detection reading
 + 
 +void setup(void) {
 +  Serial.begin(9600);   //Begin serial communication
 +  pinMode(levelPin, INPUT); //Initialize the level sensor pin as an input
 +}
 + 
 +void loop(void) {
 +  levelReading = digitalRead(levelPin); //Read the digital value of the level sensor
 +  Serial.print("Level sensor value: "); //Print out
 +  Serial.println(levelReading);
 +  delay(10); //Short delay
 +}
 +</code>
  
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0