직접 Maker가 만들고 공유하는 다양하고 유용한 WIZnet TCP/IP Ethernet Controller Driver

Written by MC


Overview

WIZnet는 W3100(단종)을 시작으로 W3150A+, W5100, W5200, W5300, W5500 등 개선되고 안정화된 TCP/IP Chip을 선보이고 있으며, 전세계의 많은 개발자와 Maker에게 지속적인 관심을 받고 있다.

위즈네트는 큰 사랑을 받은 W5100의 성능을 개선하고 가격을 낮춘 W5100S를 최근 출시하였고, 곧 다가올 IPv6 IoT 시장에 대응할 수 있는 Dual TCP/IP Stack(IPv4 & IPv6) 지원하는 W6100을 곧 출시할 예정이다.

위즈네트는 공식적으로 W5xxx Series을 통합 운영할 수 있는 ioLibrary를 제공하고 있으며, 이는 사용자 Application의 수정을 최소화하고, 손쉽게 새로운 칩으로 변경할 수 있도록 한다.

그리고, W6100에 대한 io6Library 또한 Github를 통해 제공될 예정이다.
ioLibrary에 익숙한 사용자라면 io6Library 역시 손쉽게 사용할 수 있을 거라 기대한다.

이 글에서 소개하고자 하는 것은 위즈네트의 공식 ioLibrary가 아닌, 위즈네트 뮤지엄에서 소개하고 있는 전세계 Maker나 개발자가 개발한 유용하고 다양한 Library를 소개하고자 한다.

소개할 Library는 다음과 같다.

Arduino Library

Official Arduino Library

Aurdino Library는 전세계 Maker에게 가장 사랑받고 활용되고 있는 Library이다. 누구나 손쉽고 빠르게 개발할 수 있는 장점은 있지만, 단순한 Library 구조로 위즈네트 Chip이 제공하는 세부적인 기능을 제어하기에는 한계가 있다.

이러한 단점에도 불구하고, 전세계 Maker들에게 지속적으로 사랑받고 활용되는 이유는, 손쉽게 동작할 수 있는 다양한 Example을 제공하고, 전세계 Maker들이 함께 만들어가는 Library로 github에 공유되어 W5100, W5200, W5500, W5100S, W6100 등을 Runtime에 지원하는 Library를 제공한다.

Multicasting Arduino Library

이 Library는 Arduino Library가 지원하지 않는 UDP Mutilcasting 구현을 위한 Library를 제공한다. 저자는 udp.h 와 udp.c에서 UdpClass::begin() 함수와 같은 UdpClass::beginMulti() 추가하여 구현하였다.

필자 생각에는 UdpMultiClass를 원본 Library를 수정하지 않고, UdpClass 상속 받아 beginMulti()를 추가하는 것이 활용도 면에서 좋을 것으로 판단된다.

 
   class UdpMultiClass : UdpClass {
      public:
      void beginMutli(uint16_t portMulti, uint8_t * addrMulti);
   }

   void UdpMutiClass::beginMulti(uint16_t portMulti, uint8_t * addrMulti) 
   {
      _port = portMulti;
      _sock = 0; //TODO: should not be hardcoded
      // set destination IP
      W5100.writeSnDIPR(_sock, addrMulti);
      W5100.writeSnDPORT(_sock, portMulti);

      socket(_sock, SnMR::UDP, _port, 0x80);
   }
 

[Refer to WIznet Museum]
[Download Library]
[How to Use]

Non-blocking Arduino Library

Non-Blocking Arduino Library는 Arduino Board가 DHCP Server로 부터 IP address는 할당받거나, DNS 요청이 Blocking 되어 수초 동안 아무런 동작도 하지 않는 Standard Library를 Blocking 되지 않도록 일부 코드를 수정한 것입니다. 저자와 같은 고민을 해본 분들에게 도움이 될 만한 Library입니다.

[Refer to WIznet Museum]
[Download Library]
[How to Use]

FreeRTOS Library

FreeRTOS 기반에 동작하는 ATmega MCU의 WIZnet Library로 WIZnet가 제공하는 초기 ioLibrary로 구현되었습니다.

이 Library는 RTOS 기반의 Application에서 WIZnet Library가 어떻게 활용될 수 있는지 잘 보여줍니다.
저자는 그외에도 FreeRTOS 기반의 uIP Stack도 지원하고 있으며, 이는 WIZnet의 Hardware TCP/IP stack과 Software Stack를 손쉽게 비교할 수 있습니다.

