Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) (/watek-problem-z-serialport-node-js-i-komunikacja-web-arduino-pro-mini-ratunku) |
Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - Lession - 17-09-2023 Cześć! Poszukuję rozwiązania problemu, buduję swoja strone lokalną, która ma sie komunikować z Arduino Pro mini (z czujnikami) i mają sobie przesyłać komunikaty i podejmowac akcje w zalezności od nich lub nie... Mam Windows 11, zastosowałem serwer Node.js i jego bibliotekę 'serialport' do komunikacji przez port com, celem jest najpierw poinformowanie Arduino o początku sesji, niby to opanowałem, ale wyskakuje błąd w momencie próby komunikacji z Arduino: "TypeError: SerialPort is not a constructor at C:\...\.........\js\app.js:20:25 at Layer.handle [as handle_request] (C:\...\node_modules\express\lib\router\layer.js:95:5) at next (C:\...\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:\...\node_modules\express\lib\router\route.js:114:3) at Layer.handle [as handle_request] (C:\...\node_modules\express\lib\router\layer.js:95:5) at C:\...\node_modules\express\lib\router\index.js:284:15 at Function.process_params (C:\...\node_modules\express\lib\router\index.js:346:12) at next (C:\...\node_modules\express\lib\router\index.js:280:10) at C:\...\node_modules\body-parser\lib\read.js:137:5 at AsyncResource.runInAsyncScope (node:async_hooks:203:9)" * '/../' - ta sama ścieżka we wszystkich linkach. Próbowałem reinstalować bibl. 'serialport', restartować node i komputer, testowałem port COM3 i COM4 - nie ma skutku... Kod w pliku app.js w projekcie jest taki: Kod: const express = require('express'); Czy ktoś się z czymś podobnym spotkał? Co mam zrobić? Może są inne, lepsze biblioteki? Ale darmowe? Z góry dziękuję za zainteresowanie i pomoc Lessin72 RE: Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - oscarX - 17-09-2023 Kod: const SerialPort = require('serialport'); Tak w ogóle to problem wydaje się być poza tematem forum - może poszukaj pomocy na jakimś forum o JS. Ja nie znam tego języka, ale zapytałem google i dostałem przykład gdzie nie używają new do SerialPort, tylko używają tego jak funkcji ardiunoPort = SerialPort( -- jakieś parametry --); RE: Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - kaczakat - 18-09-2023 Też nie mam pojęcia o czym piszesz @Lession, ale często wykorzystuję sterowanie uC ze strony WWW zamiast LCD i przycisków. Do ESP8266 (bo tańsze i nierzadko lepsze) wgrywam serwer websockets, strona WWW może być zapisana w ESP, może być też uruchamiana na PC z parametrem, że nie gada z localhost, tylko z jakimś IP. Wewnątrz kodu strony mam funkcje JS które reagują na dane przysyłane z ESP, albo wysyłają działania operatora na suwakach, przyciskach i polach tekstowych strony WWW. Przykład dla ESP32, gdzieś obok jest też dla ESP8266. https://github.com/kaczakat/ESP32_websockets/blob/master/ESP32_AsyncFSBrowserWebsocketsOTA.ino Uno jest za małe by to ogarnąć z shieldem Ethernet, jest biblioteka ale tylko dla klienta websockets. Jeśli nawet z jakiegoś powodu musiałbym użyć Atmega328 to przykład z websockets wszystkie wnioski z działania drukuje na Serial i może to być wprost użyte jako polecenia dla UNO/NANO, a ESP pełniłby funkcję modemu WIFI. RE: Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - Lession - 18-09-2023 (18-09-2023, 14:37)Lession napisał(a):(18-09-2023, 11:43)kaczakat napisał(a): Też nie mam pojęcia o czym piszesz @Lession, ale często wykorzystuję sterowanie uC ze strony WWW zamiast LCD i przycisków. RE: Problem z serialport Node.js i komunikacja web - Arduino Pro Mini - Ratunku! :) - kaczakat - 20-09-2023 Masz tam przecież szkice .ino do Arduino IDE. ESP8266 i ESP32 dodaje się do Arduino jako dodatkowe płytki, core esp8266 czy core esp32, tutoriali znajdziesz wszędzie na pęczki. Wtedy używałem core ESP 2.5.2, jak wyskoczą jakieś błędy to biblioteki użyte powinny być z tego mniej więcej okresu. Oczywiście to jeden ze sposobów. Jak proces nie jest skomplikowany i chcesz do płytki podłączyć jakiś LCD czy oled, sterować jakimś przekaźnikiem wg prostych zależności, np. godzina konkretna, albo wschód słońca, czujnik DS18B20 to można wgrać gotowy firmware TASMOTA, albo ESPEASY, działanie można wyklikać sobie z menu WWW. Z Tasmotą i jakimś domowym serwerem jak Home Assistant czy Domoticz możesz z kolei zrobić całą sieć urządzeń IOT, które gadają ze sobą i podejmują czynności, np. czujnik w kuchni pod zlewem został zalany bo pękł wężyk, w przedpokoju uruchamia się pipkacz i na LCD pokazuje jaki jest problem i gdzie, kolejne odłączają pralkę i inne sprzęty zasilane w wodę od prądu, ten w kotłowni zamyka główny zawór wody z siłownikiem elektrycznym, a z serwera dostajesz na telefon powiadomienia o wszystkich alarmach i wykonanych czynnościach nawet jak Cię nie ma w domu i nie możesz usłyszeć alarmu z buzera w przedpokoju. Interfejs sprzętowy do programowania ESP zależy od wybranej płytki, popularny WEMOS mini ma tak jak UNO wbudowany USB-UART na chipie CH340. ESP8266 ma tylko 9 pinów zdatnych do użycia, wystarczająco by sporo podłączyć, są na logice 3.3V. Piny to może być problem, ale po to ma WIFI by ten w kotłowni sterował tylko zaworem, ten pod zlewem tylko miał jeden czujnik analogowy, a ten w przedpokoju ekran na I2C i jedno cyfrowe wyjście do pikania, kilka przycisków do interakcji i wyłączenia wycia. |