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


In this example we see how to read a SD card into the PLC through Ethernet connection. We will show how to create a server that when there is a request through a browser, you will see the directories and the files of the SD card.

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


Ethernet PLC:           MDuino Family Products

Arduino SD Library:    Arduino SD Library


Once all is connected correctly, the next step is to make the right configuration of the Ethernet port and create the server:

   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
   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(); } }

¿Quieres más información?

Con la tecnología Open Source, puedes ejecutar tus propias instalaciones.

Rellena el formulario y contactaremos contigo lo más pronto posible.

Enviar  Por favor, completa el formulario correctamente.