Nextion HMI

Yayınlandı: 15 Ekim 2016 / İncelemeler
Etiketler:, , , , ,

adsizİnsan ve makina arasındaki iletişim geçmişte çoğunlukla göstergeler, düğmeler, vanalar ve kollarla sağlanırken, artık günümüzde renkli ekranlar ve bu ekranların üzerinde bulunan dokunmatik paneller vasıtasıyla sağlanıyor.  Bu durumda biz elektronikçilere anlaşılır ve estetik görsellerle süslenen ve karmaşıklığa sebep olmayacak  şekilde  makinalara komuta edilebilecek arayüzler tasarlamak düşüyor.  Bu arayüzleri hazırlamak her zaman kolay olmayabiliyor.  Var olan arayüz tasarlama güçlüğünü en aza indirmek için, Itead firması  Nextion ismini verdiği HMI (Human Machine Interface – İnsan makina arayüzü) ürünlerini piyasaya çıkartmıştır. Bu ürünler sayesinde karmaşık TFT ekran kullanma algoritmalarını hiç kullanmak istemeyen veya kısa zamanda proje üretmek isteyen kişiler hedeflerine kolayca ulaşabilmekteler.

Nextion HMI aslında bir tft ekran ve üzerindeki dokunmatik panelden, dahili işlemcisi ve dokunmatik kontrolcüsü bulunan bir sisttem olarak tanımlanabilir. Bizim tek yapmamız gereken kendi editörü vasıtasıyla buton,  gösterge, textbox, grafik, resim gibi istediğimiz elemanları ekranın istediğimiz yerine yerleştirmemizdir. Nextion HMI dış dünyayla, üzerinde bulundurduğu seri port vasıtasıyla haberleşmektedir.  5V ile çalışan bu cihazlara editör üzerinden hazırladığımız arayüzleri yine seri port üzerinden veya bir mikro sd kart vasıtasıyla yükleyebiliriz.

adsiz

Nextion HMI ürünlerine kendi editörü üzerinden de kod yazılabilmektedir. Mesela bir buton’a basıldığında  uart üzerinden bir veri göndermek isteniliyorsa editör üzerinde buton olayına ilgili kod yazılarak bu işlem basitçe yapılabilir. Ayrıca harici mikrodentleyicilerden veya bilgisayarlardan da veri alınarak ekranda gösterilebilir. Örnek verecek olursak “gosterge” ismindeki bir göstergenin göstereceği değeri 120 derece açı olarak şu şekilde dışarıdan uart üzerinden göndereceğimiz  kodla belirleyebiliriz: “gosterge.val=120″. Bu veriyi string olarak gönderdikten sonra hemen akabinde 3 kez 0xFF verisi (string olarak değil hex olarak) göndermemiz gerekmektedir.  Diyelim ki ekrana t0 isminde bir textbox yerleştirdik ve bu textbox üzerindeki yazıyı dışarıdan bir mcu ile değiştirmek istiyoruz. Bu durumda t0.txt=”merhaba” 0xff 0xff 0xff kodlarını göndermemiz , textbox üzerinde merhaba yazısının görülmesini sağlayacaktır.  Aşağıda ekran elime geçtikten 15 dakika sonra gerçekleştirmiş olduğum basit bir arayüz uygulamasını görebilirsiniz.  Benim kullandığım ürün 3,2″ boyutunda 400×240 çözünürlüğündeki NX4024T032_011R modeliydi.

Videodan görüldüğü gibi çok kısa süre içerisinde bir potansiyometre üzerindeki voltajı, google görsellerden bulmuş olduğum bir gösterge görseli üzerinde gösterilebilmiş, ekran üzerindeki bir buton vasıtasıyla STM32F103c8 mini geliştirme kiti üzerindeki led yakılıp söndürülebilmiştir. STM32F103c8 üzerindeki kodları yazmak için ise mikroC ARM kullandım. İşin en önemli noktasıysa tüm bunların 15 dakika içerisinde yapılabiliyor oluşu.

