VFD sebagai Amplifier Bagian 2

wp_20170107_21_02_36_pro

lanjutan dari tulisan sebelum nya https://purwanto1987.wordpress.com/2017/01/06/vfd-sebagai-amplifier

Percobaan VFD-AMP 😀 . Tube amplifier yg sangat murah-meriah sangat kere-hore gak sampi 200rb (IDR) 😀 karna mengunakan tabung Vacuum Fluorescent Display. secara fungsional VFD ini bisa menguatkan sinyal audio secara struktur sangat mirip tabung Direct Heated Triodes.

IMPRESI SEMENTARA
Mirip tabung pada umum nya warm, dan yg sy coba ini punch nada rendah nya sangat enak dan pulen 😀

KELEMAHAN
Karna panjang nya filamen, VFD ini akan menghasilkan suara aneh ketika terkena getaran 😀

SEKEMA
Sekema nya cukup simpel, VFD ini perlu buffer pada out nya agar dapat mendrive headphone 32ohm atau yg lain nya.

15844694_1461784327166393_1621940208823674474_o

Penulis mendapatkan tabung VFD yg cukup kecil ketaimbang VFD pada tulisan sebelum nya, bila diamati VFD ini seperti nya untuk VCR jaman dulu, penulis mendapatkan VFD ini dalam keadaan BARU, kaki-kaki nya masih panjang. berikut penampakan setelah di rakit

wp_20170108_006

wp_20170108_003

fosfor pada VFD akan menyala disisi negatif filamaen

wp_20170108_009

Video Percobaan 😀

Ditulis dalam Audio

VFD sebagai Amplifier

15895619_1458490310829128_6858828672812673257_o

VFD atau Vacuum Fluorescent Display hakekat nya digunakan untuk diplay suatu perangkat elektronika pada jaman dulu sebelum LED berkembang pesat seperti saat ini, tetapi sebagain masih ada yg mengunakan nya. secara struktural VFD terdiri dari Andoda, Grid dan Katoda( merangkap filamen ) bila dilihat secara struktur mirip tabung triode.

Struktur VFD :
f2zahhoiscbgnj8-large

Struktur triode type 300B dimana katoda merangkap sebagai filamen, mirip VFD
300b-tube-pinout-diagram

untuk percobaan penulis mengunakan VFD bekas mesin kasir, dengan harga yg murah VFD bisa menjadi tabung trioda dan dapat menguatkan sinyal audio

15874733_1459181757426650_2490718916785346842_o

15875156_1458490320829127_2494296607914321342_o

dari pengukuran sementara dengan input 1KHz 1Vpp didapat out 6Vpp yg artinya penguatan nya 6x, sumeber tegagan 30Vdc tegagan filamen 3Vdc. Bersambung ………

Ditulis dalam Uncategorized

My cMoy + Class A IRF610

15267607_1420317864646373_270985972447229219_n

15326258_1415808495097310_8047423102028747530_o

Ditulis dalam Uncategorized

My cMoy Headphone Amplifier OPA837

14047145_1313663541978473_3546628736167516665_o

13995624_1313663545311806_7902421406000963880_o

13923889_1309779199033574_7579939952763930627_o

13914000_1307958145882346_7849737361849356289_o

14115579_1318103278201166_5535475609441321521_o

Ditulis dalam Uncategorized

My cMoyBB Headphone Amplifier 2016

51103152_41e56ef2-679b-4377-8172-a1a472679490

Cmoy adalah headphone amplifier dibuat secara “DIY Audio” yang paling populer karena simple dan suara nya cukup bagus.

cmoybb4

WARNING
Kebanyakan kit cMoy mengunakan Virtual Ground, usahakan antara Negatif Power Suplai dengan Ground Input dan Output tidak menjadi satu baik secara langsung ataupun secara Ground Loop.

SEKEMA LENGKAP

cmoybb

Panduan Singkat:

  • set potensio dalam keadaan minimum
  • Hubungkan batrai 9V ke kit Cmoy
  • kabel Merah untuk (+) ada tanda di PCB
  • kabel Hitam untuk (-) ada tanda di PCB
  • hubungkan kabel saklar ON/OFF boleh terbalik
  • hubungkan input dengan sumber suara dengan kabel aux 3.5mm
  • hubungkan out dengan headphone
  • putar volume dengan kekerasan yg diinginkan
  • bila bass kurang nendang bisa mengaktif kan saklar bass boost yg ada dibelakang konektor 3.5mm masing2 untuk kanal L dan R

