33 sensors supported. Zero code required. Just plug in and breathe 33 érzékelő támogatott. Zéró kód szükséges. Csak csatlakoztassa és lélegezze be Ismered a fúrást: megkapod ezt a ragyogó új PM2.5 érzékelőt, vezeted egy USB-UART adapterhez, és akkor... a rémálom elkezdődik. Szükséged van Pythonra. Szükséged van illesztőprogramokra. Meg kell találnod, vagy 20 percet töltesz egy terminálban, hogy megnézd, hogy a dolog még életben van-e. És az idő fele, csak dobott szkripteket írsz, hogy ellenőrizze, hogy a 12 dolláros érzékelő tényleg működik. /dev/ttyUSB0 COM3 Belefáradtam abba, így valami ostobán egyszerű dolgot építettem. A "Miért nem csinálta ezt senki?" pillanat Néhány hónappal ezelőtt teszteltem egy csomó Plantower érzékelőt egy projekthez. PMS7003, PMS5003, a szokásos gyanúsítottak. Minden alkalommal, amikor ellenőrizni akartam az olvasmányokat, fel kellett gyújtanom egy Python-szkriptet, telepítenem a pyserial-t, foglalkozni a virtuális környezetekkel, yada yada yada. És azt gondoltam: A Chrome mostantól beszélhet USB-eszközökkel. A Web Serial API a Chrome 89 óta létezik. valójában meglehetősen érett. tehát miért használ mindenki még mindig asztali alkalmazásokat erre? Összehasonlítottam egy HTML-oldalt. Letöltöttem a Chart.js-t a vizualizációhoz. Hozzáadtam egy JSON konfigurációs betöltőt. És hirtelen csatlakoztathattam egy érzékelőt, koppintottam a "Csatlakozás" gombra, és valós idejű grafikonokat láthattam a böngészőmben. nem nem Nincs elektron alkalmazás, amely 500 MB RAM-ot fogyasztana. pip install sudo Csak egy weboldal. Hogyan működik valójában Te megyek Ön kiválasztja az érzékelőt egy lefelé (a Most, több, hogy egy másodperc alatt). Kattintson a "Csatlakozás", válassza ki az USB-portot, és bam - élő adatátviteli diagramokba. Nyitólapok.dev 33 supported models A titkos szósz egy JSON konfigurációs fájl, amely leírja az egyes érzékelők protokollját: Baud sebesség, adatbits, stop bits Keretszerkezet (kezdő bájtok, hosszúság, ellenőrző összeg pozíció) JavaScript kifejezések az értékek nyers bájtokból történő kivonásához Egységek és megjelenítő nevek (Számtalan példát találsz a blogomban) Csak ellenőrizze a sensors.json és a readme) GitHub Repo szolgáltatás Nincs összeállított illesztőprogram. Nincs villogó firmware. A böngésző mindent megtesz. Most már a Az alapértelmezett JSON-ban a következőket tartalmazza: 33 sensors Plantower (PMS1003 keresztül PMSA003-S, plusz az ipari PS3003A) Sensirion (SPS30, SCD30 a CO2 számára) Honeywell (HPMA sorozat) SenseAir (S8, K30, K33 - CO2 érzékelők) Nova PM (a klasszikus SDS011) Műszaki adatok Panasonic (SN-GCJA5) És egy csomó több a kisebb gyártók Az új érzékelő hozzáadása nem igényli a kód megérintését. Csak egy JSON-konfigurációt ír. Ha van egy UART-érzékelő, amely bináris kereteket fúj ki, akkor valószínűleg 10 perc alatt támogathatja. Real Talk: A Web Serial API-t alábecsülik Úgy érzem, hogy a Web Serial API egyike azoknak a böngészőfunkcióknak, amelyeken a fejlesztők alszanak. Mindenki ismeri a WebRTC-t, a WebGL-t, bármi legyen is. De közvetlen hardver hozzáférés egy weboldalról? Igen, csak a Chromium böngészőkben (Chrome, Edge, Brave) működik. Firefox és Safari húzza a lábát. De a fejlesztéshez és a hibakereséshez? A biztonsági modell valójában józan: a böngésző minden soros kapcsolathoz engedélyt kér. Nem lehet csendben megragadni valaki USB-eszközeit. És mivel minden a kliens oldalán fut, az érzékelőadatok soha nem érik el a szerveremet. A tiéd. Olyan tulajdonságok, amelyek valóban számítanak Nem akartam egy másik felfújott IoT platformot építeni. Szerettem volna egy olyan eszközt, amelyet valójában használnék. Több paraméter, testreszabható színek és módosítható. A különböző érzékelőcsoportok (PM értékek vs. CO2 vs. VOC) diagramjai megjelenhetnek. Live Charts: Egy gomb, teljes munkameneti adatok időbélyegekkel, mert végül meg kell nyitnia ezt az Excelben, vagy adja meg a tényleges elemzési csővezetékét. CSV Export: A bejövő képkockák hexadumpja a check sum pass/fail indikátorokkal.Fontos, ha új érzékelőkonfigurációt debuggál. Raw Packet Inspection: HTTP POST/GET/PUT külső végpontokhoz sablonozott JSON testekkel. Ezt használom az adatok InfluxDB-be vagy az Otthoni Asszisztensbe történő csővezetékezésére middleware nélkül. Webhook Streaming: Néhány érzékelőnek ébresztőbajtra van szüksége; mások egy adott lekérdezéskeretet szeretnének. Custom Commands: A „csak működik” filozófia Íme a forró fogadásom: hardware tools should be as easy as software tools. Amikor csatlakoztat egy USB webkamerát, nem állít össze illesztőprogramot. Amikor csatlakoztat Bluetooth fejhallgatót, nem szerkeszti a konfigurációs fájlokat. De valamilyen oknál fogva az UART érzékelők még mindig 1998-ban vannak. A PolluSensWeb az én kísérletem, hogy megjavítsam ezt a hardvervilágom kis sarkában. Nem tökéletes. A felhasználói felület funkcionális, nem gyönyörű. A kód vanília JS, mert nem akartam építeni lépéseket. De megold egy igazi problémát: lowering the barrier to seeing your data. Próbáld ki, vagy forgass Az egész nyílt forráskódú: github.com/WeSpeakEnglish/polluSensWeb Hírek Használhatja a tárolt verziót a Vagy csak telepítéséhez nincs szükség szerverre, nincs telepítendő függőség. Nyitólapok.dev letöltés Hasznosnak találod? a csillag Így mások is megtalálhatják. Repó Van egy furcsa érzékelő, amely nem szerepel a listán? Üdvözöljük, hogy hozzájáruljon egy működő JSON konfigurációhoz - vagy csak teszteljük a hardveren, és segítek neked írni a JSON-t. Épített koffein, Chart.js, és a makacs meggyőződés, hogy a hardver nem igényel CS fokozatot működtetni.