또한, 이 Site는 WIZnet Chip의 MACRAW SOCKET 기능을 활용하여 uIP Stack을 구현하는 Library도 제공하고 있습니다. 여기를 참조하세요.

[Refer to WIznet Museum]
[Download Library]
[How to Use]

ATmega Library

ATmega Library는 W5100을 기반으로 하는 간단한 Library 입니다.
ermicor의 Library를 수정하여 만들었습니다.
이 Library는 ioLibrary를 필요한 기능만을 구현하여 아주 작게 만들었습니다.
아래 코드는 WIZnet Chip을 Access하기 위한 기본 IO library입니다.


void  W51_register(W5100_CALLBACKS  *pcallbacks)
{
    select = pcallbacks->_select;
    xchg = pcallbacks->_xchg;
    deselect = pcallbacks->_deselect;
    reset = pcallbacks->_reset;
    inited = FALSE;
    if ((select) && (xchg) && (deselect))  inited = TRUE;    // these functions must be valid
}
void  W51_write(unsigned int  addr, unsigned char  data)
{
    if (!inited)  return;                        // not set up, ignore request

    select();                                    // enable the W5100 chip
    xchg(W5100_WRITE_OPCODE);                    // need to write a byte
    xchg((addr & 0xff00) >> 8);                  // send MSB of addr
    xchg(addr & 0xff);                           // send LSB
    xchg(data);                                  // send the data
    deselect();                                  // done with the chip
}
unsigned char  W51_read(unsigned int  addr)
{
    unsigned char                val;

    if (!inited)  return  0;                     // not set up, ignore request

    select();                                    // enable the W5100 chip
    xchg(W5100_READ_OPCODE);                     // need to read a byte
    xchg((addr & 0xff00) >> 8);                  // send MSB of addr
    xchg(addr & 0xff);                           // send LSB
    val = xchg(0x00);                            // need to send a dummy char to get response
    deselect();                                  // done with the chip
    return  val;                                 // tell her what she's won
}

[Refer to WIznet Museum]
[How to Use]

PSoC Library

PSoC Library는 Cypress사의 PSoC4 & PSoC4에 동작하며, W5100, W5200, W5500을 통합한 Library이다. PSoC 사용자에게는 아주 유용한 Library가 될 것이다.

[Refer to WIznet Museum]
[Download Library]

Library for BASIC Language Users

이 Library는 특이하게 일반적인 C library가 아닌 Basic 언어로 작성된 Library이다.

PIC 과 ATmega MCU를 지원한다.

PIC Library

[Refer to WIznet Museum]
[Download Library]
[How to Use]

ATmega Library

[Refer to WIznet Museum]
[Download Library]
[How to Use]

BSD SOCKET

다음 표는 ioLibrary와 BSD Socket Library와의 지원 함수를 비교한 것이다.

ioLibrary BSD Sccket
socket() O O
bind() X O
listen() O O
accept() X O
send() & recv() O O
sendto() & recvfrom() O O
select() & poll() X O

WIZnet의 ioLibrary는 BSD Socket과 달리 bind()accept() 함수를 지원하지 않는다.

BSD Socket Library인 경우, 다음 그림처럼 bind()에 의해 source port가 할당되고 socket resource와 바인딩된다. 또한, client의 접속을 accept()를 통해 대기하며, client 접속 요구가 있을 경우, 새로운 socket을 생성하고 임의의 source port로 바인딩하여 이를 data communication socket으로 사용한다.

ioLibrary인 경우, BSD Socket의 socket()와 bind() 함수를 ioLibrary의 socket() 함수 하나로 통합되어 있다.

또한, 아래 그림처럼 Socket resource는 BSD와 달리 동적으로 할당받는 것이 아니라, 이미 Chip에 존재하는 Hardwired socket을 그대로 사용함ㅇ로 accept() 함수가 필요없다. 즉, ioLibrary의 listen socket은 client의 접속 요구를 항상 대기하고 있으며, client의 요구가 받아질 경우 곧바로 Data communication socket으로 역할을 변경한다. 여러 client의 접속 요구를 받아들이기 위해서는 client 수 만큼 listen socket을 생성하여야 한다.

이러한 차이에도 불구하고, WIZnet chip은 아래와 같이 BSD socket Library를 지원한다.

BSD Socket by using ioLibrary

이 Library를 위즈네트의 ioLibrary에 bind()와 accept() 함수를 추가 구현한 Library이다.
여기서 이 함수는 아래와 같이 empty function으로 구현하여 BSD와의 호환성만을 유지한 것 같다.


