Busca en nuestro Blog. Encontrarás múltiples aplicaciones, soluciones, ejemplos de código. Navega utilizando la nube de etiquetas o busca utilizando criterios específicos

How to create a web server to read a SD card with our Ethernet PLC's

Introducción

En este ejemplo vemos cómo leer una tarjeta SD en el PLC a través de una conexión Ethernet. Le mostraremos cómo crear un servidor que cuando haya una solicitud a través de un navegador, verá los directorios y los archivos de la tarjeta SD.

Siga  este post  para asegurar una buena conexión de la tarjeta SD en el PLC Ethernet!


Requisitos

Ethernet PLC:   

   Productos de la familia MDuino


Biblioteca Arduino SD : 

  Biblioteca Arduino SD


Software

Una vez que todo está conectado correctamente, el siguiente paso es realizar la configuración correcta del puerto Ethernet y crear el servidor:

/*
   Copyright (c) 2017 Boot&Work Corp., S.L. All rights reserved

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <SD.h> #include <Ethernet2.h> #define SD_SS_PIN 53 File root; // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; EthernetServer server(80); ///////////////////////////////////////////////////////////////////////////////// void setup() { Serial.begin(115200L); // Init Ethernet and TCP server Serial.println("Starting Ethernet ..."); Ethernet.begin(mac); server.begin(); // Init SD card Serial.println("Starting SD card ..."); if (!SD.begin(SD_SS_PIN)) { Serial.println("initialization failed!"); return; } Serial.print("IP address: "); Serial.println(Ethernet.localIP()); } /////////////////////////////////////////////////////////////////////////////// void loop() { EthernetClient client = server.available(); if (client) { char lastC = 0; while (client.connected()) { if (client.available()) { char c = client.read(); if ((c == '\n') && (lastC == '\n')) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/plain"); client.println("Connection: close"); client.println(); client.println("SD card files:"); root = SD.open("/"); printDirectory(root, client); break; } if (c != '\r') { lastC = c; } } } delay(50); client.stop(); } } //////////////////////////////////////////////////////////////////////////////// void printDirectory(File dir, Stream &stream) { while (true) { File entry = dir.openNextFile(); if (!entry) { // no more files break; } stream.print(entry.name()); if (entry.isDirectory()) { stream.println("/"); } else { // files have sizes, directories do not stream.print(" ["); stream.print(entry.size(), DEC); stream.println("]"); } entry.close(); } }

Soluciones Industriales

Odoo CMS - a big picture

Soluciones basadas en código abierto para automatización, monitoreo y control

10IOS PLC Arduino o ESP32

10 IOS PLC Arduino or ESP32 

20 IOS PLC Basados en Arduino

20 IOS PLC Based on Arduino 

Ethernet Arduino PLC

 Ethernet Arduino PLC 

Raspberry Pi PLC

 

Conceptos básicos: tarjeta SD en Arduino PLC


 
 

¿Quieres más información? 

¡Solo llena el formulario! 

¡Quiero saber más!  Por favor, llene el formulario correctamente.