Daha önce de belirttiğim gibi editör üzerinden kod yazılabiliyor ve bu cihazın kendisine ait bir komut seti ve C’ye çok benzeyen bir proglama dili mevcut. Aslında “komutların sonunda noktalı virgül kullanılmayan C” diyebiliriz. Cihazla ilgili geniş bilgilerin bulunduğu sayfaya buradan ulaşabilirsiniz.

Aşağıdaki videodan ise bu ürünle ilgili firmanın youtube üzerinden yayınladığı tanıtımı izleyebilirsiniz.

Nextion HMI ürünleri farklı ebatlarda bulabilmek mümkündür.  Aşağıdaki tablodan farklı ebat ve çözünürlükteki Nextion ürünlerine göz atıp sağ taraftaki linler aracılığıyla sipariş verebilirsiniz..

Nextion Basic Size Resolution Touch Panel Color Flash(MB) RAM(Byte) SKU Datasheet Shopping
Nextion Basic Models
NX3224T024_011R 2.4” 320*240 RTP 65536 4 3584 IM150416002 Click Click
NX3224T028_011R 2.8” 320*240 RTP 65536 4 3584 IM150416004 Click Click
NX4024T032_011R 3.2” 400*240 RTP 65536 4 3584 IM150416005 Click Click
NX4832T035_011R 3.5” 480*320 RTP 65536 16 3584 IM150918001 Click Click
NX4827T043_011R 4.3” 480*272 RTP 65536 16 3584 IM150416003 Click Click
NX8048T050_011R 5.0” 800*480 RTP 65536 16 3584 IM150416006 Click Click
NX8048T070_011R 7.0” 800*480 RTP 65536 16 3584 IM150416007 Click Click
Nextion Enhanced Models
NX3224K024_011R 2.4” 320*240 RTP 65536 16 3584 IM160511002 Click Click
NX3224K028_011R 2.8” 320*240 RTP 65536 16 3584 IM160511003 Click Click
NX4024K032_011R 3.2” 400*240 RTP 65536 16 3584 IM160511004 Click Click
NX4832K035_011R 3.5” 480*320 RTP 65536 32 3584 IM160511005 Click Click
NX4827K043_011R 4.3” 480*272 RTP 65536 32 3584 IM160511006 Click Click
NX8048K050_011R 5.0” 800*480 RTP 65536 32 3584 IM160511007 Click Click
NX8048K070_011R 7.0” 800*480 RTP 65536 32 3584 IM160511008 Click Click

İyi çalışmalar.