int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
   return 0;
}
int bind(int s, const struct sockaddr *name, socklen_t namelen)
{
   return 0;
}

이것보다는 아래와 같이 구현하는 것이 좀 더 정확한 구현이 될 것이다.


int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
   struct sockaddr_in * destaddr = (struct sockaddr_in *)addr;
   while(getSn_SR(s) != SOCK_ESTABLISHED)
   {
      if(getSn_IR(s) & Sn_IR_TIMEOUT) return -1;
   }
   destaddr->sin_family = AF_INET;
   destaddr->sin_port = getSn_DPORTR(s);
   destaddr.sin_addr.s_addr = ntohl(getSn_DIPR(s));
   return 0;
}
int bind(int s, const struct sockaddr *name, socklen_t namelen)
{
   setSn_PORTR(((struct sockaddr_in *)name)->sin_port);
   return 0;
}

[Refer to WIZnet Musuem]
[Download Library]

POSIX BSD Socket

POSIX BSD Library와 가장 유사하게 구현된 Library로 BSD Socket Library로 구현된 다양한 Application을 손쉽게 Porting 할 수 있다.
select()와 poll(), 그리고 getsockoptH()와 setsockopt() 함수도 구현되어 있다.


int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
{
    int ret;
    struct w5100_socket *s;

    s = get_socket_from_fd(sockfd);
    if (s == NULL)
    {
        ret = -1;
    }
    else if ( addr->sa_family != AF_INET )
    {
        errno = EAFNOSUPPORT;
        ret = -1;
    }
    else if (s->state != W5100_SOCK_STATE_CREATED)
    {
        errno = EINVAL;
        ret = 1;
    }
    else if (s->type == SOCK_STREAM)
    {
        struct sockaddr_in *server;
        uint8_t sr;
        uint8_t sr_end;

        (void)addrlen;
        server = (struct sockaddr_in *)addr;

        /* TODO: check if already in use EADDRINUSE */
        w5100_write_sock_regx(W5100_Sn_PORT, s->isocket, &server->sin_port);
        w5100_command(s->isocket, W5100_CMD_OPEN);
        sr_end = W5100_SOCK_INIT;
        do {
            sr = w5100_read_sock_reg(W5100_Sn_SR, s->isocket);
        } while (sr != sr_end);
        s->sockname = *server;
        s->state = W5100_SOCK_STATE_BOUND;
        ret = 0;
    }
    else if (s->type == SOCK_DGRAM)
    {
        struct sockaddr_in *server;
        (void)addrlen;

        server = (struct sockaddr_in *)addr;
        bind_udp(s, server->sin_port);
        ret = 0;
    }
    else
    {
        /* TODO: RAW */
        errno = EBADF;
        ret = -1;
    }
    return ret;
}

[Refer to WIZnet Musuem]
[Download Library]
[How to Use]


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Internet of things project: Connect Arduino to Ubidots and Android – Part 1 & 2

by Francesco Azzola



Overview

This IoT project explores how to connect Arduino to Ubidots and Android. One important aspect in Arduino Internet of things programmin is how to connect arduino to internet and store date to IoT cloud platforms using arduino ethernet shield. This aspect is important because it is possible to store data in the cloud and then analyze it. Once the data, like sensor values, is on the cloud is possible to access it using smart phones and control remotely the Arduino board.

As soon as the temperature and humidity sensor starts reading values, it sends them through Arduino board to the cloud platform. The project uses Ubidots to store data in the cloud. This platform is easy to use and can be easily integrated with Arduino. Moreover, it has a built-in dashboard features, so that it is possible to creates interesting dashboard to show, using charts, the values sent from the board.

Components

  • W5500 Ethernet Shield
  • Arduino-Uno
  • DHT11
  • Ubidots

