Pojďme programovat elektroniku | Raspberry Pi | Kouření

Programování elektroniky: Stavíme detektor otravných kuřáků

  • Také vás obtěžují sousedé s cigaretou na balkoně?
  • Dnes začneme stavět jejich detektor
  • Nejprve si vyzkoušíme prachové laserové čidlo SDS011

V několika následujících pokračováních našeho seriálu o programování elektroniky si vyzkoušíme metody, pomocí kterých bychom mohli s trochou štěstí detekovat obtěžujícího kuřáka třeba na některém z okolních balkonů bytového domu.

Možná to také znáte. Je parné léto a vy chcete vyvětrat. Jakmile ale dokořán otevřete okno, průvan napříč budovou vtáhne do bytu agresivní cigaretový kouř ze sousedství. Sám s tím bojuji už roky a otravných kuřáků mě nakonec zbavil až covid a přetrvávající ztráta čichu.

Asi se ale shodneme, že virová infekce a dočasná ztráta klíčového smyslu je v boji s kuřáky docela agresivní řešení a vhodnější by bylo něco bezpečnějšího. A jelikož právě teď čtete seriál o programování elektroniky, asi by to měl být nějaký elektronický detektor.

Dnes se podíváme na první z nich, přičemž definitivní detektor bude komplexem hned několika optických a chemických čidel.

SDS011

Jedním z těch potenciálně nejpokročilejších, a přitom cenově stále relativně dostupných je malá krabička SDS011 (datasheet) od čínského výrobce Shandong Nova Fitness, kterou založili inženýři z tamní univerzity.

Na asijských i českých e-shopech ji často najdete i pod názvem Nova PM Sensor, no a jak už tento rozšířený název napovídá, jedná se o detektor prachových částic kategorie PM2,5 a PM10. Tedy drobky s velikostí okolo 2,5 μm, respektive 10 μm.

Klepněte pro větší obrázek
Prachový senzor SDS011 s USB/UART převodníkem pro snadné připojení k PC. My použijeme jako řídící počítač Raspberry Pi

Čidlo počítá jejich koncentraci v rozsahu 0,0 až 999,9 μg/m3, respektive 0,0 až 1 999,9 μg/ma změřené údaje vyjadřuje na adekvátních pinech buď délkou periodického obdélníkového pulzu (2 až 1001 ms odpovídá 0,0 až 999,9 μg/m3), anebo skrze 9600 b/s sériovou linku UART.

Rozptyl světla

Čidlo k měření koncentrace používá princip rozptylu světla – v tomto případě laserového paprsku uvnitř temné komory. Optický detektor pak měří změnu charakteru světla po průchodu prachovými částicemi. Aby mohl být detektor co nejrychlejší, obsahuje také malý ventilátor, který do komory neustále vhání čerstvý vzduch.

Metodu lze ovšem spolehlivě použít jen při relativní vlhkosti nasávaného vzduchu do 70 %. Při vyšší vlhkosti už totiž může na prachových částicích kondenzovat voda, zvětší se jejich objem a detektor nebude schopen podávat spolehlivé výsledky.

Klepněte pro větší obrázek
Prachové čidlo s nasávací trubičkou ve venkovní krabici s Raspberry Pi 4 a výkonným napájením PoE. Raspberry Pi poslouží skrze USB/UART převodník jako zdroj energie a počítač, který bude číst zprávy s koncentrací

Při použití venku tedy hrozí chybné údaje třeba za deště, kdy relativní vlhkost vzduchu stoupá ke 100 %. I z tohoto důvodu jsem detektor umístil do plastové schránky, ve které u mě na balkoně operuje i Raspberry Pi 4 napájené skrze PoE. Uvnitř schránky je díky jeho odpadnímu teplu i při teplotách pod nulou relativně vysoká teplota a nižší vlhkost.

Kuřákův prach

SDS011 sice primárně slouží k detekci ambientní přírodní a antropogenní prašnosti, prachové částice ale tvoří i kouř z cigarety. A pokud budeme pracovat s předpokladem, že čím silnější zápach, tím i vyšší koncentrace kouře a tedy i drobných částic, měřící jednotka by mohla zápach skutečně detekovat.

Ve výchozím stavu čip SDS011 měří automaticky s frekvencí 1 Hz. To znamená, že se ventilátor po připojení zdroje napájení roztočí a začne blikat laserová LED. Pokud nyní začneme v nekonečné smyčce číst hodnoty ze sériové linky, můžeme se prakticky okamžitě dozvědět, že se něco děje.

Klepněte pro větší obrázek
Teplo z PoE měniče, Raspberry Pi a ADSB přijímače se postará o to a díky ventilátoru prachového čidla neustálé proudění vzduchu se postarají o to, aby se v krabici držela vlhkost na bezpečné úrovni

Má to ale jednu nevýhodu. Výrobce odhaduje trvanlivost LED zhruba na 8 000 hodin aktivního svitu, což není ani jeden celý rok. LED ale jen krátce blikne, praktická trvanlivost optického zdroje proto bude mnohem vyšší.

Horší je to už se zanášením komory. Pokud bude čidlo vystavené trvale silně prašnému prostředí, po roce a bez důkladné očisty taktéž může vracet velmi shlazené hodnoty. Bohužel, toto není teploměr ale doslova prachový čítač, takže až jeho reálným používáním a sledováním, co vlastně zaznamenává a subjektivním porovnáváním s realitou zjistíte, jestli podává vůbec nějaké smysluplné výsledky.

Raspberry Pi, sériová linka a C

Jelikož krabička kvůli laserové LED a ventilátoru potřebuje solidní 5V napájení (až 1 W), k zapojení použiji zmíněné Raspberry Pi 4 a jeden z volných konektorů USB. SDS011 je totiž dodávané v balení včetně USB/UART převodníku, který nám zároveň bezpečně převede 3V logiku sériové linky na 5V a zpět.

Klepněte pro větší obrázek
Linuxový Raspberry Pi OS korektně detekoval USB/UART převodník sériové linky, který je dostupný na cestě /dev/ttyUSB0

Na Raspberry Pi mi běží standardní linuxový operační systém Raspberry Pi OS, a tak si to dnes celé naprogramujeme v jazyku C.

Zdrojové kódy najdete také na GitHubu našeho seriálu

Náš textový program bude mít několik parametrů. Tím prvním bude USB zařízení, se kterým se má program spojit, no a tím druhým počet měření, které má program zachytit, než skončí. Zároveň bude umět přepnout modul do režimu spánku s vypnutou laserovou LED a ventilátorem a zase jej probudit.

Aplikační rozhraní sériové linky senzoru toho umí ještě více. Třeba změnit frekvenci automatického měření, anebo jej zcela vypnout s tím, že se budeme požadavky na změření zasílat ručně. My se ale pro jednoduchost dnešního příkladu spokojíme s výchozím stavem. V každém případě, v závěru článku najdete vložené PDF s popisem kontrolního protokolu.

Deset bajtů

Když bychom se pomocí libovolného terminálu sériové linky spojili s čidlem, ve výchozím stavu by měl každou sekundu dorazit sled deseti bajtů v tomto formátu:

AA C0 71 00 85 00 2E 81 A5 AB

  • AA: úvodní hlavička
  • C0: úvodní hlavička
  • 71: spodní bajt koncentrace PM2,5
  • 00: horní bajt koncentrace PM2,5
  • 85: spodní bajt koncentrace PM10
  • 00: horní bajt koncentrace PM10
  • 2E: první bajt ID čidla
  • 81: druhý bajt ID čidla
  • A5: 8bitový kontrolní součet bajtů 71, 00, 85, 00, 2E, 81
  • AB: závěrečná patička

Jakmile tuto zprávu přečteme, spojíme spodní a horní bajt obou koncentrací do 16bitových čísel 0077 a 0085, která podělíme 10 a konečně vypočítáme koncentraci v μg/m3.Pokud bychom měli oněch 10 bajtů výše uloženo v poli zprava, pak by přepočet mohl vypadat v jazyku C třeba takto:

uint8_t zprava[10] = {0xAA, 0xC0, 0x71, 0x00, 0x85, 0x00, 0x2E, 0x81, 0xA5, 0xAB};
uint16_t _pm25 = (zprava[3] * 256) + zprava[2];
uint16_t _pm10 = (zprava[5] * 256) + zprava[4];

float pm25 = (float)_pm25 / 10.0f
float pm10 = (float)_pm10 / 10.0f

Tento článek je součástí balíčku PREMIUM+

Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.

