Πίνακας περιεχομένων:

Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32: 7 βήματα (με εικόνες)
Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32: 7 βήματα (με εικόνες)

Βίντεο: Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32: 7 βήματα (με εικόνες)

Βίντεο: Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32: 7 βήματα (με εικόνες)
Βίντεο: ESP32 Tutorial 7 - Using Array with ESP32 Arduino Programming-SunFounder's ESP32 IoT Learnig kit 2024, Ιούνιος
Anonim
Image
Image
Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32
Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32
Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32
Ραδιόφωνο Internet χρησιμοποιώντας ένα ESP32

Αγαπητοί φίλοι καλώς ήλθατε σε ένα άλλο εκπαιδευτικό! Σήμερα πρόκειται να κατασκευάσουμε μια συσκευή Internet Radio με μεγάλη οθόνη 3,5”χρησιμοποιώντας έναν φθηνό πίνακα ESP32. Είτε το πιστεύετε είτε όχι, μπορούμε τώρα να δημιουργήσουμε ένα διαδικτυακό ραδιόφωνο σε λιγότερο από 10 λεπτά και με λιγότερο από 30 $. Υπάρχουν πολλά που πρέπει να καλυφθούν, ας ξεκινήσουμε!

Πριν από μερικούς μήνες, ολοκλήρωσα ένα έργο Arduino FM Radio το οποίο λειτουργεί υπέροχα και φαίνεται ακόμα καλύτερο κατά τη γνώμη μου. Αν θέλετε να δείτε πώς έφτιαξα αυτό το έργο, μπορείτε να διαβάσετε το Instructable εδώ. Το πρόβλημα είναι ότι, αν και αυτό το ραδιόφωνο φαίνεται δροσερό, δεν είναι πρακτικό επειδή ζω σε μια μικρή πόλη στη νότια Ελλάδα και οι μεγάλοι ελληνικοί ραδιοφωνικοί σταθμοί που προτιμώ να ακούω, δεν έχουν πομπούς εδώ γύρω. Έτσι, ακούω τα αγαπημένα μου ραδιόφωνα στο διαδίκτυο στο φορητό υπολογιστή ή το tablet μου, το οποίο επίσης δεν είναι τόσο πρακτικό. Έτσι, σήμερα θα φτιάξω μια διαδικτυακή ραδιοφωνική συσκευή για να μπορώ να ακούω τους αγαπημένους μου ραδιοφωνικούς σταθμούς από όλο τον κόσμο!

Όπως μπορείτε να δείτε, μια πρώτη έκδοση του έργου είναι έτοιμη σε ένα breadboard. Ας το ενεργοποιήσουμε. Όπως μπορείτε να δείτε, το έργο συνδέεται στο Διαδίκτυο και στη συνέχεια μεταδίδει μουσική από προκαθορισμένους Ραδιοφωνικούς Σταθμούς.

Έχω συντονιστεί στον ραδιοφωνικό σταθμό Real FM από την Αθήνα και χρησιμοποιώντας αυτά τα κουμπιά μπορούμε να αλλάξουμε τον Ραδιοφωνικό Σταθμό που ακούμε. Έχω αποθηκεύσει τους αγαπημένους μου ραδιοφωνικούς σταθμούς στη μνήμη του ESP32, ώστε να έχω εύκολη πρόσβαση σε αυτούς. Με αυτό το ποτενσιόμετρο, μπορώ να αλλάξω την ένταση του ηχείου. Εμφανίζω το Όνομα του Ραδιοφωνικού Σταθμού που ακούμε σε μια μεγάλη οθόνη 3,5”με ρετρό διεπαφή χρήστη. Το έργο λειτουργεί καλά και είναι πολύ εύκολο να κατασκευαστεί.

Μπορείτε να δημιουργήσετε το ίδιο έργο σε λιγότερο από 10 λεπτά, αλλά πρέπει να έχετε κάποια εμπειρία. Εάν αυτό είναι το πρώτο σας έργο, σκεφτείτε πρώτα να δημιουργήσετε ένα πιο απλό, για να αποκτήσετε κάποια εμπειρία. Ελέγξτε τις οδηγίες μου για απλές ιδέες έργου και όταν είστε πιο άνετοι με το Arduino, τα ηλεκτρονικά θα επιστρέψουν για να δημιουργήσουν αυτό το υπέροχο έργο. Ας αρχίσουμε τώρα να δημιουργούμε το δικό μας διαδικτυακό ραδιόφωνο.

