PurpleRose
4 years ago
1 changed files with 0 additions and 68 deletions
@ -1,68 +0,0 @@ |
|||||
//Requiered modules
|
|
||||
const amp = require('amqplib'); |
|
||||
const serialPort = require('serialport'); |
|
||||
|
|
||||
//Serial port initialization
|
|
||||
var port = new serialPort('/dev/ttyUSB0', { baudRate: 9600, }); |
|
||||
|
|
||||
//RabbitMQ Settings initialization
|
|
||||
const rabbitmqSettings = { |
|
||||
protocol: 'amqp', |
|
||||
hostname: 'localhost', |
|
||||
port: 5672, |
|
||||
username: 'iotproject', |
|
||||
password: 'iotproject', |
|
||||
vhost: '/', |
|
||||
authMechanism: ['PLAIN', 'AMQPLAIN', 'EXTERNAL'] |
|
||||
} |
|
||||
|
|
||||
//The main function (connect), implement all the functionality for the purpose of reading the serial port and send the data to the broker (tempValues) queue...
|
|
||||
async function connect() { |
|
||||
|
|
||||
const queue = 'tempValues'; //RabbitMQ queue name...
|
|
||||
|
|
||||
try { |
|
||||
|
|
||||
//apply the RabbitMQ settings to create a link between the producer and the queue...
|
|
||||
const conn = await amp.connect(rabbitmqSettings); |
|
||||
console.log("Connection Created..."); |
|
||||
|
|
||||
const channel = await conn.createChannel(); |
|
||||
console.log("Channel Created..."); |
|
||||
|
|
||||
let res = await channel.assertQueue(queue); |
|
||||
console.log("Queue Created..."); |
|
||||
|
|
||||
|
|
||||
//read the data from the serial port...
|
|
||||
const Readline = serialPort.parsers.Readline; |
|
||||
const parser = new Readline(); |
|
||||
port.pipe(parser); |
|
||||
|
|
||||
port.on('open', function() { |
|
||||
console.log('port open...'); |
|
||||
}); |
|
||||
|
|
||||
//create an empty object and fill it with the sensor name and the temp value...
|
|
||||
parser.on('data', function(data) { |
|
||||
var tempValueObj = new Object(); |
|
||||
tempValueObj.sensorName = "TMP36GZ"; |
|
||||
tempValueObj.temperature = data.slice(0, -2); |
|
||||
|
|
||||
//convert the object to JSON (requiered from the RabbitMQ broker)
|
|
||||
channel.sendToQueue(queue, Buffer.from(JSON.stringify(tempValueObj))); |
|
||||
console.log(`Message sent to queue ${queue}`); |
|
||||
}); |
|
||||
port.on('close', function() { |
|
||||
console.log('port closed'); |
|
||||
}); |
|
||||
port.on('error', function() { |
|
||||
console.log('something went wrong in serial communication'); |
|
||||
}); |
|
||||
|
|
||||
} catch (error) { |
|
||||
console.log(`Error => ${error}`); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
connect(); |
|
Loading…
Reference in new issue