yorum
  1. Emrah İŞSEVER dedi ki:

    Üreticiler tarafından kullanımı kolay arayüzler geliştirilmesine rağmen hala ürünün nasıl çalıştığını anlamakta zorlanan birçok kullanıcı var. Emekleriniz ve paylaşım için teşekkür ederim.

  2. alidurmus dedi ki:

    güzel çalışma olmuş örnek kodları paylaşırsan daha anlaşılır olur bence

  3. alidurmus dedi ki:

    stm32f4 ile nextion haberleştirmek istiyorum. Mikroc kitabını aldım. örneklerden yola çıkarak bir kesme yaptım.

    nextion’dan gelen bilgileri nasıl kullanabilirim.
    kod çalışıyor fakat gelen bilgiler neye göre ayrılıyor tam çıkaramadım

    page1 65 00 02 00 ff ff ff
    page2 65 00 03 00 ff ff ff
    page3 65 00 04 00 ff ff ff

    hex kodlarını bir türlü tam olarak alamıyorum

    char gelen=0;

    void interrupt() iv IVT_INT_USART3 ics ICS_AUTO {

    if(UART3_Data_Ready())
    {
    gelen = UART3_Read();

    Lcd_Out(1,1,gelen);

    }

    • mikrodunya dedi ki:

      Hocam bu şekilde alamamanız normal.
      İlk önce gelen verileri bir dizi içerisine atın. Daha sonra diyelim gelen veri sayısı 10 olduysa bu dizi içerisindeki elemanları tek tek ekrana yazdırın.

  4. alidurmus dedi ki:

    hocam hata nerede bir türlü çözemedim

    sbit LCD_RS at GPIOE_ODR.B8; // LCD E portunun 4,5,6,7,8,9,10
    sbit LCD_EN at GPIOE_ODR.B10;
    sbit LCD_D4 at GPIOE_ODR.B4;
    sbit LCD_D5 at GPIOE_ODR.B5;
    sbit LCD_D6 at GPIOE_ODR.B6;
    sbit LCD_D7 at GPIOE_ODR.B7;
    // LCD bağlantıları tanımlandı

    char result[8]; // “gelen” isminde bir değişken ve “i” isminde bir sayaç tanımlanıyor.
    long page,component;
    char rx_buffer[8],rx_array[8]; // change value to adjust for buffer size
    int i=0,j=0,sayac=0;
    char txt1[] = “!!! WORKING “;
    char utmp1[8],out[8],gelen=0,deneme;

    void main()
    {
    GPIO_Digital_Output(&GPIOE_BASE, _GPIO_PINMASK_9); //R/W pini şaseye çekiliyor.
    GPIOE_ODR.B9=0;
    UART3_Init_Advanced(9600,_UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT,
    &_GPIO_MODULE_USART3_PD89); // UART ayarlamaları yapılıyor.

    USART3_CR1bits.RXNEIE = 1; // enable uart rx interrupt

    /*UART3_Write_Text(“UART started succesfully”);
    UART3_Write(13);
    UART3_Write(10);*/

    NVIC_IntEnable(IVT_INT_USART3); // enable interrupt vector
    EnableInterrupts(); // enable core interrupts

    Lcd_Init(); //LCD kullanıma hazır hale getiriliyor.
    Lcd_Cmd(_LCD_CLEAR); //LCD ekran temizleniyor.

    while(1) // Endless loop
    {

    if(UART3_Data_Ready()) // If data is received
    {

    rx_array[i] = UART3_Read();
    // rx_array[i] = rx_buffer;
    i++;

    if(i==7)
    {

    j=0;
    while(j < i)
    {
    BytetoHex(rx_array[j], result);
    LCD_Out_Cp(result);

    j++;
    }
    if(rx_array[0]== 0x65)
    {
    Lcd_Out(1,1,txt1);
    }
    i = 0;
    }

    }
    }

  5. alidurmus dedi ki:

    hocam nextion a bilgi göndermek istiyorum
    char dizi[]=”t1.txt=”;
    UART3_Write_Text(dizi);
    UART3_Write(0x02);
    UART3_Write(0xFF);
    UART3_Write(0xFF);
    UART3_Write(0xFF);

    burada ne gibi bir sıkıntı olabilir

  6. alidurmus dedi ki:

    Hocam burada mikroc ile nextion üzerine çalışmaları paylaşmak istiyorum

    https://github.com/alidurmus/nextion_stm32f4_mikroc

  7. alidurmus dedi ki:

    hocam iki char’ı birleştirmek istiyorum

    char txt1[10],txt2[10],txt3[20];

    txt1 = “n0.val=”;
    txt2=”55″;
    txt3= txt1+txt2;

    hata alıyorum nasıl bir yol izlemeliyim

  8. Arif ERHAN dedi ki:

    Nextion sitesindeki Arduino örneklerinin hiç biri çalışmıyor.
    Verilen örnekler Arduino programında hep hata veriyor.

  9. çetin dedi ki:

    Hocam merhaba,
    nextion un gelişmiş modeli olan 2.8 inç Nextion HMI Dokunmatik TFT Lcd Ekran + 8 Port GPIO / 16MB Dahili Hafıza ekranından aldım,
    size bir konuda danışmak istiyorum;
    8 port GPIO ları giriş olarak kullanıp gelen girişlere göre sayfalara koyduğum resimler ekranda göstersin ve girişin bir tanesinede kronometre koymak istiyorum giriş tekrar edersede süre ilave etsin bu mümkünmü mümkünse yardımcı olurmusun ?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s