Vyzkoušet za 1 Kč Nebo samostatné Živě Premium
Váš názor Další článek: Zuckerberg věří, že ve VR budeme pracovat i bavit se. Brýle Meta Quest Pro stojí balík

Témata článku: Zdraví, Linux, Programování, Pojďme programovat elektroniku, Raspberry Pi, C++, Kouření, ČPP, CFM, Pro, PCR test, Průvan, Vlhkost vzduchu, Čich



Bude to o prsa. Facebook a Instagram pořád neví, kdy jsou zobrazené bradavky porno

Bude to o prsa. Facebook a Instagram pořád neví, kdy jsou zobrazené bradavky porno

**Meta má zjednodušit pravidla a být ke všem spravedlivá **Facebook s Instagram věnují samostatný odstavec bradavkám **Pravidla ale neřeší nebinární, transsexuální a intersexuální osoby

Petr Urban
InstagramFacebookSociální sítě
Za WhatsApp se bude platit! Za předplatné dostanete funkci, která je u konkurence zadarmo

Za WhatsApp se bude platit! Za předplatné dostanete funkci, která je u konkurence zadarmo

** Bylo to jen otázkou času ** Už i WhatsApp nabízí prémiové předplatné ** Za poplatek dostanete funkci, která je u konkurence zadarmo

Martin Chroust
předplatnéWhatsAppMobilní aplikace
Telefon jako kapesní skener v klubech. Vědci přišli se snadnou metodou pro detekci drog v nápojích

Telefon jako kapesní skener v klubech. Vědci přišli se snadnou metodou pro detekci drog v nápojích

** Drogy nasypané do nápojů jsou stále velkým problémem ** Jejich odhalení a dokázání je časově i technicky velmi náročné ** K detekci GHB v nápoji nově poslouží jakýkoliv smartphone

Martin Chroust
StudieDrogySmartphony
Facebook má nejspíš vaše telefonní číslo, i když jste mu ho nikdy nedali. Tímto tajným nástrojem ho můžete smazat

Facebook má nejspíš vaše telefonní číslo, i když jste mu ho nikdy nedali. Tímto tajným nástrojem ho můžete smazat

**Meta poskytuje nástroj na vymazání telefonních čísel a e-mailových adres z Facebooku a Instagramu **V minulosti Mark Zuckebrg popřel, že by Facebook vytvářel stínové profily **Metě teď můžete sebrat klíčové iddentifikátory, pořád o vás ale nejspíš ví mnoho dalšího

Petr Urban
MetaSledováníSociální sítě
Jak rozmazat dům, aby vás sousedi nemohli šmírovat. Jde to v Mapách Google i na Mapy.cz

Jak rozmazat dům, aby vás sousedi nemohli šmírovat. Jde to v Mapách Google i na Mapy.cz

** Nelibí se vám, když cizí lidé okukují váš dům? ** Všechny mapové aplikace nabízejí možnost rozmazání snímku ** Máme návod pro Apple Maps, Bing Maps, Mapy Google a Mapy.cz

Karel Kilián
SoukromíNávodyMapy
Androidy dostanou dárek pod stromeček. Nejzajímavěji vypadá nová aplikace, která zpřehlední čtení textů

Androidy dostanou dárek pod stromeček. Nejzajímavěji vypadá nová aplikace, která zpřehlední čtení textů

** Androidy dostanou „dárek“ pod stromeček ** Google si připravil drobné aktualizace svých aplikací ** A také jednu novou - užitečný Režim čtení, který umí předčítat nahlas

Martin Chroust
UpdateMobilní aplikace
Návod, jak dostat maximum z Peněženky Google

Návod, jak dostat maximum z Peněženky Google

Služba Google Wallet (Peněženka Google) schlamstla před několika měsíci platební aplikaci Google Pay. Díky tomu se původní platforma rozrostla o další funkce. Je zde však i prostor pro zlepšení.

Jan Spěšný
Máte rádi malé telefony? Pak si oblíbíte tohoto třípalcového drobečka, který není větší než platební karta

Máte rádi malé telefony? Pak si oblíbíte tohoto třípalcového drobečka, který není větší než platební karta

** Dnešní telefony se předhánějí v tom, který z nich bude větší ** Malé telefony na trhu skoro vyhynuly... ** Čínská značka si připravila telefon do dlaně s třípalcovým displejem

Martin Chroust
InfraportKompaktní velikostSmartphony