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

by Francesco Azzola


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.


  • 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
    void setup() {
    void loop() {
     float h = dht.readHumidity();
     // Read temperature as Celsius (the default)
     float t = dht.readTemperature();
     Serial.print("Humidity: ");
     Serial.print(" %t");
     Serial.print("Temperature: ");
     Serial.println(" *C ");
  3. Register the arduino to Ubidots & Import Ubidots Library to Arduino IDE

    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) 개발자

W5500 Ethernet with POE Mainboard SKU: DFR0342

by DFRobot


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.


  • 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) 개발자

Adafruit Ethernet FeatherWing

by Adafruit


Wireless is wonderful, but sometimes you want the strong reliability of a wire. If your Feather board is going to be part of a permanent installation, this Ethernet FeatherWing will let you add quick and easy wired Internet. Just plug in a standard ethernet cable, and run the Ethernet2 library for cross-platform networking.

Ethernet is a tried-and-true networking standard. It’s supported by every hub and switch, and because there’s a physical connection you don’t have to noodle around with SSIDs, passwords, authentication schemes or antennas. It works great with any of our Feathers, the WIZ5500 chip communicates over SPI plus a single CS pin. The Arduino Ethernet2 library works great, and within a few seconds after connecting, will do the DHCP setup for you. As a nice extra, the RJ-45 jack has both link and activity lights that will light/blink to let you know the current connection status.

Technical Details

  • EagleCAD, Fritzing and datasheet available in the tutorial
  • Product Dimensions: 59.2mm x 22.8mm x 17.5mm / 2.3” x 0.9” x 0.7”
  • Product Weight: 10.0g / 0.4oz

Learn More

Goto Original

블로그 이미지

밤소 MidnightCow

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

How to use WIZnet Chip set such as W5100, W5200, W5300, and W5500 with Basic source code

by MCS electronics


This post introduces how to use WIZnet chip solution such like as W3100A, W5100, W5200, W5300, and W5500 with BASIC source code on BASCOM-AVR & BASCOM-8051.
BASCOM-AVR & BASCOM-8051 are BASIC complier & IDE development tools. These can implement with BASIC source code on WIZnet chip solutions.


  • Syntax W3100A

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, TX= tx, RX= rx , NOINIT= 0|1 [, TWI=address] [, Clock = speed] [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=W3100A] 
  • Syntax W5100

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, TX= tx, RX= rx , NOINIT= 0|1 [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=5100] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] 
  • Syntax W5200

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [,TimeOut=tmOut] [,CHIP=W5200] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] [TXn= tx] [, RXn= rx] 
  • Syntax W5300

    CONFIG TCPIP = int , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [, baseaddress = address] [,TimeOut=tmOut] [,CHIP=W5300] [,INT=imsg] [,NOUDP=noudp] [align=align] [TXn= tx] [, RXn= rx] [SOCKMEM=sockmem] 
  • Syntax W5500

    CONFIG TCPIP = NOINT , MAC = mac , IP = ip, SUBMASK = mask, GATEWAY = gateway, LOCALPORT= port, NOINIT= 0|1 [,TimeOut=tmOut] [,CHIP=W5500] [,SPI=spi] [,INT=imsg] [,CS=cs] [,NOUDP=noudp] [TXn= tx] [, RXn= rx] 

Learn More

Goto Original

블로그 이미지

밤소 MidnightCow

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

freeRTOS and libraries for AVR ATmega with Eclipse IDE

by feilipu


This is a library for AVR ATmega platform such as Arduino, AVRDUDE, and etc. This libraray support uIP Library operated by WIZnet chip such as W5100, W5200, and W5500. This library also support OS environment as FreeRTOS.

This library is very useful for AVR developers who have an experience about uIP stack.


  • Arduino Uno family ATmega328p, Freetronics EtherMega (Arduino Mega2560), and Goldilocks ATmega1284p, scheduling and IO works.
  • Being able to use any Timer on the AVR as the system Tick. In practice this means Timer0 on 328p (Arduino Uno), Timer3 on 2560 (Arduino Mega) and 1284p (Pololu SVP) and Timer2 on 1284p with 32.768kHz watch crystal (Freetronics Goldilocks).
  • Converting all of the relevant libraries to be friendly to a RTOS system. No delay busy-wait loops etc. Everything defers to (is interruptible by) the scheduler when waiting, or is driven from interrupts.
  • Having many finished projects, that are good demonstrations of lots of AVR and freeRTOS capabilities.
  • Having the Sparkfun LCD Shield working properly, with printf string formatting.
  • Having the Rugged Circuits QuadRAM 512kByte and MegaRAM 128kByte RAM extensions working on ATmega2560.
  • Porting ChaN FatF microSD card support for a variety of uSD shield cages.
  • Porting Wiznet W5100 and W5200 drivers for Arduino Ethernet shields.
  • Porting Wiznet and uIP DHCP and HTTP applications, creating options for implementing a basic web server.
  • Properly implementing semaphores for access to resources (ports, interfaces, ADC, LCD).
  • Properly implementing queues for transferring data between tasks (threads).

Learn More

Goto Orignal :


블로그 이미지

밤소 MidnightCow

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


1. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(1)

2. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(2)

3. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(3)

4. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(4)

5. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(5)

6. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(6)

7. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(7)

8. W5500 ioLibrary_BSD를 MCU 8051로 포팅하기(8)


음~~~ 8051 포팅이라!!! (당황하지 말고 팍 쭉~~~)

무엇부터 해야 하나 생각을 정리해 둘 필요가 있다. 차근차근 하나씩 정리해보자.


- 수많은 8051 MCU 중에 무엇을 선택하나 ?