How to Build

  1. Connect the DHT11 to Arduino-Uno

  2. Import DHT11 Libary to Arduino IDE
    In this sketch, DHT11 sensor is connected to Arduino board, that, in turn, uses the Arduino Ethernet shield to connect to the network to send data. As first step, we check if everything is connected correctly trying to read the value of the temperature and the humidity. The snippet below shows the Arduino sketch to test the sensor:

    #include "DHT.h"
    #include <spi.h>
    #define DHTPIN 2
    #define DHTTYPE DHT11
    
    DHT dht(DHTPIN, DHTTYPE);
    
    void setup() {
     Serial.begin(9600);
     dht.begin();
    }
    
    void loop() {
     delay(50000);
    
     float h = dht.readHumidity();
     // Read temperature as Celsius (the default)
     float t = dht.readTemperature();
    
     Serial.print("Humidity: ");
     Serial.print(h);
     Serial.print(" %t");
     Serial.print("Temperature: ");
     Serial.print(t);
     Serial.println(" *C ");
    }
    
  3. Register the arduino to Ubidots & Import Ubidots Library to Arduino IDE

    http://things.ubidots.com/api/v1.6/collections/values
    

    Refer to Ubidots Dco

  4. Implements WebClient for Arduino
    Ubidots provides an example that can be useful. In Arduino, we have to develop an ArduinoHTTP client that calls a JSON service passing the data we want to store in the cloud.

    JSON Format :
    [{"variable": "varId", "value":val, "timestamp":timestamp},{"variable": "vardId1", "value":val1, "timestamp":timestamp1}]

Learn More

Goto Original
Get Free Arduino Things Free Source

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

PlatformIO / WIZwiki-W7500

by http://platformio.org/



What is Platfrom IO

PlatformIO is an open source ecosystem for IoT development. PlatformIO supports WIZnet W7500 IoT platfrom such like WIZwiki-W7500, WIZwiki-W7500ECO, and WIZwiki-W7500P.

  • Features
    • Cross-platform IDE
    • Unified debugger
    • Remote unit testing
    • Firmware updates

Platform IO provides PlatformIO IDE, and Libarary Manager for Developing IoT Platfrom

PlatformIO IDE

PlatfromIO IDE supports three-kind IDE enviroments

PlatformIO Core

PlatformIO Core is a heart of whole PlatformIO ecosystem. This a Command Line Tool that consists of multi-platform build system, platform and library managers and other integration components.
It’s written in pure Python and works without any dependencies to host machine or third party software

PlatformIO IDE

PlatformIO IDE is the the next-generation integrated development environment for IoT. We provide official extension/plugin for the popular IDEs.

  • The Popular IDEs
    • Atom
    • VSCode
    • Cloud9
    • Codeanywhere
    • Eclipse Che
    • CLion
    • CodeBlocks
    • Eclipse
    • Emacs
    • NetBeans
    • Qt Creator
    • Sublime Text
    • VIM
    • Visual Studio

It’s built on top of PlatformIO Core. You no need to install PIO Core separately, our IDE already contains it and you can use it later via PlatformIO IDE Terminal.

Integration

Find out how to integrate PlatformIO with the popular Cloud & Standalone IDEs and Continuous Integration (CI) systems.
Extend your favourite environment with professional instruments.

Supported Embedded Boards (+400)

PlatformIO currently supports over 400 boards from leading manufacturers, and we are constantly adding new ones.

You can be part of the process by letting us know what board you wish to see supported next, by submitting a feature request.

WIZnet W7500

The IOP (Internet Offload Processor) W7500 is the one-chip solution which integrates an ARM Cortex-M0, 128KB Flash and hardwired TCP/IP core for various embedded application platform especially requiring Internet of things

For more detailed information please visit vendor site


Learn More

Goto Original

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Vintage radio Sonos hack

by Thomas M



Overview

Introducing the Tandberg Sølvsuper 10 radio, a product of the Scandinavian Hi-Fi golden age. Sadly, after decades in storage, the huge variable capacitor inside has seized from corrosion and the radio was beyond repair.

So, what to do? Can this piece of 60s design be refurbished and made useful in the world of Internet of Things?

What to do

He made this product as the following steps.

  • Lighting
  • Rotary Encoders
  • Stepper Moter
  • Main Board
  • Ethernet and USB

Demo Movie

Learn More

Goto Original

 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Russound RNET to Sonos Bridge (Arduino MEGA) – Part 2

by DannyMav @Mavromatic



Overview

While it was possible to use an Arduino duemilanove (Atmel 328 chipset) for this project (See Part 1), He was really limited due to the 2K of RAM. It was fun trying to optimize code to get things to run in that amount of memory, however, it caused me to not be able to expand on functionality and features. He has upgraded the project to an Arduino MEGA (Atmel 1280 chipset). This platform gives him up to 8K of RAM — which should be more than enough memory (famous last words).
A lot of people have asked him to explain what exactly he’s doing with the Arduino. It’s pretty simple. First, He’s using a RS232 shield (not shown) to capture RS232 commands from the Russound Controller. When a key is pressed on the Russound keypads He read the RS232 data and either ignore or react to the events. Currently, He’s looking for +, -, Next, Previous, Play/Pause, Menu events. He plans on using the Menu button to offer deeper content browsing menus (need to sniff the RS232 or wait for Russound to publish protocol). The + & – buttons will allow to scroll playlists and the rest of the transport buttons are self explanatory.

  • Example RNET Next Track Event
