- Необхідні матеріали
- Вступ до датчика температури DS18B20
- Передумови
- Кругова діаграма
- Встановлення РК-бібліотеки Adafruit на Raspberry P
- Увімкнення однопровідного інтерфейсу в Pi
- Вихід / Робота
Raspberry Pi відомий своєю обчислювальною потужністю та своїм широким застосуванням у сфері IoT, автоматизації будинку тощо. Однак для будь-якої електронної системи для взаємодії з реальним світом та отримання інформації про неї система повинна використовувати датчики. Для цього процесу використовується багато типів датчиків, і необхідний датчик вибирається на основі параметра, що підлягає вимірюванню, та його застосування. У цьому посібнику ми вчимося взаємодіяти датчик температури DS18B20 з Raspberry Pi.
DS18B20 широко використовується датчик температури, в основному в тих місцях, де суворі умови експлуатації беруть участь як хімічна промисловість, шахтні установки і т.д. Ця стаття розповість про датчик і як це outstands іншого датчика температури і, нарешті, інтерфейсі з Raspberry Pi і подивитися температуру значення на РК-дисплеї 16x2.
Необхідні матеріали
- DS18B20 Датчик температури
- Raspberry Pi
- 16 * 2 РК-дисплей
- 10к горщик для обрізки
- 10k Підтягніть резистор
- Макет
- Підключення проводів
Вступ до датчика температури DS18B20
DS18B20 - це три термінальні датчики температури, доступні в комплекті TO-92 (транзисторний тип). Він дуже простий у використанні і для початку роботи потрібен лише один зовнішній компонент. Крім того, для зв'язку з ним потрібен лише один штифт GPIO від MCU / MPU. Типовий датчик температури DS18B20 із назвою контактів показаний нижче.
Цей датчик також доступний у водонепроникній версії, в якій датчик покритий циліндричною металевою трубкою. У цьому підручнику ми будемо використовувати звичайний датчик транзисторного типу, який показаний вище. DS18B20 є 1-провідний програмований датчик температури означає, що вона вимагає тільки штифт даних для передачі інформації в мікроконтролер або мікропроцесор плат, таких як Raspberry Pi. Кожен датчик має унікальну для нього 64-бітну адресу, тому також можна мати кілька датчиків, підключених до одного MCU / MPU, оскільки кожен датчик може бути адресований окремо на одній шині даних. Специфікація датчика наведена нижче.
- Робоча напруга: 3-5В
- Діапазон вимірювання: від -55 ° C до + 125 ° C
- Точність: ± 0,5 ° C
- Роздільна здатність: від 9 до 12 біт
Тепер, коли ми знаємо достатньо датчика, давайте розберемо його з Raspberry Pi.
Передумови
Передбачається, що ваш Raspberry Pi вже прошитий операційною системою і може підключатися до Інтернету. Якщо ні, дотримуйтесь підручника Початок роботи з Raspberry Pi, перш ніж продовжувати. Тут ми використовуємо Rasbian Jessie, встановлену Raspberry Pi 3.
Також передбачається, що ви маєте доступ до свого pi або через вікна терміналів, або через іншу програму, за допомогою якої ви можете писати та виконувати програми на python та використовувати вікно терміналу.
Кругова діаграма
Як ми вже говорили раніше в цьому посібнику, ми з'єднаємо датчик DS18B20 з Pi і відобразимо значення температури на РК-екрані 16 * 2. Отже, сенсор і РК-дисплей слід підключити до Raspberry Pi, як показано нижче.
Дотримуйтесь принципової схеми та відповідно підключіть. І РК-дисплей, і датчик DS18B20 працюють за допомогою + 5 В, що забезпечується 5-контактним штифтом на Raspberry pi. ЖК зроблений на роботу в 4-бітному режимі з Raspberry Pi, штифти GPIO 18,23,24 і 25 використовуються для лінії передачі даних, а контакти GPIO 7 і 8 використовуються для ліній управління. Потенціометр також використовується для управління рівнем контрастності РК - дисплея. Лінія передачі даних DS18B20 підключена до виводу 4. GPIO. Також зверніть увагу, що повинен бути використаний резистор 10 К, щоб витягнути дані так високо, як показано на схемі.
Ви можете слідувати схемі схеми вище та здійснювати з'єднання, або використовувати таблицю контактів, щоб простежити за номерами контактів GPIO.
Я побудував схему на макетній панелі, використовуючи одножильні дроти та чоловічі та жіночі дроти для встановлення з'єднань. Як бачите, для взаємодії датчику потрібен лише один провід, а отже, він займає менше місця та контактів. Моє обладнання виглядає так, як показано нижче, коли всі з’єднання встановлено. Тепер настав час включити pi і почати програмування.
Встановлення РК-бібліотеки Adafruit на Raspberry P
Значення температури відображатиметься на РК-дисплеї 16 * 2. Adafruit надає нам бібліотеку для легкої роботи з цим РК-дисплеєм у 4-розрядному режимі, тому давайте додамо його до нашого Raspberry Pi, відкривши вікно терміналу Pi та виконавши наведені нижче дії.
Крок 1: Встановіть git на Raspberry Pi за допомогою рядка нижче. Git дозволяє клонувати будь-які файли проектів на Github та використовувати їх на вашому Raspberry pi. Наша бібліотека знаходиться на Github, тому ми повинні встановити git, щоб завантажити цю бібліотеку в pi.
apt-get install git
Крок 2: Наступний рядок посилається на сторінку GitHub, де присутня бібліотека, просто виконайте рядок, щоб клонувати файл проекту в домашній директорії Pi
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Крок 3: Використовуйте команду нижче, щоб змінити рядок каталогу, щоб потрапити до файлу проекту, який ми щойно завантажили. Командний рядок наведено нижче
cd Adafruit_Python_CharLCD
Крок 4: Усередині каталогу буде файл з назвою setup.py , ми повинні його встановити, встановити бібліотеку. Використовуйте наступний код для встановлення бібліотеки
sudo python setup.py встановити
Тобто це бібліотека повинна була бути успішно встановлена. Тепер аналогічно приступимо до встановлення бібліотеки DHT, яка також від Adafruit.
Увімкнення однопровідного інтерфейсу в Pi
Оскільки датчик DS18B20 взаємодіє методом One-Wire, ми повинні ввімкнути однопровідний зв'язок на Pi, виконавши наведені нижче дії.
Крок 1: - Відкрийте командний рядок і скористайтеся наведеною нижче командою, щоб відкрити файл конфігурації
sudo nano /boot/config.txt
Крок 2: - Всередині конфігураційного файлу додайте рядок “ dtoverlay = w1-gpio ” ( обведений зображенням нижче) та збережіть файл, як показано нижче
Крок 3: - Використовуйте Ctrl + X, щоб вийти з файлу та зберегти його, натиснувши “Y”, а потім клавішу Enter. Нарешті перезапустіть Pi за допомогою команди
sudo reboot
Крок 4: - Після перезавантаження знову відкрийте термінал і введіть наступні команди.
Суду Modprobe w1- GPIO суду Modprobe w1-терми. cd / sys / bus / w1 / devices ls
Вікна терміналу відображатимуть щось подібне
Крок 5: - В кінці кроку 4, коли ви вводите ls , ваш pi відобразить унікальний номер, який буде різним для кожного користувача, залежно від датчика, але завжди починатиметься з 28-. У моєму випадку номер - 28-03172337caff .
Крок 6: - Тепер ми можемо перевірити, чи працює датчик, ввівши наступні команди
cd 28-XXXXXXXXXXXX.find ('t =') #find the "t =" in the row if trimmed_data! = -1: temp_string = lines #trim the strig only to the temoerature value temp_c = float (temp_string) / 1000.0 # розділіть значення 1000, щоб отримати фактичне повернення значення temp_c # поверніть значення для друку на РК-дисплеї
Змінна рядки використовується для читання рядків усередині файлу. Потім ці рядки порівнюються, шукаючи букву “t =”, і значення після цієї букви зберігається у змінній temp_string . Нарешті, щоб отримати значення температури, ми використовуємо змінну temp_c, в якій ми ділимо значення рядка на 1000. Зрештою повертаємо змінну temp_c як результат функції.
Усередині нескінченного у час циклу, ми маємо тільки для виконання певної вище функції, щоб отримати значення температури і її відображення на РК - екрані. Ми також очищаємо РК-дисплей кожні 1 секунду, щоб відобразити оновлене значення.
while 1: # Infinite Loop lcd.clear () # Очистити РК-екран lcd .message ('Temp =%.1f C'% get_temp ()) # Відобразити значення температурного часу. сон (1) # Зачекайте 1 сек. потім оновіть значення
Вихід / Робота
Як завжди повний код python наведено в кінці сторінки, використовуйте код і скомпілюйте його на своєму Raspberry Pi. Встановіть підключення, як показано на принциповій схемі, і перед запуском програми переконайтеся, що ви виконали описані вище кроки, щоб встановити файли заголовків РК-дисплея та активувати однопровідний зв’язок на pi. Після цього просто запустіть програму, якщо все працює належним чином, ви зможете помітити вступний текст. Якщо не налаштувати потенціометр контрастності, поки щось не побачите. Кінцевий результат буде виглядати приблизно так нижче.
Сподіваюся, ви зрозуміли проект і не мали проблем з його побудовою. Якщо інше зазначте свою проблему в розділі коментарів або скористайтесь форумом для отримання додаткової технічної допомоги. Це лише проект взаємодії, але як тільки це буде зроблено, ви зможете думати заздалегідь, працюючи на метеостанції Raspberry Pi, сповіщувачі температури електронної пошти та багато іншого.
Повна робота проекту також показана у відео нижче, де ви можете бачити значення температури, що оновлюється в режимі реального часу.