ΕΝΗΜΕΡΩΣΗ 6/6/2019

Το πρόβλημα θορύβου έχει επιλυθεί με την προσθήκη ενός μετασχηματιστή απομόνωσης. Ελέγξτε το ενημερωμένο σχηματικό διάγραμμα. Ευχαριστώ!

Βήμα 1: Αποκτήστε όλα τα μέρη

Πάρτε όλα τα μέρη
Πάρτε όλα τα μέρη

Θα χρειαστούμε τα ακόλουθα μέρη:

  • ESP32 ▶
  • Αποκωδικοποιητής MP3 ▶
  • Isolation Transformer ▶
  • Ενισχυτής ▶
  • Ηχείο 3W ▶
  • 3.5 "Nextion Display ▶
  • Κουμπιά ώθησης ▶
  • Breadboard ▶
  • Καλώδια ▶

Το συνολικό κόστος του έργου είναι περίπου 40 $, αλλά αν δεν χρησιμοποιήσετε οθόνη το κόστος του έργου είναι περίπου 20 $. Καταπληκτικά πράγματα. Μπορούμε να φτιάξουμε το δικό μας διαδικτυακό ραδιόφωνο με μόλις 20 $!

Βήμα 2: Πίνακας ESP32

Image
Image
Πίνακας ESP32
Πίνακας ESP32
Πίνακας ESP32
Πίνακας ESP32

Η καρδιά του έργου είναι, φυσικά, ο ισχυρός πίνακας ESP32. Εάν δεν είστε εξοικειωμένοι με αυτό, το τσιπ ESP32 είναι ο διάδοχος του δημοφιλούς τσιπ ESP8266 που έχουμε χρησιμοποιήσει πολλές φορές στο παρελθόν. Το ESP32 είναι κτήνος! Προσφέρει δύο πυρήνες επεξεργασίας 32 bit που λειτουργούν στα 160MHz, τεράστια ποσότητα μνήμης, WiFi, Bluetooth και πολλές άλλες δυνατότητες με κόστος περίπου 7 $! Καταπληκτικά πράγματα!

Παρακαλούμε δείτε τη λεπτομερή κριτική που έχω ετοιμάσει για αυτόν τον πίνακα. Επισυνάπτω το βίντεο σε αυτό το Instructable. Θα σας βοηθήσει να καταλάβετε γιατί αυτό το τσιπ θα αλλάξει τον τρόπο που φτιάχνουμε τα πράγματα για πάντα! Ένα από τα πιο συναρπαστικά πράγματα σχετικά με το ESP32 είναι ότι παρόλο που είναι τόσο ισχυρό, προσφέρει μια λειτουργία ύπνου που απαιτεί μόνο 10μΑ ρεύματος. Αυτό καθιστά το ESP32 το ιδανικό τσιπ για εφαρμογές χαμηλής ισχύος.

Σε αυτό το έργο, ο πίνακας ESP32 συνδέεται στο Διαδίκτυο και στη συνέχεια λαμβάνει δεδομένα MP3 από τον ραδιοφωνικό σταθμό που ακούμε και στέλνει μερικές εντολές στην οθόνη.

Βήμα 3: Αποκωδικοποιητής MP3

Αποκωδικοποιητής MP3
Αποκωδικοποιητής MP3
Αποκωδικοποιητής MP3
Αποκωδικοποιητής MP3

Τα δεδομένα MP3 αποστέλλονται στη μονάδα αποκωδικοποιητή MP3 χρησιμοποιώντας τη διεπαφή SPI. Αυτή η μονάδα χρησιμοποιεί το IC VS1053. Αυτό το IC είναι ένας αποκλειστικός αποκωδικοποιητής υλικού MP3. Παίρνει τα δεδομένα MP3 από το ESP32 και τα μετατρέπει πολύ γρήγορα σε ηχητικό σήμα.

