Збереження в Інтернеті значення температури за допомогою Raspberry Pi
User Rating: / 9
PoorBest 
There are no translations available.

Temperature LoggerЄ безліч прикладів систем термометрії, але автор створив свою власну і зберігає дані просто і красиво. Також, він спробував протоколювати дані в Інтернеті за допомогою сервісу сторонніх розробників, що зручно для Інтернету речей.
Сподіваємося, що ця спроба побудувати пристрій "Інтернету речей" для вимірювання температури допоможе іншим стартувати або стане основою для проекту.
Апаратне забезпечення
Temperature Logger_1
Пристрій складається з:
• Raspberry Pi Model A+ (Pi)
• Базового корпусу
• Модуля датчика BMP180
• USB-модуль Wi-Fi
• Світлодіоду та резистора 330 Ом
• Невеликого вимикача
• 4-контактного з'єднувального кабелю «розетка-розетка»
• Двох 2-х контактних роз’ємів
Датчик
BMP180 sensor
Вибраний датчик BMP180, як один з найдоступніших, що використовувався в статті BMP180 I2C Digital Barometric Pressure Sensor. Цей датчик маленький, дешевий і визначає температуру та тиск. Він спілкується з Pi через інтерфейс I2C, тому вимагає мінімум проводів.
Світлодіод (необов'язково)
Щоб додати деякої візуалізації використаний один зелений світлодіод. Анод (позитивний вивід) підключений до контакту 11 (GPIO17) і катод (негативний вивід) підключений до контакту 9 через резистор 330 Ом. Автор вибрав ці два контакти, тому що вони знаходяться поруч один з одним і дозволяють використати 2-контактний роз’єм і підключити світлодіод безпосередньо до роз’єму GPIO Pi.
Wi-Fi модуль
Edimax EW-7811UN
Для використаної моделі A+ потрібен Wi-Fi модуль, щоб дозволити Pi спілкуватися з Інтернетом. Автор використав USB-модуль Edimax EW-7811UN. Вам знадобиться налаштувати Wi-Fi, щоб успішно підключитися до своєї мережі. Ви можете використати посібник для налаштування Wi-Fi на Raspberry Pi. Також відключіть режими енергозбереження, використовуючи дане керівництво.
Вимикач
Вимикач потрібний для того, щоб сказати сценарію про вихід та/або виключення Pi. Він під’єднаний до контакту 15 (GPIO22) та контакту 17 (3V3), використовуючи інший 2-х контактний роз'єм. За замовчуванням, сценарій дозволяє внутрішній підтягуючий резистор під’єднати до контакту 15 таким чином, що на GPIO22 буде низький рівень сигналу (LOW). При натисканні перемикача він підключатиметься до 3,3 В і матиме високий рівень (HIGH). Сценарій контролює перемикач і визначає, чи натиснута кнопка. Встановивши прапор AUTO_SHUTDOWN в 1, можна також вимкнути Pi, якщо потрібно.
Під’єднання компонентів
Схема підключення датчика температури, світлодіоду і вимикача:
Temperature Logger_2
Таблиця з'єднань:
Temperature Logger_Table
Thingspeak та Інтернет речей
Для стороннього сервісу автор переглянув кілька варіантів. Ряд з них виключені, тому що:
• Не вдалося отримати безкоштовне тестування
• Не вдалося визначити, яка різниця між безкоштовним тестуванням і платними опціями
• Не вдалося зрозуміти, як представляти дані
• При безкоштовній опції дані зберігаються лише протягом декількох днів
Автор зупинився на Thingspeak.com просто тому, що за один клік на їх домашній сторінці вже точно знав, що повинен зробити, щоб представити дані. Панель налаштування проста і не потребувала ніякого додаткового читання довідника. Налаштування датчиків вимагало трохи більше читання, але графіки досить прості.
Перший сценарій автора запрацював протягом п'яти хвилин після незначного різання і склеювання. Є безліч інших сервісів, але для даного проекту Thingspeak підходить ідеально. Звичайно, для більш складних систем з великою кількістю даних, ви можете заплатити за більш багатофункціональні сервіси.
Щоб використовувати приклад сценарію автора, вам треба налаштувати обліковий запис Thingspeak, створити новий канал і отримати "Write API Key" з налаштувань API. Дивіться офіційну документацію для допомоги.
Сценарій на Python
Основний сценарій читає температуру і тиск та направляє їх в Thingspeak, використовуючи "Field 1" і "Field 2". Сценарій базується на додатковому файлі для використання датчика BMP180. Обидва сценарії є обов'язковими і повинні бути збережені в одному й тому ж місці:
Ви можете завантажити ці файли безпосередньо в підключений до Інтернету Pi або натиснути правою кнопкою миші на вищевказаному у веб-браузері, або запустити ці посилання в командному рядку:
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/templogger.py
Сценарій може бути виконаний в командному рядку за допомогою:
sudo python templogger.py
Текст сценарію оновлює текст на екрані. При запуску за допомогою SSH через Wi-Fi автор хотів мати сценарій для продовження роботи після того як він відключався, тому використав таку команду замість наведеної вище:
sudo python templogger.py > /dev/null &
У цій команді статуси виходів спрямовані на "null" (тобто ігноруються), а & страхує запуск сценарію у фоновому режимі.
Автоматичний запуск при завантаженні
Для того, щоб уникнути запуску сценарію вручну, ви можете налаштувати його для запуску, коли Pi вмикається. Ви можете зробити це, відредагувавши файл rc.local:
sudo nano /etc/init.d/rc.local
а потім додати наступний рядок в кінець файлу:
sudo python /home/pi/templogger.py > /home/pi/templogger.log 2>&1
Ви можете зберегти і вийти з редактором nano за допомогою [Ctrl-X], [Y], а потім [ENTER].
При запуску даний рядок запускає сценарій Python і направляє виведення в файл журналу. Це корисний файл для читання, якщо ви шукаєте неполадки. Значення в журналі розділяються комами, так що їх можна завантажити в додаток електронної таблиці, якщо забажаєте аналізувати дані.
Натискання вимикача в будь-який час призведе до зупинки сценарію. Якщо AUTO_SHUTDOWN встановлений в 1, то це викликає відключення Pi. Через 20 секунд живлення можна відключити.
Конфігурація
Сценарій має кілька значень, які вам потрібно налаштувати. Найбільш важливим з них є ключ API Thingspeak. Ви повинні ввести свій власний ключ, щоб оновити канал. Ви можете або відредагувати сценарій Python прямо:
nano templogger.py
або встановити набір нових значень у файлі конфігурації на завантажувальний розділ. Якщо файл з ім'ям "/boot/templogger.cfg" існує і перший рядок є значення "Temp Logger", які слідують, використовуються замість цього. Ось приклад файлу конфігурації:
Temp Logger
0x77
1
17
22
10
1
ABCDEFG123456789
https://api.thingspeak.com/update
Ви можете створити файл конфігурації за допомогою:
sudo nano /boot/templogger.cfg
Потім створити зміст, який в наведеному вище прикладі.
Якщо файл існує в розділі /boot, то можете редагувати файл конфігурації на ПК перед включенням пристрою. Це іноді корисно, якщо хочете змінити інтервал між показаннями.
Сценарій не перевіряє наявність помилок у файлі. Переконайтеся, що всі значення вказані в правильному порядку. Очікується, що вони в тому ж порядку, як вони перераховані в оригінальному сценарії Python.
Остаточні результати
Після того, як пристрій включений і працює, і ви налаштували свій Thingspeak Channel, то можете отримати на виході, як ці графіки:
Temperature Loggin_Graph
Графіки оновлюються в реальному часі при надходженні нових даних. Канал також дозволяє вам завантажити дані в CSV, XML і JSON форматах.
З інтервалом в 10 хвилин ви можете мати 144 точок даних кожні 24 години. Можете встановити графіки для відображення заданої кількості точок, тобто налаштувати необхідний вам потік даних.
Автор використав тільки два потоки даних в своєму прикладі (температуру і тиск), але Thingspeak дозволяє в цілому вісім потоків.
(Джерело EN: raspberrypi-spy.co.uk)
 
>
BookNewsPractice SearchPartnersAbout
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting