Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Contador Inteligente de Plazas de Aparcamiento: Seguimiento en Tiempo Real con Arduino, Processing y PHP

Componentes y materiales

Aplicaciones y servicios en línea

Sobre el proyecto

Introducción

Sistema que cuenta vehículos en un parking usando dos sensores PIR (entrada/salida), envía el conteo a la nube vía Processing + PHP (sin shield Ethernet/WiFi) y permite consultar plazas libres.

Funcionamiento

Configuración ARTIK Cloud

  1. Crear aplicación en ARTIK Cloud → obtener Client ID/Secret.
  2. Crear dispositivo "Car Counter" con campo "count".
  3. Dar permisos Read/Write a la app.
  4. Configurar PHP con Access Token y Device ID.

Código

Arduino (contador + serie)

int pirIn = 7, pirOut = 10, led = 13;
static long counter = 0;

void setup() {
  pinMode(pirIn, INPUT);
  pinMode(pirOut, INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(pirIn) == HIGH) {
    counter++;
    Serial.println(counter);
    digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW);
  }
  if (digitalRead(pirOut) == HIGH) {
    counter--;
    Serial.println(counter);
    digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW);
  }
}

Processing (lectura serie + llamada PHP)

import processing.serial.*;
Serial myPort;
String val;

void setup() {
  String portName = Serial.list()[0]; // Ajusta índice según tu SO
  myPort = new Serial(this, portName, 9600);
}

void draw() {
  if (myPort.available() > 0) {
    val = myPort.readStringUntil('\n');
    int count = parseInt(val);
    if (count >= 0) {
      loadStrings("https://localhost:8000/acdemo/post-message.php?count=" + val);
    }
  }
  println(val);
}

post-message.php (recibe GET → POST a ARTIK)

setAccessToken("TU_ACCESS_TOKEN");
$data = '{"count":' . $count . '}';
$payload = array("data"=>$data, "sdid"=>"TU_DEVICE_ID", "type"=>"message");
$payload = json_encode($payload, JSON_HEX_QUOT | JSON_HEX_TAG);
$response = $proxy->sendMessage($payload);
header('Content-Type: application/json');
echo json_encode($response);
?>

ArtikCloudProxy.php (clase auxiliar)

token = $t; $this->user = $this->getUsersSelf(); }
  public function postCall($url, $payload) { /* cURL POST con Authorization: bearer */ }
  public function sendMessage($payload) { return $this->postCall(self::API_URL . self::API_MESSAGES_POST, $payload); }
  // ... getCall, getUsersSelf, getMessagesLast
}
?>

Esquemático

Diagrama de conexiones: 2 sensores PIR (pines 7 y 10) + LED en pin 13, alimentación común.

Proceso de manufactura

  1. Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
  2. Construye un Dispositivo de Levitación Ultrasónica con Arduino – Guía Paso a Paso
  3. Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
  4. Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
  5. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  6. Mide la masa de la Tierra con Arduino: Guía paso a paso DIY
  7. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  8. Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
  9. Integración del Sensor de Pulso MAX30100 con Arduino: Guía Paso a Paso
  10. Regalo de San Valentín: Contador DIY de Días Juntos
  11. Construye una Brújula Digital en Tiempo Real con Arduino y Processing