Το ηχητικό σήμα που εξέρχεται σε αυτήν την υποδοχή ήχου είναι ασθενές και θορυβώδες, οπότε πρέπει να το καθαρίσουμε από τον θόρυβο και να το ενισχύσουμε. (Εάν χρησιμοποιείτε ακουστικά, το σήμα δεν χρειάζεται να καθαριστεί από θόρυβο ή να ενισχυθεί.) Γι 'αυτό χρησιμοποιώ έναν μετασχηματιστή απομόνωσης για να καθαρίσω τον ήχο από το θόρυβο και έναν ενισχυτή ήχου PAM8403 για να ενισχύσω το ηχητικό σήμα και στη συνέχεια να το στείλω σε έναν ομιλητή. Έχω επίσης συνδέσει δύο κουμπιά στο ESP32 μόνο για να αλλάξω το MP3 Stream από το οποίο λαμβάνουμε δεδομένα και μια οθόνη Nextion για να εμφανιστεί ο ραδιοφωνικός σταθμός που ακούμε.

Βήμα 4: Επόμενη οθόνη

Image
Image
Σύνδεση όλων των μερών
Σύνδεση όλων των μερών

Επέλεξα να χρησιμοποιήσω μια οθόνη Nextion για αυτό το έργο, καθώς είναι πολύ εύκολο στη χρήση. Χρειάζεται μόνο να συνδέσουμε ένα καλώδιο για να το ελέγξουμε.

Οι οθόνες Nextion είναι νέες οθόνες. Έχουν το δικό τους επεξεργαστή ARM στο πίσω μέρος, ο οποίος είναι υπεύθυνος για την οδήγηση της οθόνης και τη δημιουργία του γραφικού περιβάλλοντος χρήστη. Έτσι, μπορούμε να τα χρησιμοποιήσουμε με οποιονδήποτε μικροελεγκτή και να επιτύχουμε θεαματικά αποτελέσματα. Έχω ετοιμάσει μια λεπτομερή ανασκόπηση αυτής της οθόνης Nextion η οποία εξηγεί σε βάθος τον τρόπο λειτουργίας τους, τον τρόπο χρήσης τους και τα μειονεκτήματά τους. Μπορείτε να το διαβάσετε εδώ ή να δείτε το συνημμένο βίντεο.

Βήμα 5: Σύνδεση όλων των εξαρτημάτων

Σύνδεση όλων των μερών
Σύνδεση όλων των μερών
Σύνδεση όλων των μερών
Σύνδεση όλων των μερών

Το μόνο που έχουμε να κάνουμε τώρα είναι να συνδέσουμε όλα τα μέρη μεταξύ τους σύμφωνα με αυτό το σχηματικό διάγραμμα. Μπορείτε να βρείτε το σχηματικό διάγραμμα που επισυνάπτεται εδώ. Η σύνδεση είναι απλή.

Ωστόσο, υπάρχουν δύο πράγματα που πρέπει να σημειωθούν. Η μονάδα αποκωδικοποιητή MP3 εξάγει ένα στερεοφωνικό σήμα, αλλά χρησιμοποιώ μόνο ένα κανάλι ήχου σε αυτό το έργο. Για να λάβω το ηχητικό σήμα, συνέδεσα ένα καλώδιο ήχου στην υποδοχή ήχου της μονάδας και το έκοψα για να αποκαλυφθούν τέσσερα καλώδια στο εσωτερικό. Συνδέω δύο από τα καλώδια. Ένα από αυτά είναι το GND και το άλλο είναι το ηχητικό σήμα ενός από τα δύο κανάλια ήχου. Εάν επιθυμείτε, μπορείτε να συνδέσετε και τα δύο κανάλια στη μονάδα ενισχυτή και να οδηγήσετε δύο ηχεία.

Κάθε κανάλι ήχου πρέπει να περάσει από τον μετασχηματιστή απομόνωσης για να καθαρίσει τυχόν θόρυβο πριν συνδεθεί στον ενισχυτή

Για να στείλουμε δεδομένα στην οθόνη, χρειάζεται μόνο να συνδέσουμε ένα καλώδιο στον ακροδέκτη TX0 του ESP32. Αφού συνδέσουμε τα μέρη, πρέπει να φορτώσουμε τον κωδικό στο ESP32 και πρέπει να φορτώσουμε το GUI στην οθόνη Nextion.

