, IoT- , :
1. C++ OpenCV, NodeJS Arduino. , OpenCV, C++.
2. , Arduino . OpenCV , Arduino .
3. NodeJS -, NodeJS, .

. , .
(Matthias Han) 
Arduino C ++ . , ++ Arduino , Linux-. , C++ . , NodeJS, C++ NodeJS.
, . . . - , . , .
┬л-┬╗ Linux. . , .
. тАУ , тАУ . . (DW) . . , , , . . . .
: :
:
.
. - , . , , HIGH. - , . , . .

, Arduino NodeJS .
Arduino NodeJS: NodeJS Arduino:
NodeJS Arduino:
, Arduino, . NodeJS .
Arduino , , GPIO-. , Arduino тДЦ3. - , Arduino ( ), : /arduino_notification_out.txt.
Arduino HIGH тДЦ3. . тДЦ3 тДЦ1. , HIGH тДЦ3 тДЦ1.
Arduino
int notifier_pin 	= 3;
int js_subscriber_pin 	= 6;
FILE *fromarduino, *toarduino;
int i = 0;
int c;
void setup() {                
  pinMode(notifier_pin, OUTPUT); 
  pinMode(js_subscriber_pin, INPUT_PULLUP); 
  attachInterrupt(js_subscriber_pin, subscriberEvent, RISING); 
  Serial.begin(9600);
}
void subscriberEvent() {
  
   toarduino = fopen("/js_notification_out.txt","r");  
   if (toarduino)
   {
    while ((c = getc(toarduino)) != EOF)
    {
      if(c != 10)
      {
           Serial.print((char)c);
      }
    }
    Serial.println("");
    Serial.println("----------------");
    fclose(toarduino);
   }  
}
void loop() {
  if(i < 50)
  {
    i = i + 1;
  }
  else
  {
    i = 0;   
  }
  
  publishData();
  notifyWorld();  
  delay(1000);               
}
void publishData()
{
  fromarduino = fopen ("/arduino_notification_out.txt", "w+");
  fprintf(fromarduino, "[%d]", i);
  fclose(fromarduino);  
}
void notifyWorld()
{
    digitalWrite(notifier_pin, HIGH);
    delay(200);
    digitalWrite(notifier_pin, LOW);
}
NodeJS тДЦ1. , HIGH, Arduino. NodeJS - . ┬л Arduino NodeJS┬╗.
NodeJS
var mraa = require("mraa");
var fs = require('fs');
var subscriber_pin = new mraa.Gpio(1);
    subscriber_pin.dir(mraa.DIR_IN);
    subscriber_pin.isr(mraa.EDGE_RISING, subscriberEvent); 
    
function subscriberEvent() {
    var contents = fs.readFileSync('/arduino_notification_out.txt').toString();
    console.log("Message from Arduino:" + contents);        
}
var counter = 0;
var notifier_pin = new mraa.Gpio(5);
notifier_pin.dir(mraa.DIR_OUT);
setInterval(function(){
    counter++;
        fs.writeFileSync("/js_notification_out.txt", "NodeJS: [" + counter + "]\n");
        notifyWorld();
        counter = 0;
},20000);
function notifyWorld()
{
    notifier_pin.write(1);
    setTimeout(function(){
        notifier_pin.write(0);
    },200);
}
NodeJS Arduino. ┬л NodeJS Arduino┬╗.
, .
, C++ NodeJS. .
, . GPIO-. , GPIO-. , , GPIO. , JSON- , eventsource, event data .. , . .