F0 0 7D 7 0 0 7F 5 2 1 0 2 1 0 E 0 0 1 7 0 1 2A F7

Since the Sonos is a uPnP based system there is no IR or way to traditionally control it. Everything needs to be done via HTTP calls. He’s using an Ethernet Shield to translate the RS232 events to uPnP messages. The biggest challenge has been parsing the huge amounts of VERY VERBOSE SOAP-based notification messages. He parses the data real time, looking for strings that He want to store (things like playstate and metadata).
To make matters worse, Sonos is URL encoding XML data inside of an XML structure. So writing a simple XML parser is not possible. You have to look for things like &lt; for a less-than bracket (<). There were times I wanted to scrap the whole project because of this due to the limited RAM and string utilities — it really makes things a lot harder to deal with.

  • Example of nested URL encoded XML
&lt;Event xmlns="urn:schemas-upnp-org:metadata-1-
0/AVT/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-10/"&gt;
&lt;InstanceID val="0"&gt;&lt;TransportState val="PLAYING"/ 

Demo Movie

Learn More

Goto Original


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Fritz! Boy: Serial communication between Arduino and Gameboy (GBDK)

by Marcel Imig



Overview

This project describes both the communication between an Arduino Mega and a UPNP capable router, as well as the serial communication between Gameboy and Arduino. This is a contribution for the “Pimp your Fritz!” Competition of the Maker Faire 2015 in Berlin. The conditions of participation are here. The finalists are on the site of AVM. The winners at Heise.

Required Component :

  • Gameboy (DMG) oder Gameboy Color 30 €
  • USB 64m Smart card (z.B. von hier) 50 €
  • Gameboy Link cabel 5 €
  • Arduino Mega 15 €
  • Arduino Ethernet Shield 10 €
  • Housing (Optional) 5 € ~100 €

How to Run

After the Arduino Mega microcontroller has received an IP address from the Fritz! Box, it sends a SOAP request to its default gateway. In this query, he queries the properties of the WAN interface and returns the maximum up- and download bandwidth (“NewLayer1UpstreamMaxBitRate” and “NewLayer1DownstreamMaxBitRate”). Next, he intermittently polls the current bandwidth usage every three seconds (“NewByteReceiveRate” and “NewByteSendRate”). The collected values ​​are converted into megabits and transferred to the gameboy every second via the serial interface. A game is played on the game board’s cartridge, which listens on the serial port and displays the last 50 received values on a scale.

Learn More

Goto Original, Language : German


 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Arduino + WebSockets II

by Daniel Garrido



Overview

These postings show how to use WebSockets to display data taken from Arduino and broadcast it to any Browser with WebSocket support.

This project describes how to use WebSockets to display data taken from Arduino and broadcast it to any Browser with WebSocket support. Test your browser here: http://websocket.org/echo.html

Please read the first part of this serie: http://yopero-tech.blogspot.com/2012/02/arduino-websockets.html

First of all we need to decide what data to display and what to control in Arduino from the web page .

In this example I am going to control 3 remote controlled relays that you can buy at your hardware store and I want to display the values from 2 temperature sensors.(DS18S20)

3 main parts of software & hardware(Arduino Board)

This project is composed out of 3 main parts of software apart from the hardware(Arduino Board):

  1. WebSocket Server:
    • Python
    • Autobahn
      • Twisted
        • PySerial
  2. MCU (Micro Controller Unit)
    • Arduino Board(Vinciduino in my case).
    • Arduino IDE or AVR studio.
  3. Client:
    • Any web server, I use xampp or python to test as localhost

Demo Movie

Learn More

Goto Original


블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Cosm and TMP100

by Fork Robotics



Overview

These posting point out collecting data. Also, this unwieldy mass of data needs to be logged, processed, stored and displayed in a reasonable way for it to be usable. Then, show how to create a feed and upload data reading from sensor an to Cosm via an Arduino Ethernet Shield.

