Osvitová jednotka
pre výrobu plošných spojov fotocestou.
BananaPi jednodoskový minipočítač
Banana Pi is an open source hardwarový projekt spoločnosti GuangDong BiPai technology co., LTD.i technology co., LTD.
Monitor radiácie s BPI-M2 Zero.
Screenshot z interpretovaných dát monitora radiacie
Záťažovy regulátor otáčok mini vŕtačky
K základnej výbave každej dielne elektrotechnika, či modelára patrí mini vŕtačka
Záťažovy regulátor otáčok mini vŕtačky
pohľad na osadenú dosku plošných spojov
Spájkovacia pec
pre spájkovanie SMD dosiek plošných spojov
RC433 pre Home Assistant
ovládanie garážvej brány z HomeAssistenta

Monitor radiácie.

Jednou zo základných environmentálnych veličín je aj radiácia. Tento pojem je veľmi široký a nezahrňuje len nebezpečné formy ionizujúcej žiarenia , ale aj nie nebezpečné formy v podobe elektromagnetického žiarenia, svetlo, rozhlasové a televízne vysielanie …   
Pre živé organizmy je nebezpečné ionizujúce žiarenie určitej intenzity, najmä vo forme α (alfa), β (beta), γ(gama) žiarenia. Oblečenie, koža, či srsť  má schopnosť blokovať účinky vysoko energetických častíc α a  β, ale nie žiarenia γ.  Účinky tohto žiarenia na organizmus sa kumulujú preto je dôležité poznať nie len okamžitú hodnotu ionizujúceho žiarenia, ale aj priebeh jeho intenzity v čase a na to slúži popisovaný projekt.
 
 

Hardware monitora.

Pôvodne som uvažoval o realizácii vlastného hardware, ale zistil som, že hotových meračov  radiácie je nepreberné množstvo. Väčšina z nich , ale dáva len aktuálnu hodnotu radiácie a interpretácia časových údajov je dostupná len na drahších zariadeniach, alebo úplne chýba, takže sa z merača stáva indikátor. Výzvou sa stal zber a  interpretácia nameraných údajov.  Ďalšie hľadanie na internete ma priviedlo k projektu , ktorý tieto funkcie realizuje pomocou RaspberryPi jedno doskového počítača (ďalej ako SBC).  https://blog.balena.io/build-a-simple-radiation-monitor-using-a-raspberry-pi-influxdb-and-grafana
Projekt som zrealizoval a odskúšal. Nepáčilo sa mi, že som odkázaný na BalenaCloud, mať tam vytvorené konto a v neposlednom rade hlavným obmedzujúcim faktorom je cena a nedostupnosť SBC Raspberry Pi. Čakacie doby sú okolo 53 týždňov  a cena sa šplhá nad 100€.  Realizácia za takúto cenu je aj pre nadšenca už otázna. Hľadal som alternatívu pre zámenu Raspberry Pi. Na trhu je veľké množstvo SBC „kompatibilných“ s Raspberry Pi. Ukázalo sa, že 100% kompatibilné nie je žiadne, o softwarovej kompatibilite ani nehovoriac. Nakoniec moja voľba padla na SBC BananaPI. Hlavným dôvodom bolo, že tento hardware je vyvíjaný a dodávaný pod licenciou „open source“ a teda sú záujemcom dostupné schémy a zdrojové kódy . Zvolil som model Banana Pi M2 Zero (ďalej ako  BPI-M2).
Jedná sa o ultra kompaktný SBC osadený, na doske plošných spojov s rozmermi 60mm x 30mm , štvorjadrovým procesorom ARM Cortex A7 allwiner H2+ s 512MB DDR3 SDRAM, integrovaným Wifi a bluetooth čipom a výstupom HDMI.   (obr. BPI-M2.jpg)  Dva mini USB porty zabezpečujú pripojenie USB periférií (klávesnica, myš , USB kľúč …) a , alebo napájania 5V . Detailnejší popis nájdete na https://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO . GPIO na 40 pinovom konektore sú dostatočne hardwarovo kompatibilné s Raspberry Pi, takže použitie modulov určených pre Raspberry Pi SBC sa stáva jednoduchším.  BPI-M2 v najrôznejších modifikáciách je bežne dostupný ako skladová položka vo viacerých obchodoch na Slovensku aj v Čechách. 
Schéma zapojenia je k dispozícii na stránkach výrobcu, alebo v mojej sekcii na stiahnutie.
 
