Translate

Robot Lengan / ARM dan Monitor Suhu LM35 BLYNK (IOT)

Robot Lengan / ARM dan Monitor Suhu LM35 BLYNK (IOT)


       Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuat alat yang bisa mengendalikan robot lengan dan juga monitoring suhu via blynk, alat ini menggunakan nodemcu dan arduino sebagai kontrollernya, untuk lebih jelasnya berikut adalah skema dan programnya. 



a. Skema Alat





b. Program Arduino IDE Robot Lengan

#include<Wire.h>
#include<Servo.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;

int a;
int b;
int c;
int d;
int e;
int btset = 6;
int btsetx;

void setup(){
myservo1.attach(7);
myservo2.attach(9);
myservo3.attach(10);
myservo4.attach(11);
pinMode(btset,INPUT_PULLUP);

 myservo1.write(40);
 myservo2.write(60);
 myservo3.write(130);
 myservo4.write(150);
 delay(3000);
}

void loop(){

btsetx = digitalRead(btset);

//memanen
if(btsetx == 0){ 
lepas();  
kanan();  
turun();
maju();
japit();
mundur();
naik();

kiri();  
turun();
maju();
lepas();
mundur();
naik();
}

//menanam
if(btsetx == 1){
japit();
turun();
maju();
mundur();
naik();     
kananx();
turun();
maju();
mundur();
naik();
tengahx();  
turun();
maju();
mundur();
naik();
kirix();
}

}