CONTOH PEMASANGAN

wp_20161215_022

PEMBELIAN https://www.tokopedia.com/100mhz/kit-cmoy-head-amp-headphones-amplifier-3ch

Ditulis dalam Audio

Class-A Mosfet Headphone Amp

screenshot-from-2016-11-30-08-54-22

wp_20161128_019

wp_20161128_018

Ditulis dalam Audio, Uncategorized

Monitoring Suhu Dan Kelembapan Berbasis Web 2

Kali ini penulis akan membuat ulang contoh aplikasi monitoring suhu berbasis web dari tulisan penulis sebelum nya https://purwanto1987.wordpress.com/2014/05/17/monitoring-suhu-dan-kelembapan-berbasis-web/ menjadi lebih aplikatif dan menarik seperti terlihat pada SS berikut.

screenshot-from-2016-11-02-11-24-04


Penulis tidak akan basa-basi apalagi menjelaskan DASAR Ini dan Itu nya silahkan cari via Google OK jaman sudah cangih !!. Penulis berasumsi pembaca mengerti walaupun sedikit algoritma pemrograman, NodeMCU, Arduino, Web Server, PHP, MYSQL, HTML, CSS dan JavaScript.
😀 😀

Hardwear yg penulis gunakan cukup sederhana berupa modul NodeMCU, sensor suhu dan kelembapan DHT21.

wp_20161031_012

cara kerja nya seperti IoT (Internet of Thing) yg sedang buming saat ini, hanya saja penulis buat tanpa koneksi internet alias main di LAN ato penulis menyebut nya LAN of Thing ha ha ha 😀 walau begitu cara kerja ya tetap sama, Hardwear mengirim data melalui HTTP, MQTT atau protokol lain nya ke WEB SERVER (PHP + MYSQL) kemudian data yg tersimpan dapat di View dari Web Browser dari mana saja asalkan terhubung satu jaringan baik LAN ataupun Internet tergantung kebutuhan nanti nya.

Pertama kita buat koding untuk NodeMCU mengunakan IDE Arduino dan pastikan bahwa IDE Arduino sudah suport dengan ESP2866 :

arduino

Berikut koding sederhana pada NodeMCU, disini NodeMCU dalam mode http Client.

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266HTTPClient.h>
#include <DHT.h>

#define USE_SERIAL Serial

// Pin data yg terhubug DHT dan NodeMCU
// dan Type DHT yg digunakan
DHT dht(2, DHT21);

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  USE_SERIAL.begin(115200);

  // isi dengan SSID dan Password
  // wifi yg digunakan
  WiFi.begin("TP-LINK", "12345678");

  USE_SERIAL.println("");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    USE_SERIAL.print(".");
  }
  USE_SERIAL.println("");
  USE_SERIAL.print("ip: ");
  USE_SERIAL.println(WiFi.localIP());

  dht.begin();
}

void loop() {
 if( WiFi.status() == WL_CONNECTED ){
  digitalWrite(LED_BUILTIN, LOW);

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
  }else{
    float hif = dht.computeHeatIndex(f, h);
    float hic = dht.computeHeatIndex(t, h, false);

    // URL target untuk menyimpan data sensor DHT
    // ke database mysql
    String url = "http://192.168.1.10/";
    url += "my_web/public/monitoring/simpan/";
    url += String(h) +  "/";
    url += String(t) +  "/";
    url += String(f) +  "/";
    url += String(hic) +  "/";
    url += String(hif);
    
    HTTPClient http;
    USE_SERIAL.print("[HTTP] begin...\n");
    
    http.begin( url ); 
    USE_SERIAL.print("[HTTP] GET...\n");
    
    int httpCode = http.GET();
    if(httpCode > 0) {
        USE_SERIAL.printf("[HTTP] GET... code: %d\n", 
        httpCode);

        if(httpCode == HTTP_CODE_OK) {
            String payload = http.getString();
            USE_SERIAL.println(payload);
        }
    } else {
        USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", 
        http.errorToString(httpCode).c_str());
    }

    http.end();
  }
  
  digitalWrite(LED_BUILTIN, HIGH);
 }

 // delay selama 1 menit
 // data akan di kirim 1 menit sekali
 delay(60000);
}

