Последовательность подключения
Arduino> W5100 Ethernet-щит> Ноутбук> Сервер
Arduino Исходный код:
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
byte arduinoMac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress arduinoIP(192, 168, 0,3); // desired IP for Arduino
unsigned int arduinoPort = 8888; // port of Arduino
IPAddress receiverIP(192, 168, 0, 11); // IP of udp packets receiver
unsigned int receiverPort = 6000; // port to listen on my PC
EthernetUDP Udp;
int sensorPin = A0; //define sensor pin
int sensorValue;
void setup() {
Ethernet.begin(arduinoMac,arduinoIP);
Udp.begin(arduinoPort);
}
void loop() {
sensorValue = digitalRead(sensorPin);//read sensor value from 0 to 1023
Udp.beginPacket(receiverIP, receiverPort); //start udp packet
Udp.write(sensorValue); //write sensor data to udp packet
Udp.endPacket(); // end packet
delay(1000);
}
УЗЕЛФайл сервера .JS:
var dgram = require("dgram");
var server = dgram.createSocket("udp4");
var fs = require('fs');
var crlf = new Buffer(2);
crlf[0] = 0xD; //CR - Carriage return character
crlf[1] = 0xA; //LF - Line feed character
server.on("message", function (msg, rinfo) { //every time new data arrives do this:
console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port); // you can comment this line out
fs.appendFile('mydata.txt', msg + crlf, encoding='utf8');//write the value to file and add CRLF for line break
});
server.on("listening", function () {
var address = server.address();
console.log("server listening " + address.address + ":" + address.port);
});
server.bind(6000); //listen to udp traffic on port 6000
CMD SERVER Работает: Печать ..
CMD IPCONFIG: Print ..
Проблема в том, что сообщение от arduino не достигает сервера.Это должно работать, я видел несколько разных сайтов с похожим исходным кодом.Нужно ли настраивать ноутбук?Я открыл порт 6000 в брандмауэре, но что-то случилось.