Your cart is empty!
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 :
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(); } }
Ver también
Soluciones Industriales
.png?access_token=03bf2854-35ce-4e86-8436-4268eab40525)
Soluciones basadas en código abierto para automatización, monitoreo y control