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

Arduino + WebSockets II

by Daniel Garrido


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:

Please read the first part of this serie:

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


by Teleduino


Teleduino converts your ethernet enabled Arduino into a powerful and versatile tool for interacting with devices over the internet. Not only that, but it makes it quick and easy.

Teleduino is now available for the Arduino Mega range of boards!

Once your Teleduino is configured, it automatically connects itself to the Teleduino server when powered on. The Teleduino server translates instructions received from the internet into actions on the Teleduino device.

Using the Teleduino platform, you can perform the following tasks with your Arduino via the simple web service:

  • Reset, ping, get uptime, get free memory.
  • Define pin modes, set digital outputs, set analog outputs, read digital inputs, read analog inputs, or read all inputs with a single API call.
  • Define up to 2 ‘banks’ (4 for the Mega) of shift registers. Each ‘bank’ can contain up to 32 cascaded shift registers, giving a total of 512 digital outputs (1024 for the Mega).
  • Shift register outputs can be set, or merged, and expire times can be set on merges (you could set an output(s) high for X number of milliseconds).
  • Define, and read and write from serial port (4 for the Mega).
  • Read and write from EEPROM.
  • Define and position up to 6 servos (48 for the Mega).
  • Interface with I2C (TWI) sensors and devices.
  • Set preset values for the above functions, which get set during boot. Preset values are stored in the first 178 bytes of the EEPROM (413 for the Mega).


Learn More

Goto Original


블로그 이미지

밤소 MidnightCow

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

Measure temperature on the web with Arduino Ethernet and DS18B20 sensor

by mohamant


This porject have integrated a webserver to Arduino Ethernet with a temperature sensor DS18B20.

This intstructable is refer to and is added to internet connectivity with Arduino Ethernet.

This project is explained by the following 3 steps.

  • Step 1: Arduino+Temperature sensor Wiring
  • Step 2: Compile & upload the code
  • Step 3: My final product


Learn more

Goto original :

Enhanced this intructable :


블로그 이미지

밤소 MidnightCow

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

HTTP SD Card File Server on WIZwiki-W7500 platform

WIZwiki-W7500 platform과 ARMembed Web-Compiler를 이용하여, Web-Browser 상에서 SD File 목록을 볼 수 있도록 하는 프로그램을 작성해 보자.

Import Program on ARMmbed developer site

mbed 사이트에는 다양한 Example이 존재한다. 직접 모든 code를 작성할 수 있지만, Open source를 활용하면 손쉽고 빠르게 원하는 프로그램을 구현할 수 있다.

Search a program

mbed 검색에서 우리가 원하는 응용프로그램을 Key Word는 HTTP와 SD로 검색해 보자.
다행히 원하는 프로그램을 다음과 같이 볼 수 있다. 자 Import 하자.

주의  : 프로그램 작성 시 검색이 되었지만, 현재 검색이 되지 않는 관계로 아래 URL을 참조하자.


Import program

해당 Program을 성공적으로 Import 했을 경우 다음과 같이 Web-Compiler의 Program Workspace 창에 나타난다.


Select a platform

ARMmbed Web-Compiler의 우측 상단의 [mbed LPC1768] icon을 클릭하고, [Add Platform]을 눌러 Platfrom 목록에서 WIZwik-W7500 Platform를 찾아 선택하자.

WIZwiki-W7500 Platform을 선택할 경우 Web-Browser의 우측 창에 다음과 같이 나타난다.
[Add to your mbed Compiler] 버튼이 없을 경우 아래 Example programs 중 하나를 Import하면 WIZwiki-W7500 Platform을 당신의 mbed-Compiler에 추가할 수 있다.


How to port mbed-LPC1768 into WIZwiki-W7500

mbed-rtos 는 현재 사용하지 않는 라이브러리이므로 삭제(우 클릭 후 delect 선택)한다. 또한 lwip 기반의 EthernetInterface Library를 WIZnetInterface Library로 변경(삭제 후 추가)한다.

WIZnetInterface Library는에서 Import 할 수 있다. (현재 검색이 잘 안되니, URL 참조).
WIZnetInterface Library를 Example HTTP_SD_Server_K64F 프로그램으로 import 한다.


Compile HTTP_SD_Server_K64F example for WIZwiki-W7500

지금까지 잘 따라 왔다면, 다음과 같이 Platform과 Library를 성공적으로 변경했을 것이다. 자 이제 과감하게 컴파일을 해보자.

[Compile] 버튼을 누르자. 다음과 같은 Error가 발생한다.

Can not open source input file "device.h" : No such file or directory "#include "device.h""

이 Error는 mbed Library가 Update 되지 않기 때문에 발생한다. 이를 해결하기 위해서는 [Program Workspace] 창의 “mbed” Library를 더블클릭하고, [Library Details] 창의 “Update” 버튼을 눌러 mbed Library를 Update한다.

다시 컴파일하자. 그럼 SDFileSystem 에서 4개, eth.init()에서 1개 총 5개의 Error가 발생한다.

4 Error : SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
1 Error : eth.init();



//SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F
SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "sd"); // WIZwiki-W7500
  • Ethernet Initialization
    eth.init() 대신 DHCP를 사용할 경우 eth.init(MAC) 를 사용하고, Static IP를 사용할 경우 eth.init((uint8_t*)MAC,IP,MASK,GATEWAY)를 사용한다. 여기서는 static IP를 사용한다.
#define MAC     "\x--\x--\x--\x--\x--\x--"   // Should be Replaced -- with your MAC
#define IP      ""             // Should belong with your lan.
#define MASK    ""
#define GATEWAY ""
//eth.init((uint8_t*)MAC);    // Use DHCP for WIZnetInterface
eth.init((uint8_t*)MAC,IP,MASK,GATEWAY);  //IP,mask,Gateway


Upload the binary image on WIZwiki-W7500

WIZwiki-W7500은 CMSIS-DAP를 지원하여, W7500의 Code flash가 USB storage로 인식된다. Web-compiler에서 compile을 성공적으로 마쳤을 경우, Binaray Image를 Download할 수 있게 된다. 이때, Local Directory로 저장한 후 해당 Binary image를 WIZwiki-W7500의 USB storage(MBED)로 copy 하거나, image를 바로 MBED로 저장하면 된다.



해당 Project는 아래 URL이나 WIZwiki-W7500 Example programs에서 Import할 수 있도록 만들어 두었다.
동작 상태를 확인하기 위해 Ticker를 활용하여 LED1 LED2를 On/oFF toggle하는 코드도 추가되었다.




Connect to WIZwiki-W7500 through Web-Browser

  • Terminal

  • Web-Browser


Click [img] directory


Click [WIZnet_log_IoT.png] file

블로그 이미지

밤소 MidnightCow

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