void kananx(){
  for(a=40;a<=80;a++){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void tengahx(){
  for(a=80;a<=120;a++){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void kirix(){
  for(a=120;a>=40;a--){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void kanan(){
  for(a=40;a<=120;a++){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void kiri(){
  for(a=120;a>=40;a--){
  myservo1.write(a);
  delay(50);
  }
  return;
}

void mundur(){
  for(b=130;b>=60;b--){
  myservo2.write(b);
  delay(50);
  }
  return;
}

void maju(){
  for(b=60;b<=130;b++){
  myservo2.write(b);
  delay(50);
  }
  return;
}

void turun(){
  for(c=130;c>=90;c--){
  myservo3.write(c);
  delay(50);
  }
  return;
}

void naik(){
  for(c=90;c<=130;c++){
  myservo3.write(c);
  delay(50);
  }
  return;
}

void japit(){
  for(e=150;e>=120;e--){
  myservo4.write(e);
  delay(50);
  }
  return;
}

void lepas(){
  for(e=120;e<=150;e++){
  myservo4.write(e);
  delay(50);
  }
  return;
}



c. Program Arduino IDE Monitor Suhu

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
 
    // You should get Auth Token in the Blynk App.
    // Go to the Project Settings (nut icon).
    char auth[] = "gjghgjThghfxfxdaklhhbhjbhhvGHGhjV";
    char ssid[] = "myhotspothp";
    char pass[] = "1234567890";

    int dataadc;
 
    float suhu;
    int tempPin = A0;   //Output lm35 ke A0 dan LED ke pin D4
 
    SimpleTimer timer;
 
    void setup()
    {
      Serial.begin(9600); // See the connection status in Serial Monitor
      Blynk.begin(auth, ssid, pass);
 
      // Setup a function to be called every second
      timer.setInterval(1000L, sendUptime);
    }
 
    // that you define how often to send data to Blynk App.
    void sendUptime()
    {
     // shows the value temp on virtual pin 10
      Blynk.virtualWrite(V6, suhu);
    }
 
    void loop()
    {
      Blynk.run(); // Initiates Blynk
      timer.run(); // Initiates SimpleTimer
   
       dataadc = analogRead(tempPin);
       suhu = dataadc * (3.2 / 1023.0) * 100.0;
   
    }

    

d. VIDEO HASILNYA





Monitoring Input Relay LDR dan SMS Gateway + RTC

 Monitoring Input Relay LDR dan SMS Gateway + RTC


          Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan relay sebagai input untuk mengaktifkan sms, jadi jika sensor ldr terkena suatu kondisi tertentu maka akan melakukan sms ke nomer yang dituju. untuk lebih jelasnya berikut adalah program dan komponenya. 
 
 
 
a. Minimum System ATMega328 / Arduino Uno




b. Modul SIM900A




c. Relay Input LDR





d. Program Arduino IDE

#include <SD.h>
#include <SPI.h>
#include <DS3231.h>
#include <Wire.h>
#include "SIM900.h"
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
#include <stdlib.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <stdlib.h>
#define DS3231_I2C_ADDRESS 0x68
#include "sms.h"
SMSGSM sms;
File myFile;

DS3231  rtc(SDA, SCL);
int pinCS = 5; // Pin 10 on Arduino Uno

int pinin1 = 8;
int pinin2 = 9;
int pinin1x;
int pinin2x;
int tanda1 = 0;
int tanda2 = 0;
int cek = 0;
const int chipSelect = 10;
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup() {
   if (gsm.begin(2400)) {
          //Serial.println("\nstatus=READY");
          started = true;
     } else //Serial.println("\nstatus=IDLE");
     
     if(started) {
          //Enable this two lines if you want to send an SMS.
          if (sms.SendSMS("085123123123", "Alat Ready"));
     }
 
  lcd.begin(); //set lcd i2c
  lcd.noCursor(); //biar gak ada cursor di lcd
  lcd.clear(); //clear lcd
  lcd.setCursor(0, 0);
  lcd.print("LOADING...");
  Serial.begin(9600);
  pinMode(pinCS, OUTPUT);
   pinMode(pinin1,INPUT_PULLUP);
  pinMode(pinin2,INPUT_PULLUP);
 
  Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     // SD Card Initialization
 
  if (SD.begin())
  {
    Serial.println("SD card is ready to use.");
  } else
  {
    Serial.println("SD card initialization failed");
    return;
  }
     lcd.clear();
  rtc.begin();    
}

void loop() {
rtc.begin();
    
pinin1x = digitalRead(pinin1);
pinin2x = digitalRead(pinin2);

lcd.setCursor(0, 0);
lcd.print(rtc.getTimeStr());
lcd.print("                           ");

lcd.setCursor(0, 1);
lcd.print(pinin1x);
lcd.print("/");
lcd.print(pinin2x);

if((pinin1x == 0)&&(tanda1 == 0)){
gsm.begin(2400);  
if (sms.SendSMS("085123123123", "switch status relay1 ON"));
tanda1 = 1;
//simpan();
}

if((pinin1x == 1)&&(tanda1 == 1)){
gsm.begin(2400);   
if (sms.SendSMS("085123123123", "switch status relay1 ON"));
tanda1 = 0;
//simpan();
}

if((pinin2x == 0)&&(tanda2 == 0)){
gsm.begin(2400);   
if (sms.SendSMS("085123123123", "switch status relay1 ON"));
tanda2 = 1;
//simpan();
}

if((pinin2x == 1)&&(tanda2 == 1)){
gsm.begin(2400);   
if (sms.SendSMS("085123123123", "switch status relay1 ON"));
tanda2 = 0;
//simpan();
}

delay(1000);

}

/*
 void simpan(){

  myFile = SD.open("coba.txt", FILE_WRITE);
  if (myFile) {    
    myFile.print(rtc.getTimeStr());
    myFile.println("                 ");    
    
    if(pinin1x == 1){
  myFile.println("RELAY1 ON");
  }

  if(pinin1x == 0){
  myFile.println("RELAY1 OFF");
  }

  if(pinin2x == 1){
  myFile.println("RELAY2 ON");
  }

  if(pinin2x == 0){
  myFile.println("RELAY2 OFF");
  }
    myFile.close(); // close the file
  }
  // if the file didn't open, print an error:
  else {
    Serial.println("error opening test.txt");
  }
   
  lcd.setCursor(0,0);
  lcd.print("saving.....");
  delay(1000);

}
*/


e. VIDEO HASILNYA
 


   

Tutorial Modul ESP-32 Blynk Monitoring ADC (DOIT ESP32 DEVKIT V1)

Tutorial Modul ESP-32 Blynk Monitoring ADC (DOIT ESP32 DEVKIT V1)


       Pada kesempatan yg berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara mengakses modul esp32 yang memiliki kelebihan dibanding modul nodemcu esp8266 yaitu memiliki jumlah pin ADC yang lebih dari satu sehingga sangat tepat digunakan untuk monitoring sensor analog yg jumlahnya lebih dari satu. untuk lebih jelasnya berikut adalah skema dan kodingnya. library blynk bisa didownload di sini link.



a. Pin Modul ESP-32 
sumber gambar : link 




b. Skema





c. Program Arduino IDE

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

BlynkTimer timer;
int dataadc1;
int dataadc2;
 
char auth[] = "gfhg67gfhgchg989hgffhg43gfh545gjh";
char ssid[] = "myhotspotku";
char pass[] = "123456789";

void senddata() {
    Blynk.virtualWrite(V4, dataadc1);
    Blynk.virtualWrite(V5, dataadc2);
}

void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(1000L, senddata);
}

void loop() {

  dataadc1 = analogRead(34);
  dataadc2 = analogRead(35);
 
  Blynk.run();
  timer.run();
}



d. VIDEO HASILNYA