All of the devices around us are starting to become data collection points. Every minute of every day many data points are generated. This unwieldy mass of data needs to be logged, processed, stored and displayed in a reasonable way for it to be usable. The question becomes how to do this. One solution for the DIY community is Cosm (formerly Pachub) that allows us to do just that for free. In this article I’ll show you how to setup an account, create a feed and upload temperature readings from an I2C temperature sensor to Cosm via an Arduino Ethernet Shield.

Materials :

  • Cosm Account
  • Arduino and Ethernet Shield or Arduino Ethernet
  • Breadboard and jumper wires
  • tmp100 (or other I2C temperature sensor) on a breakout board

Setup a Cosm Account

Cosm site is changed to Xively.

If you don’t already have one the first thing you need to do is setup a Cosm Account

  1. Go to https://cosm.com
  2. Click the big blue “Get Started” button
  3. Enter an email, username and password then click the “Sign up” button
  4. You’ll get an email with a link to verify your registration
  5. The link will bring you directly into your account
  6. Click on the big plus button
  7. Select Arduino
  8. Give the new feed a title and tags (optional) and press Create
  9. The Cosm Site will give you a sample sketch to upload data. You only need the three lines that start with:
    A. #define APIKEY
    B. #define FEEDID
    C. #define USERAGENT

Learn More

Goto Original

 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

W5500 Ethernet with POE Mainboard SKU: DFR0342

by DFRobot



Overview

The W5500 Ethernet mainboard is the newest member of the DFRobot Ethernet family. It Is a microcontroller based on the ATmega32u4 and W5500 Ethernet chip with the same footprint as an Arduino Leonardo board, as well as being compatible with most Arduino shields and sensors, making it suitable for many kinds of IOT applications. The W5500 chip is a hardwired TCP/IP embedded Ethernet chip that provides easy internet connection for embedded systems. The board has the TCP/IP stack, 10/1000 ethernet MAC and PHY embedded, allowing internet connectivity in the users application using just the board and nothing else. The W5500 Ethernet mainboard uses a high-efficiency SPI protocol which supports a speed of 80MHZ for high speed network communication. In order to reduce power consumption it also includes WOL (wake on LAN) and power down modes. The board can be powered using a regular VIN, or POE as the power supply. It also integrates a power regulation chip that allows it to work under a complex environment.

Specification

  • Microcontroller: Atmel Atmega32u4 (Arduino Leonardo)
  • External Input Voltage Range (recommended): 7V~20V DC
  • External Input Voltage Range (limit): 6-23V
  • POE Input Voltage: 48V AC/DC (802.3af standard PD device)
  • Digital I/O Pins: 20
  • Analog I/O Pins: 6
  • DC Current per I/O Pin: 40 mA
  • Flash Memory: 32 KB (ATmega32u4) (4KB used by bootloader)
  • SRAM: 2 KB (ATmega32u4)
  • EEPROM: 1 KB (ATmega32u4)
  • Clock Speed: 16 MHz
  • PHY: WIZnet W5500
  • PHY Clock Speed: 25MHz
  • Dimension: 73.5 x 53.5x15mm

Learn More

Goto Original


 

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Sensors_Socket_Processing

by Vellamy



Overview

The project presented here it is a TCP/IP socket system between an Arduino Ethernet Shield and a program running in a laptop elaborated by Processing. To demonstrate a total communication between the client and the server of the TCP/IP socket, I’ve designed a program in which the data sensors are represented in the screen and when a button is pushed, the client or the server respond with a light.

The analog signals captured by Arduino are the signal of a potentiometer, a temperature sensor, a humidity air sensor and a soil moisture sensor. Furthermore, I’ve connected to Arduino three buttons in the digital inputs and three led in the digital outputs. On one hand, the information of the sensors is represented by Processing. When a button is pressed, the lamp of the Processing program changes his color. One button is for the red color, other for the yellow color and another for the green color. On the other hand, there are three buttons in the Processing Program. If you press one of them, you switch on a led for a second on the Sensor Shield.

Materials Component name(figures)

  • Arduino Uno and USB wire (1)
  • Arduino Ethernet Shield (1)
  • Ethernet Cat.5 Crosswire (1)
  • Humidity Sensor. 808H5V5 (1)
  • Potentiometer.10k Ohm (1)
  • Temperature Sensor. MCP9700A (1)
  • Soil Moisture Sensor (1)
  • Buttons (3)
  • Res.: 330 Ohm(3), 10k ohm(3)
  • leds: Red(1), Yellow(1), Green(1)

Learn More

Goto Original


TAG : Arduino, Ethernet, Sensor, W5100, Temperature, Humidity, Potentionmeter, Sensing&Gathering

블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자