sv6nob nextion cover

 

 Στο άρθρο αυτό θα γίνει μια προσπάθεια να εξηγήσουμε πως συνδέεται μια οθόνη LCD της σειράς Nextionστο RaspberryPi 3. Αρχικά τονίζω οτι κυκλοφορούν αρκετές οθόνες ΤΥΠΟΥ nextion και όχι Nextion. Πολλοί την πάτησαν, οπότε διευκρινίζω οτι οι οδηγίες ΔΕΝ αφορούν κλώνους. Η οθόνη που έχω τώρα μπροστά μου και γράφω τον οδηγό, είναι αυτή από το Banggood.

 

 

 

Στην επόμενη φωτογραφία φαίνονται τα τέσσερα καλώδια και σε τι χρησιμεύουν

sv6nob nextion pinout

Για να συνδέσουμε την οθόνη μας στο RaspberryPi 3 υπάρχουν δύο τρόποι. Απ' ευθείας στα GPIO ή με χρήση ενός USB TTL.

 GPIO:

Πρώτα θα πρέπει να απενεργοποιήσουμε την σειριακή κονσόλα ως εξής.

Από το αγαπημένο μας τερματικό δίνουμε την εντολή

sudo raspi-config

και μεταβαίνουμε στην επιλογή 8 Advanced Options και μετά A8 Serial και επιλέγουμε NO.

Για Ubuntu MATE:
Από το τερματικό τρέχουμε

sudo nano /boot/config.txt

Και στο τέλος του αρχείου προσθέτουμε

dtoverlay=pi3-miniuart-bt

Στη συνέχεια τρέχουμε

sudo nano /boot/cmdline.txt

και διαγράφουμε τις τιμές που αφορούν το console. Για παράδειγμα:

dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

 Αποθηκεύουμε τα δύο αρχεία που τροποιοιήσαμε και κάνουμε επανεκκίνηση.

Τώρα είμαστε έτοιμοι να συνδέσουμε την οθόνη όπως στο σχήμα. ΠΡΟΣΟΧΗ, μια λάθος σύνδεση εγγυάται μια καμένη οθόνη.

sv6nob nextion raspberry pi gpio

USB to TTL:

Αντίστοιχα συνδέουμε τα τέσσερα καλώδια στο USB πλακετάκι το οποίο στη συνέχεια συνδέουμε σε μια USB θύρα του RaspberryPi 3.

sv6nob nextion ttl connection

Πριν συνδέσουμε μόνιμα την οθόνη στο Raspberry Pi 3 θα πρέπει να της φορτώσουμε τα γραφικά που θα δείχνει. Αυτό γίνεται με τρεις τρόπους. Ακολουθούμε έναν από τους τρείς και όχι όλους.

1. Μέσω του προγράμματος Nextion Editor σε περιβάλλον windows

Κατεβάζουμε το πρόγραμμα nextion editor από εδώ και το εγκαθιστάμε

Κατεβάζουμε στη συνέχεια τo αρχείο της οθόνης που έχουμε από εδώ στο φάκελο Nextion. Κοιτάμε το πίσω μέρος τη οθόνης που έχουμε ώστε να δούμε ποιό μοντέλο είναι. Για παράδειγμα, αυτή που έχω μπροστά μου, είναι η NX3224T024, οπότε κατεβάζω το αρχείο NX3224T024.HMI.

Συνδέουμε την οθόνη με τη χρήση του USB TTL στον υπολογιστή μας και βάζουμε τους drivers του ttl. Οι drivers είναι ανάλογα με το πλακετάκι που έχουμε και παρέχονται με αυτό.

Ανοίγουμε το nextion editor και πατάμε πάνω αριστερά Open και ανοίγουμε το αρχείο που κατεβάσαμε για την οθόνη μας. Πατάμε Compile και στη συνέχεια Upload. Επιλέγουμε σε ποιά COM βρίσκεται το USB to TTL μας και πατάμε Go.

Στο σημείο αυτό θα εμφανιστεί το MMDVM στην οθόνη και είμαστε έτοιμοι.

2. Μέσω microSD κάρτας

Κατεβάζουμε το αρχείο της οθόνης που έχουμε από εδώ στο φάκελο Nextion. Κοιτάμε το πίσω μέρος τη οθόνης που έχουμε ώστε να δούμε ποιό μοντέλο είναι. Για παράδειγμα, αυτή που έχω μπροστά μου, είναι η NX3224T024, οπότε κατεβάζω το αρχείο NX3224T024.tft.

Βάζουμε το αρχείο αυτό μόνο του σε μια κάρτα microSD και τοποθετούμε την κάρτα στην nextion οθόνη. Βάζουμε στην οθόνη στο raspberry με ttl ή gpio και βλέπουμε να ξεκινάει το flashάρισμα. Μόλις τελειώσει, αποσυνδέουμε την οθόνη και αφαιρούμε την κάρτα.

Συνδέουμε πάλι την οθόνη και στο σημείο αυτό θα εμφανιστεί το MMDVM στην οθόνη και είμαστε έτοιμοι.

3. Λατρεμένο τερματικό και μόνο από Linux

Εγκαθιστούμε την python και το python-serial τρέχοντας

sudo apt-get install python python-serial

Μετακινούμαστε στο φάκελο του MMDVMhost

