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:
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
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');
const app = express();
const bodyParser = require('body-parser');
const port = 8080;
// Parsowanie treści żądania POST
app.use(bodyParser.urlencoded({ extended: true }));
// Obsługa żądania GET na stronę główną
app.get('/', (req, res) => {
//res.sendFile(__dirname + '/../index.html');
res.sendFile('C:/.../index.html'); //ścieżka bezwzględna - bo o jeden katalog wyżej niż plik projektu app.js
});
// Obsługa żądania POST od formularza
app.post('/rozpocznij-sesje', (req, res) => {
// Tutaj kod, który wysyła sygnał do Arduino
const SerialPort = require('serialport');
const arduinoPort = new SerialPort('COM3', { baudRate: 9600 });
// Wysyłamy sygnał do Arduino
arduinoPort.write('ROZPOCZNIJ_SESJE\n', (err) => {
if (err) {
console.error('Błąd podczas wysyłania danych do Arduino:', err);
} else {
console.log('Wysłano sygnał do Arduino o rozpoczęciu sesji.');
}
});
res.send('Sesja została rozpoczęta.'); // Odpowiedź dla klienta przeglądarki
});
// Start serwera na określonym porcie
app.listen(port, () => {
console.log(`Serwer uruchomiony na porcie ${port}`);
});
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