Perbedaan Ethernet Shield dan NodeMCU ESP8266
Module Microcontroller

Pada postingan sebelumnya sudah dijelaskan pengertian dari IOT, kali ini saya akan mencoba menjelaskan board yang digunakan untuk membangun IOT. Ada banyak board yang banyak digunakan untuk membangun IOT diantaranya:

  • C.H.I.P

    C.H.I.P merupakan board yang cocok untuk mengembangkan proyek IOT dilengkapi dengan WIFI, Bluetooth 4.0, dan kapasitas penyimpanan 4GB, 1GHz Processor, 512 MB RAM serta menggunakan OS Linux
  • TESSEL2

    Tessel 2 merupakan platform yang digunakan untuk membangun robot dan IoT. Tessel 2 memanfaatkan semua libraries Node.JS untuk membuat proyek.
  • Particle (Photon and Electron)

    Particle (Photon and Electron) menyediakan fitur bawaan WiFi, cellular, Bluetooth
  • Flutter Wireless

    Flutter Wireless merupakan radio board yang memiliki processor ARM, komunikasi nirkabel yang sangat kuat, built-in battery charging, onboard security chip, dan terdapat wireless sensor networks
  • ESP8266

    ESP8266 merupakan microchip WiFi yang dilengkapi dengan TCP/IP dan menggunakan micro-controller UAR. ESP memiliki 1 MiB built-in flash yang memungkinkan perangkat chip tunggal dapat terhubung ke WiFi
  • Arduino Genu

    Arduino merupakan micro controller dual-inline-package (DIP) ATmega328 AVR.

Untuk membuat modul IOT saya mencoba menggunakan Arduino Mega + Ethernet Shield dan NodeMCU ESP8266, kedua device tersebut memiliki banyak perbedaan

  1. NodeMCU ESP8266
    • Pin analog hanya ada satu
int buzzer = A0;
  • Deklarasi pin menyesuaikan dengan nama pin yang terdapat pada board
int led1 = 15; // GPIO14
int led2 = 14; // GPIO15
int led3 = 12; // GPI012
int led4 = 4 ; // GPI013
int led5 =  5; //GPIO16

atau

#define led1  D4
#define led2  D5
  • Jika ingin menambahkan sensor harus menambah tegangan karena tegangan yang terdapat pada ESP8266 hanya 3v
  • Library yang digunakan pada ESP8266
#include <ESP8266WebServer.h>
#include <ESP8266WiFi.h>
#include <Wire.h>
  • Deklarasi server port
ESP8266WebServer webServer(80);
  • Deklarasi koneksi WiFi yang digunakan
const char* ssid = "ssid_name";
const char* password = "ssid_password";

untuk memberi IP Statik

IPAddress ip(10,4,128,33); 
IPAddress gateway(10,4,128,1); 
IPAddress subnet(255, 255, 252, 0);

pada fungsi setup

Wire.begin(); // Untuk memulai web server
WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  • Konfigurasi get parameters menggunakan perintah Arg
  1. Arduino Mega + Ethernet Shield
    • Terdapat lebih dari satu pin analog
int buzzer = A0;
int solenoid = A1;
Ultrasonic ultrasonic(A3, A2);
  • Deklarasi pin disesuaikan dengan urutan pin yang terdapat pada board
int led1 = 3;
int led2 = 4;
int led3 = 5;
int led4 = 6;
  • Tidak perlu menambahkan tegangan jika ingin memasang sensor tetapi jika akan menambah device yang memiliki tegangan lebig dari 5v harus ditambah tegangan lagi
  • Library yang digunakan pada Ethernet Shield
#include <SPI.h>
#include <Ethernet.h>
#include <WebServer.h>
#include <EEPROM.h>
  • Deklarasi server port
WebServer webserver(80);
  • Deklarasi koneksi ethernet
static uint8_t ip[] =           { 10,4,126,163 };
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

pada fungsi setup

Ethernet.begin(mac, ip);
webserver.begin(); // untuk memulai web server
  • Konfigurasi get parameters
void switchReq(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  URLPARAM_RESULT rc;
  char name[32];
  char value[32];
  int id = -99; //!

  server.httpSuccess();

  while (strlen(url_tail))
  {
    rc = server.nextURLparam(&url_tail, name, 32, value, 32);
    if (rc != URLPARAM_EOS)
    {
      if (strcmp(name, "id") == 0)
      {
        id = atoi(value);
        Serial.print(F("id="));
        Serial.println(id);
      }

      if(id !=-99)
      {
        if (strcmp(name, "action") == 0)
        {
          Serial.print(F("action="));
          Serial.println(value);

          if(strcmp(value, "0") == 0)
          {
            server.print(F("OFF"));
  
            Serial.println(F("OFF"));
            toggleOff(id);
          }
          else if(strcmp(value, "1") == 0)
          {
            server.print(F("ON"));
            
            Serial.println(F("ON"));
            toggleOn(id);
          }
        }
      }
      
    }
  }
}

Supaya jaringan stabil maka saya menyarankan menggunakan arduino + ethernet shield, selain itu juga walaupun menggunakan kabel LAN namun perangkat ini juga dapat dikontrol dari jarak jauh.
Sekian dulu pengenalan perangkat IOTnya


Referensi:

https://iotboys.com/10-diy-development-boards-for-iot-in-2018
https://www.amazon.in/C-H-I-P-Computer-Development-Board/dp/B01N677869
https://tessel.io/
https://techtutorialsx.com/2016/10/22/esp8266-webserver-getting-query-parameters/

Written by rdewi on Jun 12 2019, 10:09 AM.
User
Projects
None
Subscribers
None