Setelah koding untuk NodeMCU, kita buat koding di bagian web server untuk menyimpa data dan menampilkan data, Penulis mengunakan php framework Codeigniter untuk membangun aplikasi monitoring ini. Pertama kita siapkan database dan tabel untuk menampung data yg dikirim dari NodeMCU

CREATE TABLE `tbl_log_suhu` (
  `id` int(20) NOT NULL,
  `token` varchar(32) NOT NULL,
  `h` float NOT NULL,
  `t` float NOT NULL,
  `f` float NOT NULL,
  `hic` float NOT NULL,
  `hif` float NOT NULL,
  `tt` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

kemudian kita buat MVC untuk aplikasi web monitoring ini. Pertama Controller :
Penulis membuat 3 function sederhana

  • simpan() untuk menyimpan data yg di kirim dari NodeMCU.
  • get_60_data() untuk menampilkan 60 record data terakhir.
  • get_data() untuk menampilkan 1 (satu) record data terakhir.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Monitoring extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->model('Monitoring_model');
    }

    public function index(){
        $this->load->view('monitoring/index');
    }

    public function simpan(){
        $data = array();
        $data["h"] = $this->uri->segment(3);
        $data["t"] = $this->uri->segment(4);
        $data["f"] = $this->uri->segment(5);
        $data["hic"] = $this->uri->segment(6);
        $data["hif"] = $this->uri->segment(7);
        $data["token"] = $this->uri->segment(8);
        $data["tt"] =  time();
        $this->Monitoring_model->simpan($data);
    }

    public function get_60_data(){
        $query = $this->Monitoring_model->get_60_data();

        $data_temperature = array();
        $data_humidity = array();

        foreach ($query->result() as $row){
          $tt = $row->tt;

          $data_temperature[] = array($tt, $row->t);
          $data_humidity[]  = array($tt, $row->h);
        }

        $data = array();
        $data["temperature"] = $data_temperature;
        $data["humidity"] = $data_humidity;

        $this->output
            ->set_status_header(200)
            ->set_content_type('application/json', 'utf-8')
            ->set_output(json_encode($data))
            ->_display();
        exit;
    }

    public function get_data(){
        $query = $this->Monitoring_model->get_data();
        $data = array();

        if( $query->num_rows() >0 ){

            $row = $query->row();
            $data["temperature"] =  $row->t;
            $data["humidity"] = $row->h;
        }

        $this->output
            ->set_status_header(200)
            ->set_content_type('application/json', 'utf-8')
            ->set_output(json_encode($data))
            ->_display();
        exit;
    }
}

kemudian Model :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Monitoring_model extends CI_Model{

    public function __construct(){
        parent::__construct();
    }

    public function simpan($data){
        $this->db->insert('tbl_log_suhu', $data); 
    }

    public function get_60_data(){
        $this->db->select('t, h, tt');
        $this->db->from('tbl_log_suhu');
        $this->db->limit(60);
        $this->db->order_by('id', 'DESC');

        return $this->db->get();
    }

    public function get_data(){
        $this->db->select('t, h, tt');
        $this->db->from('tbl_log_suhu');
        $this->db->limit(1);
        $this->db->order_by('id', 'DESC');

        return $this->db->get();
    }

}

sampai di sini pun bila kita mengakses Controller nya akan menampilkan data hanya saja masih dalam bentuk yg sulit dibaca oleh orang awam

screenshot-from-2016-11-02-11-08-43

screenshot-from-2016-11-02-11-08-54

Bagai mana sudah cukup Binggung 😀 😀 😀 bagian View yg akan mengolah data tersebut dalam bentuk grafik dan menarik akan jauh lebih membingungkan he he. BERSAMBUNG 😀

screenshot-from-2016-11-02-11-24-04

Ditulis dalam Arduino, Microcontroller, PHP, Uncategorized