Čo sa týka detektora radiácie, rozhodol som sa použiť už existujúci hardware. Je možné použiť ľubovoľný detektor, generujúci impulzy 5V zodpovedajúce meranej úrovni žiarenia . Zvolil som stavebnicu  detektora s trubicou M4011 dostupnú na e-shope Banggood, alebo Aliexprese, ktoré dodajú na Slovensko, alebo do Čiech už preclený tovar v rámci IOSS (https://taxation-customs.ec.europa.eu/online-sellers_en) bez problémov a opletačiek s colnými a daňovými úradmi.  Použitie polovodičového detektora je možné. Odskúšal som detektor s BPW34 publikovaný v časopise Elektor v roku 2012 (https://www.elektormagazine.com/magazine/elektor-201111/19753). Zapojenie je funkčné , ale citlivosť na elektromagnetické rušenie a denné svetlo komplikujú praktickú realizáciu sondy a tak som ďalej pokračoval s detektorom na báze Geiger–Müllerovej  trubice (https://cs.wikipedia.org/wiki/Geiger%C5%AFv-M%C3%BCller%C5%AFv_po%C4%8D%C3%ADta%C4%8D?oldid=5034352) . Zapojenie je veľmi jednoduché (obr.banana_cajoe,png ) a vychádza z povodného návrhu s Raspberry Pi . Treba na to tri vodiče ukončené dutinkami Dupont, ktoré sa nájdu v šuplíku každého kutila zaoberajúceho sa elektronikou.
 
 Okrem prepojení podľa obrázku je potrebné priviesť napájacie napätie 5V. To je možné urobiť niekoľkými spôsobmi. Možnosťou je napájanie cez micro USB port dosky BPI-M2, alebo privedením napájania na dosku detektora, alebo privedením napájacieho napätia na vývody GPIO dosky BPI-M2 . +5V na vývod číslo 2 a 0V na ľubovoľný vývod GND, napríklad vývod číslo 39. Celkový odber mikropočítača s detektorom je približne 400mA. 
 
Detektor som umiestnil do standardnej plastovej skrinky, ktorá nebráni prenikaniu radiácie, na rozdiel od kovových skriniek.
 

Software monitora.

Hlavnou výzvou sa stal obslužný software. Môj počiatočný zámer použiť program v Pythone counter.py z pôvodného projektu stroskotal na nemožnosti použiť Python  knižnicu Rpi.GPIO na Banana Pi, ktorá je určená výlučne pre Raspberry Pi s BCM chipom. Pokus použiť knižnicu Rpi.GPIO pre BPI dostupnú na https://github.com/BPI-SINOVOIP/RPi.GPIO skončil neúspechom z dôvodu nulovej údržby projektu, nemožnosti prekladu na BPI-M2 (skončil s chybou prekladača C++ ) . Pokus nájsť kompatibilnú knižnicu s Rpi.GPIO pre Python sa skončil tiež neúspechom aj z dôvodu absencie obsluhy hardwarového prerušenia v knižniciach, ktoré sa zdali vhodnými kandidátmi.  Toto ma vrátilo na začiatok a urobil som rozhodnutie napísať vlastný program counter.py pre BananaPi SBC. 
Programové súbory su tri: couter.py, nastavenia.py a config.py.  Sú dostupné k stiahnutiu v adresári src na portáli github. (https://github.com/lubomirkarlik/bananapi-radiation-monitor). Ako už napovedá ich názov, counter.py služi na počítanie impulzov z detektora. Modul nastavenia.py vykoná uvodnú inicializáciu premenných a služieb. Modul config.py obsahuje konfigurovateľné premenné programu. Program sa púšťa príkazom python3 counter.py z príkazového riadku linuxu. Nainštalovaný je debian pre ARM vývojové dosky s názvom Armbian  dostupný v najrôznejších verziách a pred pripravenom image geiger.img , ktorý si môžete stiahnuť z  tu. Tu sa spúšťajú všetky programové komponenty pri štarte vrátane counter.py a ko služba a nič nie je potrebné konfigurovať, ak nechcete.
 

Použitý software.

Všetky programové komponenty sú voľne šíriteľné, tzv. Open Source a dostupné pod licenciou GNU (https://cs.wikipedia.org/wiki/GNU_General_Public_License). Ako už bolo povedané, použil som verziu Linuxu Armbian, naištaloval som databázu InfluxDB  , vhodnú a optimalizovanú na časový zver dát a program Grafana  na vizualizáciu dát.
 

Ako to pracuje.

Dopad ionizujúcej častice na Geiger-Mulerovu trubicu spôsobí vodivosť plynu v nej a vygeneruje napäťový  impulz medzi jej elektródami. Elektronika dosky detektora tento impulz spracuje a na výstupe VIN sa objaví napäťový impulz 5V . Označenie VIN na doske detektora je trochu mätúce, pretože symbolom VIN sa obyčajne označuje nejaký napäťový vstup, ale v tomto prípade je to výstup. Tento napäťový impulz je privedený na jeden z vstupov GPIO dosky BPI-M2 a  vygeneruje prerušenie t.z.v. „interrupt“ . Obslužná rutina prerušenia , obsiahnutá v programe counter.py, započíta impulz do premennej programu. Program je v režime nečinnosti a odovzdá riadenie systému do ďalšieho prerušenia, alebo uplynutia stanoveného časového intervalu po uplynutí  ktorého nastane zápis údajov do databázy. Programové komponenty grafany zabezpečujú vizualizáciu nameraných údajov dostupnú k zobrazeniu v ľubovoľnom internetovom prehliadači.  Obslužná rutina prerušenia je veľmi krátka a v danej konfigurácii je teoretická hodnota počtu započítaných impulzov  za minútu (ďalej ako CPM – count pre minute)  vyššia ako 450000, čo zodpovedá hodnote ožiarenia ~26Sv/rok, pričom za bezpečnú hodnotu sa považuje hodnota menšia ako 3mSv/rok. 
 
Správanie programu je možné konfigurovať nastaveniami v config.py.
##
## interrupt parameters for geiger probe
##
gpiochip="/dev/gpiochip0" # gpio chip name
geiger_gpioline=6 # gpio port for imput GPIO4
geiger_measure_int=60 # measurement time interval
divider=151.3 # divider to calculate uSiviert from CPM (valid for geiger_measure_int=60
##
## parameters for geiger DB record
##
url="http://localhost:8086"
org="geiger"
bucket="geiger"
token="admin:admin
 
gpiochip  - hodnota určuje názov GPIO čipu v systéme pre danú SBC (platí pre BPI-M2)
geiger_gpioline – hodnota určuje číslo vývodu GPIO na SBC, ak použijete iný GPIO port je potrebné túto hodnotu zmeniť
geiger_measure_int – interval zápisu údajov do databázy v sekundách
geiger_measure_int – číselný koeficient určujúci vzťah medzi CPM a veľkosťou radiácie v mikroSiviertoch za hodinu μS/hod. Uvedený údaj platí pre použitú trubicu M4011 v tomto detektore. Pre iný detektor bude údaj potrebné upraviť.
url – adresa umiestnenia databázy
 
 
Databáza InfluxDB má definovaných dvoch užívateľov a je konfigurovateľná z príkazového riadku, prístupové heslo pre užívateľa admin je admin a pre užívateľa geiger je geiger. Obaja užívatelia majú plné oprávnenia k databáze.
 
Vizualizačný komponent grafana má definovaných rovnako dvoch užívateľov. Uživateľa admin s heslom admin a užívateľa viewer s heslom viewer.  Užívateľ admin má plné oprávnenia a užívateľ viewer má oprávnenia iba na čítanie a prezeranie. Prístup k zobrazeniu nameraných údajov je možný cez internetový prehliadač na adrese http://IP(BPI-M2):3000 , kde IP(BPI-M2) je aktuálne IP adresa sieťového rozhrania SBC na vašej sieti. V grafane je zadefinovaný dashboard (niečo ako prístrojová doska) s názvom The Geiger Counter.
Databázový dotaz (querry) pre zobrazenie poslednej nameranej hodnoty má tvar:
forkfrom(bucket: "geiger")
    |> range(start: -10m)
    |> filter(fn: (r) => r._measurement == "geiger" and r._field == "radiation" )
    |> yield()
 
a pre zobrazenie grafu :
from(bucket: "geiger")
    |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
    |> filter(fn: (r) => r._measurement == "geiger" and r._field == "radiation" )
    |> yield()
 
Popis syntaxe databázového dotazu presahuje rámec obsahu tohto príspevku.
 
 
Po prihlásení do grafany, najlepšie ako uživateľ viewer a výbere dashboardu The Geiger Counter (odkaz je na prvej obrazovke po prihlásení) sa vám zobrazí vizualizácia nameraných údajov (obr. grafana.jpg).   
V pravej hornej časti obrazovky sú ikony umožňujúce voliť časový interval zobrazovaných údajov, interval obnovovania obrazovky a prechod do celo obrazovkového režimu. 
Pre konfiguráciu parametrov a prístup k databáze použite príkazový riadok CLI. K tomuto účelu použite ľubovoľného SSH klienta na pripojenie cez port 22 . V Linuxe sú definovaní dvaja užívatelia. Užívateľ admin a užívateľ  pi. Obaja majú nastavené heslo na hodnotu bananapi .
 

Ako na to.

Stačí si stiahnuť geiger.img z mewnu Na stiahnutie   a napáliť na SD kartu. Na to potrebujete nejaký vhodný softvér na nahranie img na sd kartu, napríklad BalenaEtcher (https://www.balena.io/etcher), alebo Win32DiskImager , alebo niečo podobné, alebo príkaz dd v Linux CLI:
 
sudo dd if=geiger.img of=/dev/mmcblkx
 
kde mmcblkx musí byť nahradený príslušným názvom SD karty vo vašom systéme.
 
Vložte pripravenú SD kartu do BPI-M2 a zapojte napájanie, systém by sa mal spustiť. Teraz môžete nakonfigurovať geigerov počítač podľa vašich potrieb pomocou konzoly alebo cez WiFi. Ak používate konzolu, prihláste sa ako používateľ root. Ak sa rozhodnete použiť Wifi, bezdrôtový adaptér na BPI-M2 je pred konfigurovaný ako AP (prístupový bod) s BSSID geiger a heslom 12345678. stačí sa k tomuto AP pripojiť z počítača a zistiť IP adresu BPI-M2 z vášho DHCP servera. Teraz môžete použiť SSH klienta na vašom PC na prihlásenie BPI-M2 na IP adrese 10.1.1.1. Po prihlásení sú potrebné ďalšie kroky. Po prvé:
 
Z bezpečnostných dôvodov dôrazne odporúčam zmeniť heslá po prvom prihlásení.
 
Pomocou utility armbian-config zmeňte svoj bezdrôtový režim na klient a pripojte BPI-M2 k vašej existujúcej bezdrôtovej sieti ako klienta, alebo zmeňte sieťové heslo v súbore /etc/hostapd/hostapd.conf. Ak zmeníte bezdrôtový režim na klient, nezabudnite zastaviť a zakázať službu DHCP servera. Urobíte to pomocou príkazov.
 
systemctl zakázať isc-dhcp-server.service
systemctl stop isc-dhcp-server.service
 
Teraz je systém pripravený zbierať data o radiácii vo vašej lokalite každú minútu a zapisovať hodnoty do databázy InfluxDB ako časové rady. Preddefinovaná databáza je geiger. Ako už bolo povedané ,kreslenie grafov a vizualizačné merania zabezpečuje Grafana. Stačí spustiť internet v akomkoľvek prehliadači, napr. v mobilnom telefóne a pripojte sa k:
http://IP(BPI-M2):3000 
zobrazí sa prihlasovacia obrazovka a systém je pripravený k zberu dát.
 

Záver.

Po úprave dotazov, či definovaní nových dashboards v grafane a úprave programu counter.py je možné zberať údaje viacerých fyzikálnych veličín súbežne a prehľadne a názorne ich zobrazovať. Tento príspevok nie je stavebným návodom, ako takým, ale má za cieľ ukázať možnosť využitia vysokovýkonných a ľahko dostupných SBC v spolupráci s voľne dostupnými softwarovými komponentami. Verím, že bude inšpiráciou mnohým čitateľom.
 
 
Užitočné odkazy:

Related Articles

Copyright © Free Joomla! 4 templates / Design by Galusso Themes