- 8051 개발 환경은 무엇으로 하나?

- Test Board 만들기

- ioLibrary 다운로드

- Porting 시작


1. 수많은 8051 MCU 중에 무엇을 선택하나 ?


8051 MCU는 이미 많이 보편화되어 개발자라면 누구나 익숙한 MCU이다. 각 Vendor마다 조금씩의 특징이 있다. 고속 처리가 가능한 것도 있으며, 다양한 peri를 가지고 있는 것도 있다. 아주 오래 전 Atmel과 Dallas의 8051를 써본 경험이 있긴 하지만, 현재 보유하고 있는 보드는 Silab사의 C8051F380이다. 나도 이녀석은 처음으로 사용해본다. (살짝 긴장되긴 하네^^)

C8051F380의 특징적 제원을 간략히 살펴보면,


High Speed 8051 μC Core
- Pipelined instruction architecture; executes 70% of instructions in 1 or 2 system clocks
- Up to 48 MIPS operation
- Expanded interrupt handler

- 4352 or 2304 Bytes RAM
- 64, 32, or 16 kB Flash; In-system programmable in 512-byte sectors

Digital Peripherals
- 40/25 Port I/O; All 5 V tolerant with high sink current
- Hardware enhanced SPI™, two I2C/SMBus™, and two enhanced UART serial ports
- Six general purpose 16-bit counter/timers
- 16-bit programmable counter array (PCA) with five capture/compare modules
- External Memory Interface (EMIF)


최대 48MIPS 까지 지원한다고 하니 최대 Clock은 48MHz까지 사용할 수 있는 것으로 보인다. 또한 SRAM 역시 4K 이상 지원되며, Code Flash 역시 64KB까지 지원된다. (여기서는 Data 4K, Code 64K 를 사용한다 - Network 응용을 개발하기 위해 넉넉한 크기를 준비). 무엇보다도 중요한 것은 W5500 Access를 위한 SPI Interface를 지원한다는 것. 그 밖의 각종 Peri들이 많이 있으나, USB, 온도센서 및 ADC가 있다는 정도로 알자.

<C8051F380 DK Board>




2. 8051 개발 환경은 무엇으로 하나?


8051 개발환경은 Keil, IAR, sdcc 등 다양하게 존재한다. 하지만, C8051F380은 SiLab사의 MCU인 만큼 SiLab에서 제공하는 Simplicity Studio를 이용하여 개발한다.

먼저 SiLab Homepage에서 Simplicity Stuido 2.0을 다운로드한다.

자신의 OS에 맞는 Simplicity Studio를 다운로드 한 후 설치한다.

설치 및 사용법에 대해서는 자세한 설명은 생략한다. (Silab이나 인터넷 관련 동영상 및 자료가 많이 있으니 참고하시길...)



Simplicity IDE는 Silab 자체 제작 Complier를 사용하지 않고, Keil-C compiler를 사용한다. Silab사의 Install Guide에 따라 Keil-C complier를 설치하고 Silab에 지원하는 License Key를 등록한다. 이로써, 정식 Licence가 등록된 Keil-C complier를 사용할 수 있다.


Simplicity Studio의 가장 큰 장점은 개발 환경 뿐만 아니라, 각종 Datasheet, Application 문서, Example Code 및 개발에 필요한 각종 Resouce 등을 통합 관리하여 항상 최신 정보를 개발자로 하여금 놓치지 않도록 해준다는 것이다.



Keil이나 다른 개발환경을 사용할 경우 C8051F380과같은 Silab Chip들에 대한 Device 정보를 제공하지 않을 수도 있다. 물론 제공하지 않는다고 해서 개발할 수 없는 것은 아니다. 하지만 미리 잘 만들어진 Header, C file 및 각종 Libarary가 있는데 사서 고생할 필요없지 않는가?

Simplicity Sudio를 사용하지 않더라도 우선 설치해주자.

그럼 "C:\SiliconLabs\SimplicityStudio\v2\developer\sdks\si8051\v2\Device" 경로로 Silab에 미리 잘 만들어둔 각종 Header/C 및 Library를 손쉽게 사용할 수 있다.


Simplicity Studio에서 Simplicity IDE Double click하여실행하여 간단한 새로운 Project를 만들어 보자.


Menu>Project>New>Silcon Labs MCU Project... 를 이용하여 앞으로 만들 Project의 제원을 설정해준다.


앞으로 Porting 하게 될 보드는 "C8051F380 Development Kit" 이므로 이것을 선택.


Project 명과 Working directory를 설정한 후 Finish.


C8051F380 용 startup code와 Main 파일이 project에 자동으로 추가되었으며, Toolbar의 망치 아이콘을 눌러 Compile한다.

Error없이 Compile이 잘된다. Compile된 Binary Image를 Silab에서 제공하는 USB Debug Adapter로 Board로 Download해보자.

우선 아래 그림과 같이 USB Debug를 연결한다. (이때 USB 장치가 자동으로 인식되고 Driver가 자동으로 깔린다)


USB Debug를 성공적으로 인식했다면 IDE 에서 풍뎅이 모양 아이콘을 눌러 생성된 이미지를 보드로 다운로드. 보드 다운로드를 성공하면 Break point를 설정하여 원하는 코드를 Debugging할 수 있다. IC 모양 아이콘은 Debugging 없이 보드로 다운로드만 한다.


이것으로 ioLibrary를 포팅할 개발 환경은 준비가 되었다. 다음 시간 WIZ550io와 C8051F380-TB 보드와 연결을 해보자.


                                                                                                                                            NEXT >


블로그 이미지

밤소 MidnightCow

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