cd /opt/MMDVMHost/Nextion_G4KLX

ή σε παλιότερες εκδόσεις mmdvmhost

cd /opt/MMDVMHost/Nextion

βλέπουμε το περιεχόμενο με

ls -la

και σύμφωνα με το τι γράφει η οθόνη μας από την πίσω πλευρά, επιλέγουμε το αρχείο που μας ταιριάζει. Για παράδειγμα, αυτή που έχω μπροστά μου, είναι η NX3224T024, οπότε θα χρησιμοποιήσω το αρχείο NX3224T024.tft

Ελέγχουμε σε ποιά θύρα είναι συνδεδεμένη η οθόνη μας με

dmesg | grep tty

αν είναι με GPIO, θα βρίσκεται στο ttyAMA0

αλλιώς με USB στο ttyUSB0 ή ttyUSB1 κλπ

οπότε τώρα θα πρέπει να τρέξουμε την εντολή

sudo python nextion.py file_to_upload.tft /path/to/dev/ttyDevice

αντίστοιχα με αυτά που είδαμε πιο πάνω για GPIO τρέχουμε

sudo python nextion.py NX3224T024.tft /dev/ttyAMA0

ή για USB TTL

sudo python nextion.py NX3224T024.tft /dev/ttyUSB0

(ΠΡΟΣΟΧΗ, βάζουμε σωστό αρχείο και διαδρομή οθόνης)

Στο σημείο αυτό θα εμφανιστεί το MMDVM στην οθόνη και είμαστε έτοιμοι.

 

 

Για να επικοινωνήσει η οθόνη με το MMDVMHost πρέπει να ρυθμίσουμε το αρχείο MMDVM.ini.

Διακόπτουμε το MMDVMHost αν τρέχει με

sudo systemctl stop mmdvmhost.service

επεξεργαζόμαστε

sudo nano /opt/MMDVMHost/MMDVM.ini

και τροποποιούμε ως εξής:

Στην ενότητα [General], το Display=Nextion

και στην ενότητα [Nextion]

Port=/dev/ttyUSB0 ή /dev/ttyAMA0 (ότι βάλαμε πιο πάνω)

Brightness=50 (το βάζουμε όσο θέλουμε εμείς από 1-100, είναι η φωτεινότητα της οθόνης)

DisplayClock=1

UTC=0

IdleBrightness=20 (το βάζουμε όσο θέλουμε εμείς από 1-100, είναι η φωτεινότητα της οθόνης όταν είναι σε αναμονή)

 

Για τους hard coders...

Επειδή βλέπω πολλούς που τροποποιούν το γραφικό περιβάλλον της Nextion και είναι ωραίο να υπάρχουν άνθρωποι που δημιουργούν, οποιοσδήποτε, άφοβα, μπορεί μέσω του Nextion Editor σε windows, πριν το Compile να τροποποιήσει ότι θέλει μέσα στα γραφικά της οθόνης. Προσέχουμε όμως να μην αλλάξουν οι ονομασίες κα τα id από τα objects που λαμβάνουν δεδομένα από τη σειριακή επικοινωνία γιατί μετά δεν θα εμφανίζονται τα δεδομένα στην οθόνη. Αν αποτύχουμε κάπου και δε μας δουλεύει, δεν ανησυχούμε, φλασάρουμε πάλι την οθόνη με τον ίδιο τρόπο. Αν επιλέγουμε το flash με χρήση microSD κάρτας, το Nextion Editor μετά το Compile, μας δίνει το αρχείο για την κάρτα πατώντας Open -> Openbuildfolder. Και για τους πιο επίμονους ακόμα, μπορούμε να τροποποιήσουμε το αρχείο Nextion.cpp που βρίσκεται στο φάκελο του MMDVMhost. Αυτό απαιτεί καλή γνώση της γλώσσας προγραμματισμού C++. Φυσικά εκεί μας δίνονται όλες οι δυνατότητες της οθόνης. Μετά την τροποποίηση θα πρέπει να κάνουμε πάλι compile το MMDVMhost ώστε να μεταγλωττιστούν οι αλλαγές και να εγκατασταθούν. Δεν ξεχνάμε σε κάθε updateτου MMDVMhost, να ξαναπερνάμε το τροποποιημένο Nextion.cpp αρχείο πριν κάνουμε το compile.

Ένα παράδειγμα τροποποίησης του αρχείου αυτού φαίνεται στην παρακάτω εικόνα.

 sv6nob nextion final edited


Έχει προστεθεί η θερμοκρασία του πομποδέκτη motorola GM350, η ip που έχει αυτή τη στιγμή το wifi καθώς και το ethernet. Όλα τα στοιχεία αυτά αλλάζουν δυναμικά σε πραγματικό χρόνο.

 

Ευχαριστώ για το χρόνο σας,

de SV6NOB

QRZ callsign lookup:

sv6nob amateur radio symbol
 




Η ιστοσελίδα χρησιμοποιεί cookies για την σωστή λειτουργία, την πλοήγηση, την ανάλυση κίνησης, για social media, και άλλες λειτουργίες. Οι επισκέπτες και χρήστες της, θα πρέπει σύμφωνα με τις οδηγίες της αρχής προστασίας προσωπικών δεδομένων να συμφωνούν με τη χρήση των εν λόγω cookies.