33 sensors supported. Zero code required. Just plug in and breathe 33개의 센서가 지원됩니다. 0 코드가 필요합니다. 단순히 삽입하고 숨을 쉬십시오. 당신은 드릴을 알고 있습니다 : 당신은이 빛나는 새로운 PM2.5 센서를 얻고, 그것을 USB-UART 어댑터로 와이어하고, 그리고 ... 악몽이 시작됩니다. 당신은 파이썬이 필요합니다.당신은 드라이버가 필요합니다.당신은 그것이 또는 당신은 단지 물건이 살아 있는지 확인하기 위해 터미널에서 20 분을 보냅니다.그리고 절반의 시간, 당신은 $ 12 센서가 실제로 작동하는지 확인하기 위해 던져 스크립트를 쓰고 있습니다. /dev/ttyUSB0 COM3 나는 그것에 지쳤다.그래서 나는 어리석은 단순한 무언가를 만들었다. "왜 아무도 이것을하지 않았습니까?"의 순간 몇 달 전, 나는 프로젝트에 대한 Plantower 센서의 무리를 테스트하고 있었다. PMS7003, PMS5003, 일반적인 용의자. 매번 읽기를 확인하고 싶었을 때, 나는 파이썬 스크립트를 켜고, pyserial을 설치하고, 가상 환경을 다루고, yada yada. 그리고 나는 생각했다 : Chrome은 이제 USB 장치와 대화를 할 수 있습니다. 웹 시리얼 API는 Chrome 89 이후에 존재해 왔습니다. 실제로 매우 성숙합니다.그래서 왜 모든 사람들이 여전히 데스크톱 앱을 사용하고 있습니까? 나는 단일 HTML 페이지를 함께 해킹했습니다. 시각화하기 위해 Chart.js를 던졌습니다. JSON 구성 로더를 추가했습니다. 그리고 갑자기 나는 센서를 삽입하고 "연결"을 누르고 내 브라우저에서 실시간 그래프를 볼 수있었습니다. 아니오 아니오 500MB의 RAM을 먹는 전자 앱은 없습니다. pip install sudo 단지 웹페이지 그것이 실제로 어떻게 작동하는지 당신은 가서 당신은 드롭다운에서 센서를 선택합니다 (우리는 당신은 "연결"을 클릭, 당신의 USB 포트를 선택, 그리고 bam - 라이브 데이터 스트리밍 차트. 스토리사이트.pages.dev 33 supported models 비밀 소스는 각 센서의 프로토콜을 설명하는 JSON 구성 파일입니다.The secret sauce is a JSON configuration file that describes each sensor's protocol: Baud Rate, 데이터 비트, Stop Bits 프레임 구조 (start bytes, length, checksum position) Raw Bytes에서 값을 추출하는 JavaScript 표현 유닛 및 디스플레이 이름 (You will find plenty of JOSON examples on my ; 그냥 sensors.json 및 readme를 확인하십시오) GitHub 리포 그것은 그것입니다. 컴파일 된 드라이버가 없습니다. 펌웨어가 깜박하지 않습니다. 브라우저는 모든 것을합니다. 지금, 우리는 at 기본적으로 JSON을 사용하면: 33 sensors Plantower (PMS1003를 통해 PMSA003-S, 플러스 산업 PS3003A) 센서리온 (SPS30, SCD30 for CO2) Honeywell (HPMA 시리즈) SenseAir (S8, K30, K33 - CO2 센서) 노바 PM (클래식 SDS011) 파나소닉 (SN-GCJA5) 그리고 더 많은 작은 제조업체들로부터 쿨한 부분? 새로운 센서를 추가하면 코드를 탭할 필요가 없습니다.당신은 단지 JSON 구성을 작성합니다.당신이 바이너리 프레임을 뱉는 UART 센서를 가지고 있다면 아마도 10 분 안에 그것을 지원할 수 있습니다. Real Talk: Web Serial API는 과소평가됩니다. 나는 Web Serial API가 개발자가 잠을 자고있는 브라우저 기능 중 하나라고 느니다. 모두가 WebRTC, WebGL, 무엇이든 알고 있습니다.하지만 웹 페이지에서 직접 하드웨어 액세스? 예, 그것은 Chromium 브라우저 (Chrome, Edge, Brave)에서만 작동합니다. Firefox와 Safari는 발을 끌고 있습니다. 보안 모델은 실제로 괜찮습니다 : 브라우저는 모든 연속 연결에 대한 허가를 요청합니다.당신은 누군가의 USB 장치를 조용히 탐색 할 수 없습니다.그리고 모든 것이 클라이언트 측면에서 실행되므로 센서 데이터는 내 서버에 결코 닿지 않습니다. 실제로 중요하게 여기는 특징 나는 또 다른 팽창 된 IoT 플랫폼을 만들고 싶지 않았다.나는 내가 실제로 사용하는 도구를 원했다. 여러 개의 매개 변수, 사용자 지정 가능한 색상 및 변경할 수 있습니다.You can pop out charts for different sensor groups (PM values vs CO2 vs VOCs). Live Charts: 하나의 버튼, 타임스탬프가있는 전체 세션 데이터 때문에 결국 Excel에서 이것을 열거나 실제 분석 파이프라인에 공급해야합니다. CSV Export: 체크sum pass/fail 지표와 함께 들어오는 프레임의 헥스 덤프.Essential when you are debugging a new sensor config. Raw Packet Inspection: HTTP POST/GET/PUT는 템플릿된 JSON 몸체를 가진 외부 엔드포인트로 사용합니다.I use this to pipe data into InfluxDB or Home Assistant without any middleware. Webhook Streaming: 초기화 시퀀스 또는 주기적 투표 명령을 보냅니다.Send initialization sequences or periodic polling commands.Some sensors need a wake-up byte; others want a specific query frame. Custom Commands: ‘It Just Works’ 철학 여기에 내 뜨거운 촬영 : hardware tools should be as easy as software tools. USB 웹캠을 연결하면 드라이버를 컴파일하지 않습니다. 블루투스 헤드폰을 연결하면 구성 파일을 편집하지 않습니다.하지만 어떤 이유로 UART 센서는 여전히 1998에 갇혀 있습니다. PolluSensWeb은 하드웨어 세계의 나의 작은 구석을 위해 그것을 고치려는 나의 시도입니다. 그것은 완벽하지 않습니다. UI는 기능적이지, 아름답지 않습니다. 코드는 바닐라 JS입니다.나는 건설 단계를 만들고 싶지 않기 때문에.하지만 그것은 진짜 문제를 해결합니다. lowering the barrier to seeing your data. 그것을 시도하거나 Fork It 모든 것이 오픈 소스입니다 : github.com/WeSpeak영어/polluSensWeb 당신은 호스트 버전을 사용할 수 있습니다 at 또는 단순히 서버가 필요하지 않으며, 설치할 의존성이 없습니다. 스토리사이트.pages.dev 다운로드 유용하다고 생각하십니까? 스타 다른 분들도 찾을 수 있습니다. 리포 목록에없는 이상한 센서가 있습니까? 당신은 그것을 위해 작동하는 JSON 구성에 기여하는 것을 환영합니다 - 또는 단순히 하드웨어에 테스트하고 JSON을 작성하는 데 도움이됩니다. 메시지를 내게 보내거나 PR를 열어주십시오. 카페인, Chart.js 및 하드웨어가 작동하려면 CS 학위가 필요하지 않다는 고집스러운 믿음으로 구축되었습니다.