Για να φορτώσετε το GUI στην οθόνη Nextion, αντιγράψτε το αρχείο InternetRadio.tft που πρόκειται να μοιραστώ μαζί σας σε μια άδεια κάρτα SD. Τοποθετήστε την κάρτα SD στην υποδοχή της κάρτας SD στο πίσω μέρος της οθόνης. Στη συνέχεια, ενεργοποιήστε την οθόνη και το GUI θα φορτωθεί. Στη συνέχεια, αφαιρέστε την κάρτα SD και συνδέστε ξανά την τροφοδοσία.

Μετά την επιτυχή φόρτωση του κώδικα, ας ενεργοποιήσουμε το έργο. Εμφανίζει το κείμενο "Connecting …" για μερικά δευτερόλεπτα στην οθόνη. Μετά τη σύνδεση στο διαδίκτυο, το έργο συνδέεται με έναν προκαθορισμένο ραδιοφωνικό σταθμό. Το υλικό λειτουργεί όπως αναμενόταν, αλλά τώρα ας δούμε την πλευρά του λογισμικού του έργου.

Βήμα 6: Ο Κώδικας του Έργου

Ο Κώδικας του Έργου
Ο Κώδικας του Έργου
Ο Κώδικας του Έργου
Ο Κώδικας του Έργου

Πρώτα απ 'όλα, επιτρέψτε μου να σας δείξω κάτι. Ο κώδικας του έργου είναι μικρότερος από 140 γραμμές κώδικα. Σκεφτείτε το, μπορούμε να δημιουργήσουμε ένα διαδικτυακό ραδιόφωνο με οθόνη 3,5”με 140 γραμμές κώδικα, αυτό είναι εκπληκτικό. Μπορούμε να τα επιτύχουμε όλα αυτά χρησιμοποιώντας διάφορες βιβλιοθήκες φυσικά που περιέχουν χιλιάδες γραμμές κώδικα. Αυτή είναι η δύναμη του Arduino και της κοινότητας ανοιχτού κώδικα. Κάνει τα πράγματα εύκολα για τους κατασκευαστές.

Σε αυτό το έργο, χρησιμοποιώ τη βιβλιοθήκη VS1053 για τον πίνακα ESP32.

Αρχικά, πρέπει να ορίσουμε το SSID και τον κωδικό πρόσβασης του δικτύου Wi-Fi. Στη συνέχεια, πρέπει να αποθηκεύσουμε ορισμένους ραδιοφωνικούς σταθμούς εδώ. Χρειαζόμαστε το URL κεντρικού υπολογιστή, τη διαδρομή όπου βρίσκεται η ροή και τη θύρα που πρέπει να χρησιμοποιήσουμε. Αποθηκεύουμε όλες αυτές τις πληροφορίες σε αυτές τις μεταβλητές.

char ssid = "yourSSID"; // το SSID του δικτύου σας (όνομα) char pass = "yourWifiPassword"; // τον κωδικό πρόσβασης δικτύου σας

// Λίγοι ραδιοφωνικοί σταθμοί

char *host [4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char *path [4] = {"/1", "/ert-kosmos", "/realfm", "/skai1003"}; int θύρα [4] = {8062, 80, 80, 80};

Έχω συμπεριλάβει 4 ραδιοφωνικούς σταθμούς σε αυτό το παράδειγμα.

Στη λειτουργία ρύθμισης συνδέουμε διακοπές στα κουμπιά, αρχικοποιούμε τη μονάδα αποκωδικοποιητή MP3 και συνδέουμε το Wi-Fi.

void setup () {

Serial.begin (9600); καθυστέρηση (500)? SPI.begin ();

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);

attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }

Στη λειτουργία βρόχου, πρώτα απ 'όλα, ελέγχουμε αν ο χρήστης έχει επιλέξει διαφορετικό ραδιοφωνικό σταθμό από αυτόν από τον οποίο λαμβάνουμε δεδομένα. Εάν ναι, συνδέουμε τον νέο ραδιοφωνικό σταθμό, διαφορετικά λαμβάνουμε δεδομένα από τη ροή και τα στέλνουμε στη μονάδα αποκωδικοποιητή MP3.

