Berkenalan dengan Arduino MKR1000 WiFi

Indobot Update

Berkenalan dengan Arduino MKR1000 Wifi

 

Arduino merupakan produk yang sering kita temukan sebagai pembelajaran mikrokontroler. Hal ini karena mudahnya penggunaan Arduino dengan device pelengkap lainnya. Tak jarang, Arduino juga kita jadikan sebagai alat otomatis dengan penerapan langsung. Arduino memiliki sifat yang open source dengan komponen utamanya adalah AVR dari perusahaan Atmel. Hal inilah yang membuat arduino dapat diubah-ubah fungsi kendalinya hanya dengan program yang dituliskan di komputer/PC bahkan di smartphone. 

Arduino terus dikembangkan menjadi beberapa jenis yang tentunya dapat digunakan sesuai dengan fungsinya masing-masing. Mulai dari Arduino Uno, Mega, Nano, Leonardo, mikro, mini, due, Ethernet, dan lain sebagainya.

Salah satu produk terbaru dari Arduino adalah Arduino MKR1000 Wifi. Seperti namanya, arduino jenis ini dilengkapi dengan fasilitas wifi. Arduino MKR1000 dirancang sebagai solusi praktis dalam penggunaan koneksi wifi. Jika sebelumnya, penggunaan Arduino yang harus dikoneksikan dengan wifi, dibutuhkan perangkat tambahan seperti ESP8266. Pada Arduino MKR1000 sudah tidak membutuhkannya lagi, karena perangkat ini sudah terpasang pada chipnya langsung. Chip yang digunakan dalam hal ini adalah Atmel ATSAMW25 SoC (System on Chip), yang merupakan bagian dari keluarga SmartConnect dari perangkat Atmell Wireless dengan rancangan khusus untuk perangkat IoT (Internet of Things).

ATSAMW25 terdiri dari 3 bagian utama, yaitu:

  1. SAMD21 Cortex-M0+ 32bit low power ARM MCU
  2. WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi
  3. ECC508 CryptoAuthentication

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

 

Antena PCB tunggal juga termasuk dalam ATSAMW25.

Desain dari Arduino MKR1000 sudah menyediakan Li-Po yang dapat terhubung dengan baterai atau 5V eksternal yang dapat digunakan untuk mengisi daya baterai. Jadi ketika Arduino MKR1000 dihubungkan dengan baterai Li-Po dan kemudian dihubungkan juga dengan daya 5V eksternal, daya baterai juga akan secara otomatis terisi (charger). Arduino MKR1000 memiliki daya komputasi 32 bit, selain itu arduino ini juga memiliki wifi jenis Cryptochip dengan daya rendah untuk komunikasi. Sehingga memungkinkan untuk dihubungkan ke internet tanpa mengurangi performa arduino.

Berikut ini adalah spesifikasi dari Arduino MKR1000.

Jenis Mikrokontroler : SAMD21 Cortex-M0+ 32bit low power ARM MCU

Power Supply (USB/VIN) : 5V

Baterai Pendukung : Li-Po single cell, 3.7v, 700mAh

Tegangan Operasi : 3.3V

Digital I/O Pins : 8

Pin PWM : 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3- atau 18, A4- atau 19)

UART : 1

SPI : 1

I2C : 1

Pin analog Input : 7 (ADC 8/10/12 bit)

Pin Alalog Output : 1 (DAC 10 bit)

Interrupt Eksternal : 8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 – or 17)

Arus DC per pin I/O : 7 mA

Flash Memory : 256 KB

SRAM : 32 KB

EEPROM : tidak ada

Clock Speed : 32.768 kHz (RTC), 48 MHz

LED_BuiltIn : 6

Ukuran : 61.5 mm x 25 mm

Berat : 32 gr

baca juga: Inilah Jenis-Jenis Arduino

Bagaimana? tertarik untuk menggunakan Arduino MKR1000?

Nah bagi teman-teman yang sudah punya Arduino MKR1000, beikut ini adalah cara untuk instalasinya.

Arduino MKR1000 tergolong produk baru, sehingga ketika kita ingin menggunakannya, pilihan board  Arduino MKR1000 masih belum disediakan pada aplikasi Arduino IDE. Jadi memang harus install terlebih dahulu di board manager. ikuti langkah berikut ini untuk instalasi Arduino MKR1000.

Buka aplikasi arduino IDE di PC/laptop.

Klik Tools – board – board Manager.

Berikan kata kunci pada kolom pencarian, contohnya MKR.

Pilih Arduino SAMD Boards untuk mendapatkan beberapa board, salah satunya adalah Arduino MKR1000.

Jika sudah terinstall, hasilnya dapat dilihat pada board yang disediakan oleh arduino IDE sudah tercantum Arduino MKR1000 untuk dapat melakukan pengiriman program ke arduino MKR1000.

baca juga: ESP8266, Wemos D1 Cara Monitoring Sensor dengan Android Internet

Pengecekan koneksi dapat kita lakukan dengan menggunakan examples dari library WiFi101. Download dan install terlebih dahulu untuk library WiFiNINA di sini  https://github.com/arduino-libraries/WiFi101.

Coba buka File – Examples – WiFi 101 – AP_SimpleWebServer. Maka akan tersedia program untuk mengendalikan LED dengan menggunakan WebServer.
 

#include <SPI.h>
#include <WiFi101.h>
#include "arduino_secrets.h" 
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;                // your network key Index number (needed only for WEP)

int led =  LED_BUILTIN;
int status = WL_IDLE_STATUS;
WiFiServer server(80);

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("Access Point Web Server");

  pinMode(led, OUTPUT);      // set the LED pin mode

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi 101 Shield not present");
    // don't continue
    while (true);
  }

  // by default the local IP address of will be 192.168.1.1
  // you can override it with the following:
  // WiFi.config(IPAddress(10, 0, 0, 1));

  // print the network name (SSID);
  Serial.print("Creating access point named: ");
  Serial.println(ssid);

  // Create open network. Change this line if you want to create a WEP network:
  status = WiFi.beginAP(ssid);
  if (status != WL_AP_LISTENING) {
    Serial.println("Creating access point failed");
    // don't continue
    while (true);
  }

  // wait 10 seconds for connection:
  delay(10000);

  // start the web server on port 80
  server.begin();

  // you're connected now, so print out the status
  printWiFiStatus();
}


void loop() {
  // compare the previous status to the current status
  if (status != WiFi.status()) {
    // it has changed, so update the variable
    status = WiFi.status();

    if (status == WL_AP_CONNECTED) {
      byte remoteMac[6];

      // a device has connected to the AP
      Serial.print("Device connected to AP, MAC address: ");
      WiFi.APClientMacAddress(remoteMac);
      printMacAddress(remoteMac);
    } else {
      // a device has disconnected from the AP, and we are back in listening mode
      Serial.println("Device disconnected from AP");
    }
  }
  
  WiFiClient client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println("new client");           // print a message out the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there are bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        if (c == '\n') {                    // if the byte is a newline character

          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();

            // the content of the HTTP response follows the header:
            client.print("Click <a href=\"/H\">here</a> turn the LED on<wp-br>");
            client.print("Click <a href=\"/L\">here</a> turn the LED off<wp-br>");

            // The HTTP response ends with another blank line:
            client.println();
            // break out of the while loop:
            break;
          }
          else {      // if you got a newline, then clear currentLine:
            currentLine = "";
          }
        }
        else if (c != '\r') {    // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }

        // Check to see if the client request was "GET /H" or "GET /L":
        if (currentLine.endsWith("GET /H")) {
          digitalWrite(led, HIGH);               // GET /H turns the LED on
        }
        if (currentLine.endsWith("GET /L")) {
          digitalWrite(led, LOW);                // GET /L turns the LED off
        }
      }
    }
    // close the connection:
    client.stop();
    Serial.println("client disconnected");
  }
}

void printWiFiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi 101 Shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
  // print where to go in a browser:
  Serial.print("To see this page in action, open a browser to http://");
  Serial.println(ip);

}

void printMacAddress(byte mac[]) {
  for (int i = 5; i >= 0; i--) {
    if (mac[i] < 16) {
      Serial.print("0");
    }
    Serial.print(mac[i], HEX);
    if (i > 0) {
      Serial.print(":");
    }
  }
  Serial.println();
}

baca juga: Pengenalan dan penjelasan tentang bagian pada Arduino Uno R3

masukkan SSID dan Password. kemudian setelah program sudah terupload, buka Serial Monitor untuk melihat sudah terkoneksi dengan hotspot kita atau belum, jika sudah, bisa kita lanjutkan dengan menyalin IPAddress yang muncul pada serial monitor ke Website untuk mengendalikan LED.

Silakan mencoba.


Mau belajar elektronika dasar? Arduino? atau bahkan Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp