Датчики "Ардуїнов": опис, характеристики, підключення, відгуки
Де купити
Справа в тому, що датчики в наших магазинах коштують чималих грошей. І якщо ви збираєтеся почати вивчення платформи «Ардуїнов», то вам просто необхідно знати, де ж можна купити їх за низькою ціною. Відповідь проста – китайські магазини. Це може бути Aliexpress, Joom, Pandao та інші. Практично всі магазини купують датчики саме там і продають їх з величезною націнкою, що сягає до 300 %. Звичайно, доведеться чекати деякий час, так і в якості товару ви не можете бути впевнені, але платити за той же датчик в три рази більше теж не варто. Приклад: на Aliexpress є набір з 36 датчиків, який коштує 800 рублів. Такий же набір в російському магазині продають за 35 тис. рублів. Тому вирішувати вам.Сервопривід
Сервопривід використовується при конструюванні роботів і різних розумних систем. З допомогою сервоприводу можна відкривати двері, дізнаватися градус повороту і багато іншого. Але в основному його використовують при створенні роботів. Максимальний кут повороту сервомашинки: 180 градусів. Але іноді на теренах Aliexpress можна побачити і варіанти з кутом повороту 360 градусів. Це досить-таки базовий елемент, практично всі уроки на Arduino з датчиками починаються з нього. Сервопривід легко підключається, програмний код для управління дуже простий. Для підключення сервоприводу використовується всього три дроти: земля, харчування, логіка. Сигнальний провід (зазвичай жовтий або коричневий) підключаємо до будь-якого контакту з підтримкою ШІМ (широко-імпульсна модуляція) на Arduino.Приклад коду:
#include //підключаємо бібліотеки для роботи з сервоприводом
Servo servo1; //оголошуємо змінну servo типу "servo1"
void setup() //процедура setup
{
servo1.attach(11); //прив'язуємо сервопривід до аналогового виходу 11
}
void loop() //процедура loop
{
servo1.write(0); //ставимо кут повороту під 0
delay(2000); //чекаємо 2 секунди
servo1.write(90); //ставимо кут повороту під 90
delay(2000); //чекаємо 2 секунди
servo1.write(180); //ставимо кут повороту під 180
delay(2000); //чекаємо 2 секунди
}
Спочатку в код додаємо бібліотеку, яка вже є в Arduino, далі вказуємо, до якого контакту підключений сервопривід. Як можна помітити, працювати з сервоприводом дійсно дуже просто, управління йде лише одним оператором.
Ціна на Aliexpress: 80-100 рублів.
DHT-11
DHT-11 служить для вимірювання температури і вологості. Цей датчик температури для «Ардуїнов» є найпопулярнішим з-за його ціни і можливостей. Вимірює температуру в діапазоні від 0 до 50 градусів, а вологість від 20 до 80 %. Також у продажу є інша версія цього датчика, DHT-22 діапазон вимірювань у нього більше, але і коштує він у кілька разів дорожче. Для простих проектів його використання не доцільне, тому всі віддають перевагу DHT-11 який відмінно справляється з вимірюваннями. Харчування можна подавати від 3.3 до 5V. Взагалі, сам датчик має 4 контакту підключення, але у продажу є модулі DHT-11 з ними працювати набагато зручніше, так як підключення через 3 контакту і не треба мучитися з резисторами.
<script type="text/jаvascript">
var blockSettings2 = {blockId:"R-A-271049-5",renderTo:"yandex_rtb_R-A-70350-39",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings2.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings2)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");
Підключення. Підключається цей датчик температури до «Ардуїнов» за допомогою трьох контактів: земля, харчування і логіка.
Приклад коду:
#include "DHT.h"
#define DHTPIN 2 //Той самий номер піна, про який згадувалося вище
DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); //2 секунди затримки
float h = dht.readHumidity(); //Вимірюємо вологість
float t = dht.readTemperature(); //Вимірюємо температуру
if (isnan(h) || isnan(t)) {//Перевірка. Якщо не вдається вважати свідчення, виводиться «Помилка зчитування», і програма завершує роботу
Serial.println("Помилка зчитування");
return;
}
Serial.print("Вологість: ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println ("C "); //Вивід показників на екран
}
На самому початку, як і при роботі з сервоприводом, підключається бібліотека. До речі, щодо бібліотеки. Спочатку в пакеті Arduino її немає, цю бібліотеку потрібно завантажувати. Є кілька версій цієї бібліотеки, в нашому прикладі використовується сама стандартна. Будьте уважніше при завантаженні, так як синтаксис може відрізнятися, і код не буде працювати. Далі так само пишеться, до якого контакту підключений датчик і його версію (DHT11 або DHT22). Як і при роботі з сервоприводом, працювати з цим датчиком для «Ардуїнов» дуже легко, потрібно лише кілька операторів. До речі, найчастіше сервопривід і dht11 працюють разом, наприклад, при створенні автоматичних вікон, які будуть відкриватися, якщо в кімнаті або в теплиці занадто жарко.
<script type="text/jаvascript">
var blockSettings3 = {blockId:"R-A-271049-6",renderTo:"yandex_rtb_R-A-70350-44",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings3.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings3)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");
Ціна на Aliexpress: 80-100 рублів.
Датчик вологості ґрунту
Цей датчик використовується при конструюванні автоматичного поливу. З його допомогою можна виміряти вологість ґрунту, після чого обробити ці дані і при необхідність полити рослину. У продажу є безліч варіантів цього датчика для «Ардуїнов», але популярність має модель FC-28. Досить бюджетний варіант, тому його всі люблять і використовують у своїх проектах. Датчик має два зонди, які проводять електрику через землю. При сухому грунті опір більше, а при вологій – менше. В основному цей датчик застосовується лише в маленьких проектах, пов'язано це з тим, що зонди зроблені з поганого матеріалу і рано чи пізно при активній роботі вони покриваються корозією, після чого датчик перестає працювати. Тривалість служби датчика можна збільшити, якщо активувати його тільки при знятті даних з грунту, наприклад, раз в 6 годин. Деякі умільці й зовсім змінюють зонди на більш якісні, зроблені своїми руками, а то і зовсім з нуля збирають датчик вологості для «Ардуїнов».
<script> (adsbygoogle = window.adsbygoogle ||[]).push({});
Підключається датчик вологості грунту досить просто. Зазвичай в комплекті з ним йде потенціометр і компаратор для управління чутливість датчика. Всього він має три контакти: логіка, харчування і земля. Підключатися може як цифрових, так і аналогових контактів. До речі, працювати в аналоговому режимі зручніше.
Приклад коду:
int sensor_pin = A0;
int output_value ;
void setup() {
Serial.begin(9600);
Serial.println("Читаємо дані з датчика");
delay(2000);
}
void loop() {
output_value= analogRead(sensor_pin);
output_value = map(output_value,55000100);
Serial.print("Вологість : ");
Serial.print(output_value);
Serial.println("%");
delay(1000);
}
Насамперед визначаємо контакти, до яких підключений датчик до «Ардуїнов». Після чого читаємо дані з нього і виводимо їх. Так само, як і з іншими датчиками, працювати з FC-28 досить легко. І все завдяки готовим бібліотек і датчикам.
Ціна на Aliexpress: 30-50 рублів.
БЕНКЕТ датчик
Це датчик руху для «Ардуїнов» використовується при конструюванні різних охоронних систем. Виявляє елементи, що рухаються від 0 до 7 метрів. Розглядати принцип роботи не будемо, перейдемо відразу до підключенню цього датчика до «Ардуїнов».
<script type="text/jаvascript">
var blockSettings = {blockId:"R-A-70350-45",renderTo:"yandex_rtb_R-A-70350-45",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0) blockSettings.statId = 70350;
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");
Судячи з відгуків, підключається він також за допомогою трьох контактів: логіка, харчування і земля. Працює він через цифрові виходи.
Приклад коду:
#define PIN_PIR 2
#define PIN_LED 13
void setup() {
Serial.begin(9600);
pinMode(PIN_PIR, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int pirVal = digitalRead(PIN_PIR);
Serial.println(digitalRead(PIN_PIR));
//Якщо виявили рух
if (pirVal)
{
digitalWrite(PIN_LED, HIGH);
Serial.println("Motion detected");
delay(2000);
}
else
{
//Serial.print("No motion");
digitalWrite(PIN_LED, LOW);
}
}
Визначаємо контакти, до яких підключений датчик, після чого виконуємо перевірку наявності руху. Працювати з ним дуже зручно та легко, але бувають випадки помилкового спрацьовування. Ціна на Aliexpress: 30-50 рублів.