void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = ραδιοσταθμός; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}

Αυτό είναι όλο! Όταν ο χρήστης πατήσει ένα κουμπί, συμβαίνει μια διακοπή και αλλάζει την τιμή μιας μεταβλητής η οποία καθορίζει σε ποια ροή θα συνδεθεί.

void IRAM_ATTR previousButtonInterrupt () {

στατικό ανυπόγραφο long_interrupt_time = 0;

unsigned long interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; αλλιώς radioStation = 3; } last_interrupt_time = interrupt_time; }

Για να ενημερώσουμε την οθόνη, απλώς στέλνουμε μερικές εντολές στη σειριακή θύρα.

void drawRadioStationName (int id) {εντολή συμβολοσειράς; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (εντολή); endNextionCommand (); Διακοπή; // 1940 Θήκη Ραδιοφώνου του Ηνωμένου Βασιλείου 1: command = "p1.pic = 3"; Serial.print (εντολή); endNextionCommand (); Διακοπή; // KOSMOS GREEK case 2: command = "p1.pic = 4"; Serial.print (εντολή); endNextionCommand (); Διακοπή; // REAL FM GREEK περίπτωση 3: command = "p1.pic = 5"; Serial.print (εντολή); endNextionCommand (); Διακοπή; // SKAI 100.3 GREEK}}

Τώρα ας ρίξουμε μια ματιά στο GUI του Nextion Display. Το GUI Nextion αποτελείται από μια εικόνα φόντου και μια εικόνα που εμφανίζει το όνομα του Ραδιοφωνικού Σταθμού. Ο πίνακας ESP32 στέλνει εντολές για να αλλάξετε το όνομα του ραδιοφωνικού σταθμού από τις ενσωματωμένες εικόνες. Είναι πολύ εύκολο. Παρακαλώ παρακολουθήστε το σεμινάριο εμφάνισης Nextion που έχω ετοιμάσει πριν από λίγο καιρό για περισσότερες πληροφορίες. Μπορείτε να σχεδιάσετε γρήγορα το δικό σας GUI εάν το επιθυμείτε και να εμφανίσετε περισσότερα πράγματα σε αυτό.

Όπως πάντα, μπορείτε να βρείτε τον κωδικό του έργου που επισυνάπτεται σε αυτό το Instructable.

Βήμα 7: Τελικές σκέψεις & βελτιώσεις

Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις
Τελικές σκέψεις & βελτιώσεις

Αυτό το έργο είναι πολύ απλό. Wantedθελα έναν απλό σκελετό έργου Internet Radio για να δουλέψω. Τώρα που μια πρώτη έκδοση του έργου είναι έτοιμη, μπορούμε να προσθέσουμε πολλές δυνατότητες σε αυτό για να το βελτιώσουμε. Πρώτα απ 'όλα, πρέπει να σχεδιάσω ένα περίβλημα για να στεγάσει όλα τα ηλεκτρονικά.

Σε αυτό το βιβλίο για τα πιο όμορφα ραδιόφωνα που έγιναν ποτέ, υπάρχουν πολύ δροσερά ραδιόφωνα για να διαλέξετε ως περίβλημα για αυτό το έργο. Νομίζω ότι θα χτίσω έναν περίβολο γύρω από αυτό το εντυπωσιακό ραδιόφωνο Art Deco. Τι πιστεύετε, σας αρέσει η εμφάνιση αυτού του ραδιοφώνου ή προτιμάτε κάτι πιο μοντέρνο; Έχετε άλλες ιδέες περίφραξης; Επίσης, σας αρέσει αυτό το έργο Internet Radio και ποιες δυνατότητες πιστεύετε ότι πρέπει να προσθέσουμε σε αυτό για να το κάνουμε πιο χρήσιμο; Θα ήθελα πολύ να διαβάσω τις σκέψεις και τις ιδέες σας, οπότε, παρακαλούμε να τις δημοσιεύσετε στην παρακάτω ενότητα σχολίων.

Συνιστάται: