agathauy / gsm-arduino

A gsm modem library for Node JS to send and receive text messages with an Arduino Uno and a SIM900 GSM shield.

Home Page:https://www.npmjs.com/package/gsm-arduino

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gsm-arduino

A gsm modem library for Node JS to send and receive text messages with an Arduino Uno and a SIM900 GSM shield.

The system currently runs in text mode for readability. This would limit SMS messages to 160 characters.

Warning, in alpha stages.

No verificaiton of responses yet, these will be changed Arduino side in the near future.

IMPORTANT: The RX buffer in SoftwareSerial.h of the SoftwareSerial Arduino library needs to be manually set to 240 Possible path in arduino folder: /hardware/arduino/avr/libraries/SoftwareSerial/src

Installation

npm install gsm-arduino

Usage

For the SIM900 + Arduino Uno side

See the ino folder.

Inside are two files, one to set the baud rate of the SIM900 shield to 9600, and one which would be the main sketch to use with this module.

Run the sketch for changing the baud rate to 9600 first. And then you can run the gateway ino.

For the Node JS side

See examples/test.js

var modem = require("gsm-arduino");

/* Change to port */
var m1 = new modem.Modem_text("/dev/cu.usbmodem1411");

const m1_open = () => {
    console.log("in m1_open")
    setTimeout(() => {
        m1.open((status) => {
            if (status == true) {
                console.log("Port is open");
            } else {
                setTimeout(() => {
                    console.log("in else m1_open");
                    console.log(status);
                }, 3000);
            }
        });
    }, 2000);

}
m1_open();

m1.eventEmitter.on('error connect', (err) => {
    console.log("Arduino connect error");
    console.log(err);

    m1_open();
});

m1.eventEmitter.on('close connect', () => {
    console.log("Arduino connect close");
    m1_open();
})

m1.eventEmitter.on('new message', (num, text, datetime) => {
    console.log("New message:");
    console.log(num);
    console.log(text);
    console.log(datetime);

    var msg = text.trim().split(/\s+/);
    if (msg[0].toUpperCase() == "HELLO") {
        var reply = "Hi";
        m1.sendMsg(num, reply);
    }
});

m1.eventEmitter.on('signal status', (signal_strength) => {
    console.log(`Signal strength: ${signal_strength}`);
})

setInterval(() => {
    m1.checkSignal();
}, 10000);

About

A gsm modem library for Node JS to send and receive text messages with an Arduino Uno and a SIM900 GSM shield.

https://www.npmjs.com/package/gsm-arduino

License:MIT License


Languages

Language:JavaScript 66.4%Language:C++ 33.6%