Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Материалът е на Крис Крокър-Уайт (Chris Crocker-White), известен компютърен специалист и според неговите думи, хардуерен хакер

10
3149

Мислили сте да си направите сами вкъщи малко и точно устройство за денонощен мониторинг на качеството на въздуха? Нашият проект, който ние нарекохме balenaSense е неголям прибор, който може да измерва температурата, влажността, атмосферното налягане и разбира се, качеството на въздуха. Устройството може да бъде управлявано чрез интернет връзка, както и дистанционно да се отчитат показанията, да се прегледа и изтегли статистиката на събитията, да се проследят тенденциите.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Въведение

За измерването качеството на въздуха метеорологичните станции използват техника с много проводници и най-различни сензори. Но последно време на пазара се появиха специализирани сензори, които извършват всички измервания с помощта на малка платка, която е много удобна за използване.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Тук ще се спрем на мониторинг на температурата, влажността, атмосферното налягане и качеството на въздуха с помощта на един от новите сензори, който включва всичко в едно и се съединява директно с миникомпютъра Raspberry Pi, като не са необходими никакви други компоненти. Не е необходим никакъв опит в областта на електрониката. Добре ще е, ако умеете да използвате поялник, но и без поялник може – ще има малка разлика в цената на устройството. Проектът включва и изграждането на база данни за записване и съхраняване на всички показания, статистиките на които могат да бъдат разгледани с помощта на удобен графичен интерфейс, който позволява проследяването на тенденциите.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Необходимите компоненти

Ето какво трябва да се купи за този проект. В зависимост от това, дали ще използвате поялник или не, избираме сензорната платка. Единият вид сензорни платки просто се поставят и започват да работят. Другият вид изискват съвсем малко запояване.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Не искам да запоявам
Аз искам да запоявам

Ако нямате нищо против да вземете в ръце поялник, то ще ви трябват:

Други сензори

Ако вече имате някакъв подобен сензор, проектът поддържа Sense HAT с допълнителен бонус: емотикон на светодиодната матрица, който е различен за различното качество на въздуха.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Bosch BME680 заедно с платката преходник може да бъде поръчана от различни доставчици, които я продават при различна цена:

Забележка: тук използваме Pimoroni. Тази платка има това преимущество, че изводите на нейния конектор са съвместими с Raspberry Pi GPIO. При използването на други платки е необходимо да се провери, дали изводите за захранването и I2C (SDA и SCL) шината съвпадат.

Софтуерът

Проектът е качен в GitHub под името balena-sense и включва всичкия необходим софтуер, конфигурация и код, необходими за работата на системата. Възнамеряваме да продължим развитието на проекта в безплатния акаунт balenaCloud. Идеята е да предложим нов софтуер за Raspberry Pi, както и да осигурим отдалечен достъп. Ето защо ще ви трябват:

Сглобяването

От хардуерна гледна точка работата е малко. Трябва само малката платка със сензора да бъде съединена с GPIO контактите на Raspberry Pi.

Сензорът BME680 взаимодейства с Raspberry Pi с помощта на I2C (eye-squared-see) шината – последователна комуникация с помощта на две линии. Това са линията за синхронизация (SCK) и линията за обмен на данни (SDA). Допълнително на сензора трябва да се подаде напрежение (3,3V или 3V3), необходимо е съединяването на общия проводник (GND). Ако е избран вариантът без запояване на Pimoroni или Sparkfun или използвате Sense HAT, достатъчно е просто да включите новите компоненти към Raspberry Pi и всички съединения са готови – можете да пристъпите към следващата стъпка.

А ако сте решили да включите сензора към Raspberry Pi с помощта на Pimoroni или с друга съгласуваща платка, най-главното е правилното съединяване на изводите – (SDA, SCK, 3V3 и GND).

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Полезен сайт за работата с GPIO изводите на Raspberry Pi е pinout.xyz. Там съвсем ясно се казва, че са необходими изводите 1 (3V3 захранване), 3 (SDA), 5 (SCL) и 9 (GND). A 40-пиновият GPIO конектор е стандартен за миникомпютрите Pi 2 и по-късните версии. Ако използвате Pimoroni платката, всичко вече е направено. Обърнете внимание накъде трябва да бъдат обърнати надписите на платката със сензора.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Само че ако включим сензора по този начин, на неговите показания ще оказва влияние топлината на процесора на Raspberry Pi. За да си осигурим по-точно измерване е необходимо сензорът да бъде изнесен извън миникомпютъра. Това става съвсем лесно с помощта на кабелите DuPont или Jumper Jerky:

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Аналогично, ако използвате някакъв друг сензор, изводите на който не съвпадат с пиновете на Raspberry Pi, този метод е идеален. Главното е да бъде осугурено съответствието на 3V3, SDA, SCL и GND. Ако на платката със сензора има изводи SDI, SDO, CS – игнорираме ги. Те са необходими за алтернативния интерфейс SPI, който в този проект не се използва.

На показаните по-горе снимки се вижда Raspberry Pi 3A+, но всичко работи по съвсем същия начин и с Pi Zero, който е едно по-евтино решение.

Настройване на Raspberry Pi

Трябва да запишем на SD картата операционната система balenaOS, да се свържем с електронния облак balenaCloud, да добавим в него своето устройство и да настроим проекта по такъв начин, че по-късно лесно да можем да обновим всичко.

Първоначално е необходимо да си направим акаунт в balenaCloud. Тоест – регистрация, добавяне на приложение и добавяне на устройството.

Първа стъпка: регистрация в balenaCloud

Ако имате GitHub или Google акаунт, можете да го използвате за логване в системата без да правите регистрация.

Втора стъпка: добавете приложение

Добавете приложение, като изберете правилния тип на устройството и Starter като приложение. След това напишете Create New Application. Този тип поддържа всички микро онлайн услуги и е безплатен за до десет устройства.

След това ще попаднете в панела за мониторинг на това приложение, от който можете да добавите устройството. Може да бъде дадено произволно име, което ще ни потрябва по-късно.

Трета стъпка: добавете устройството и заредете операционната система

След създаването на приложението, добавянето на устройството към него става с кликването върху зеления бутон Add Device. При добавянето на устройството укажете неговия правилен тип. Ако използвате безжична мрежа, можете да въведете своите SSID WiFI и паролата.

Забележка: в анимацията е показан Raspberry Pi 3: не забравяте да изберете вашата версия на миникомпютъра

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

При този процес се създава дисков образ за приложенията и типа на устройството, в който вече са въведени параметрите на мрежата (ако са указани).

Забележка: в началото е по-добре да се избере dev, подходящ за всякакви тестове и отстраняване на възникнали неизправности. По-подробна информация за разликите между development и production е дадена тук. Може да се използва balenaEtcher.

Четвърта стъпка: запис на SD картата и зареждане

Когато дисковият образ е изтеглен, необходимо е да се запише SD картата. Един от многото начини е да се използва balenaEtcher.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

След приключването на процеса поставете SD картата в Raspberry Pi и подайте захранващо напрежение.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Когато устройството се включва за първи път, то се съединява с програмата за мониторинг на balenaCloud, след което то трябва да се появи в в онлайн списъка. Ако се е появило, може да се продължава нататък.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Възможни проблеми. Ако устройството не се появява в този програмен прозорец в рамките на няколко минути, нещо не е наред. В документацията е дадена подробна инструкция за отстраняване на грешките и са показани различни ситуации с обяснения, защо е могло да стане така.

Разгръщане на софтуера

Когато вашият Raspberry Pi е подготвен, заредил е и е съединен към balenaCloud, всичко е готово за инсталирането на необходимото програмно осигуряване.

Инсталиране инструментите на balena CLI

BalenaCloud дава възможност по отдалечен път да се зареждат програми и данни в Raspberry Pi. За да може да стане това, вашият персонален компютър (не е Raspberry Pi), трябва да има инсталиран допълнителен софтуер. Удобното тук е, че за успешното използване на тази малка метеорологична станция не е необходимо да се въвеждат каквито и да било команди нито на самото устройство с помощта например на SSH, нито от balenaCloud панела. Всичко става дистанционно с помощта на много удобен потребителски интерфейс.

Ако на вашия компютър вече има (или можете да си настроите) npm, то това е най-бързият начин за стартиране инструментите CLI инструментите. Предлагат се двоични файлове за Windows, macOS и Linux.

Предлага се и подробна документация за CLI инструментите, в която е описано всичко.

Когато на вашия компютър е инсталиран и вече работи CLI пакетът, първата стъпка е да се влезе в balenaCloud с помощта на командата

balena login
Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi
Зареждане на проекта от GitHub

Следващата стъпка е изтеглянето на кода на този проект от GitHub. Синият бутон изтегля zip файла, а ако сте запознати с командите на GitHub, можете да използвате стандартната

git clone
Инсталиране на Raspberry Pi

Следващата стъпка е изграждането и стартирането на Docker образ, който ще се стартира на вашето устройство. Необходимо е от папката на проекта след неговото разкомпресиране, да бъде изпълнена командата

balena push <appName>

където appName е името на приложението, което зададохме още в началото – например, balena push balenaSense.

Ако всичко е направено правилно, след няколко минути информационният програмен прозорец на вашето устройство ще покаже стартираните процеси, по един за всеки програмен компонент:

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Първия път зареждането може да отнеме няколко минути в зависимост от скоростта на интернет връзката, но след това ще започнат да се зареждат само промените в Docker контейнера и всичко става много бързо.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Забележка: когато приложението се стартира за първи път, сензорът около 5 минути извършва инициализация. През това време не се регистрират никакви показания и нищо не се записва в базата данни. През това време приложението ще показва обратно броене до началото на работата и именно това ще се показва в balenaCloud панела:

Когато броенето стигне до нулата, ще излезе съобщението „Starting loop…“, след което данните ще започнат да се прочитат и записват на всеки 10 секунди.

Мониторинг

Една от най-удобните функции на balenaCloud е Public Device URL.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Активирайте тази опция и кликнете върху иконката със синята стрелка, за да получите достъп до програмата за мониторинг. Тази препратка може да бъде споделяна и използвана и в смартфона, като по този начин показанията на малката метеорологична станция могат да бъдат прегледано отвсякъде, където има интернет достъп.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Ако искате да влезете в Grafana и да опитате всички настройки, то данните на акаунта са admin с парола също admin.

Променете паролата

Ако ще давате публичен достъп до това устройство, силно се препоръчва да се промени паролата за Grafana.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Това става от иконката в долния ляв ъгъл на програмния прозорец. При следващо логаване ще бъде поискана нова парола.

Настройки

Интерфейсът на Grafana дава възможност за настройка на всеки параметър чрез кликване върху неговото име, след което се дава възможност за редактиране. Параметрите не се запомнят автоматично и след презареждане на страницата, всичко става както е било. За да бъдат запазени избраните параметри е необходимо да се кликне върху Save в горната част на програмния прозорец.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

Дадена е възможност и за настройване работата на сензорите, които могат да бъдат от различен вид. Има опция вместо цифри да се изписват букви.

Да си направим монитор на качеството на въздуха с помощта на InfluxDB, Grafana, Docker и Raspberry Pi

 


Описаната малка метеорологична станция може да се използва за измерване на температурата и влажността, както и за контрол на качеството на въздуха, но на практика всичко зависи от избрания сензор, включен към миникомпютъра.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

10 Коментара
стари
нови оценка