Realtime Push Notification Android dengan NodeMCU

Realtime Push Notification Android dengan NodeMCU
930 x 180 AD PLACEMENT

Halo teman – teman semua, pada kesempatan ini DT Production akan memberikan tutorial tentang bagaimana membuat Push Notification yang berjalan di background service smartphone android. dimana pada percobaan kali ini kita akan membuat proyek motion detect menggunakan nodemcu dan sensor pir atau sensor gerak. jadi cara kerja alat ini sangatlah sederhana yaitu ketika sensor mendeteksi adanya pergerakan maka di smartphone kita akan menampilkan push notifikasi secara langsung.

Tentu saja pada proyek kali ini kita akan membuat aplikasi android yang sederhana menggunakan platform Kodular. Kodular merupakan platform untuk kita dapat membuat aplikasi android secara mudah dengan konsep pemrograman puzzle.

Apa saja yang kita butuhkan pada proyek ini ?

930 x 180 AD PLACEMENT
  • 1pcs NodeMCU V3
  • 1pcs Base/Expansion Board NodeMCU v3
  • 1pcs Sensor PIR HC-SR501
  • 3pcs Kabel Jumper Female to Female
  • Adaptor 9v

Teman – teman dapat membeli modul – modul yang akan digunakan pada proyek ini di toko DT Production, dengan pembelian via Tokopedia. silahkan klik tombol berikut.

Part I

Part II

Lampiran

Konfigurasi kontroler dan sensor

File push.php

<?php

if(isset($_POST['app_id'])){
    $app_id = $_POST['app_id'];
    
function sendMessage($id){
    $content = array(
        "en" => 'XXXXXXXXXXX',
        );
    $headings = array(
        'en' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    );
    $fields = array(
        'app_id' => $id,
        'included_segments' => array('All'),
        'data' => array("foo" => "bar"),
        'large_icon' =>"ic_launcher_round.png",
        'contents' => $content,
        'headings' => $headings
        
    );

    $fields = json_encode($fields);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
                                               'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

$response = sendMessage($app_id);
$return["allresponses"] = $response;
$return = json_encode( $return);
print("\n\nJSON received:\n");
print($return);
print("\n");
}
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "xxxxx";
const char* password = "xxxxxxxxxxxx";
String app_id = "xxxxxxxxxxx";

int sensor = 5;
int val = 0;
boolean state = true;
void setup() {
  pinMode(sensor, INPUT);
  Serial.begin(9600);

  while (WiFi.status() != WL_CONNECTED) {

    delay(1000);
    Serial.print("Connecting..");

  }
  Serial.println("Connected");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    val = digitalRead(sensor);
    if (val == HIGH && state) {
      Serial.println("Terdeteksi Pergerakan!!");
      pushNotif();
    } else {
      Serial.println("Aman");
      state = true;
    }
  }
  delay(1000);
}

void pushNotif() {
  if (state) {
    Serial.println("Start");
    HTTPClient http;
    http.begin("http://*******/myapps/push.php");
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    int httpCode = http.POST("app_id=" + app_id);
    delay(100);
    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println(payload);
    }
    state = false;
    delay(1000);
    http.end();
  }
}

930 x 180 AD PLACEMENT

930 x 180 AD PLACEMENT

Programmer & Videographer.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You might also like
930 x 180 AD PLACEMENT