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

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

10
2560

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

Въведение

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

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

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

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

Не искам да запоявам
Аз искам да запоявам

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

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

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


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).

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

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


Аналогично, ако използвате някакъв друг сензор, изводите на който не съвпадат с пиновете на 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: не забравяте да изберете вашата версия на миникомпютъра

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

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

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

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

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


Когато устройството се включва за първи път, то се съединява с програмата за мониторинг на balenaCloud, след което то трябва да се появи в в онлайн списъка. Ако се е появило, може да се продължава нататък.

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

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

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

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

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

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

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

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

balena login
Зареждане на проекта от GitHub

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

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

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

balena push <appName>

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

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

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

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

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

Мониторинг

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

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

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

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

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

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

Настройки

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

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

 


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

0 0 гласа
Оценете статията
Абонирай се
Извести ме за
guest
10 Коментара
стари
нови оценка
Отзиви
Всички коментари