תוכן עניינים:

רדיו אינטרנט באמצעות ESP32: 7 שלבים (עם תמונות)
רדיו אינטרנט באמצעות ESP32: 7 שלבים (עם תמונות)

וִידֵאוֹ: רדיו אינטרנט באמצעות ESP32: 7 שלבים (עם תמונות)

וִידֵאוֹ: רדיו אינטרנט באמצעות ESP32: 7 שלבים (עם תמונות)
וִידֵאוֹ: ESP32-2432s028 webradio player 2024, יוני
Anonim
Image
Image
רדיו אינטרנט באמצעות ESP32
רדיו אינטרנט באמצעות ESP32
רדיו אינטרנט באמצעות ESP32
רדיו אינטרנט באמצעות ESP32

חברים יקרים ברוכים הבאים לעוד הוראה! היום אנו הולכים לבנות מכשיר רדיו אינטרנט עם מסך גדול בגודל 3.5 אינץ 'באמצעות לוח ESP32 זול. תאמין או לא, עכשיו אנחנו יכולים לבנות רדיו אינטרנט בפחות מעשר דקות ועם פחות מ -30 $. יש הרבה מה לכסות אז בואו נתחיל!

לפני מספר חודשים סיימתי פרויקט רדיו FM Arduino שעובד מצוין ונראה אפילו טוב יותר לדעתי. אם אתה רוצה לראות איך בניתי את הפרויקט הזה אתה יכול לקרוא את המדריך כאן. הבעיה היא שלמרות שהרדיו הזה נראה מגניב הוא לא מעשי מכיוון שאני גר בעיירה קטנה בדרום יוון ותחנות הרדיו היווניות הגדולות שאני מעדיף להקשיב להן, אין לי משדרים בסביבה. אז, אני מקשיב לרדיו האהוב עלי באינטרנט במחשב הנייד או הטאבלט שלי וזה גם לא כל כך מעשי. אז, היום אני עומד לבנות מכשיר רדיו אינטרנט בכדי שאוכל להאזין לתחנות הרדיו האהובות עלי מכל רחבי העולם!

כפי שאתה יכול לראות, גרסה ראשונה של הפרויקט מוכנה על לוח לחם. בואו נפעיל אותו. כפי שאתה יכול לראות הפרויקט מתחבר לאינטרנט ואז משדר מוזיקה מתחנות רדיו מוגדרות מראש.

התחברתי לתחנת הרדיו Real FM מאתונה ובאמצעות כפתורים אלה נוכל לשנות את תחנת הרדיו שאנו מאזינים לה. שמרתי את תחנות הרדיו האהובות עליי בזיכרון ה- ESP32 כדי שאוכל לגשת אליהן בקלות. בעזרת פוטנציומטר זה אני יכול לשנות את עוצמת הקול של הרמקול. אני מציג את שם תחנת הרדיו שאנו מאזינים לה במסך גדול בגודל 3.5 אינץ 'עם ממשק משתמש רטרו. הפרויקט עובד מצוין וקל מאוד לבנות אותו.

אתה יכול לבנות את אותו פרויקט בפחות מעשר דקות אבל אתה צריך להיות בעל ניסיון. אם זהו הפרויקט הראשון שלך, שקול קודם כל לבנות פרויקט פשוט יותר, כדי לצבור קצת ניסיון. בדוק את המדריכים שלי לרעיונות פשוטים לפרויקטים וכאשר נוח לך יותר עם הארדואינו האלקטרוניקה תחזור לבנות את הפרויקט המגניב הזה. בואו נתחיל לבנות רדיו אינטרנט משלנו.

עדכון 6/6/2019

בעיית הרעש נפתרה על ידי הוספת שנאי מבודד. בדוק את התרשים הסמטי המעודכן. תודה!

שלב 1: קבל את כל החלקים

קבל את כל החלקים
קבל את כל החלקים

אנו נזדקק לחלקים הבאים:

  • ESP32 ▶
  • מפענח MP3 ▶
  • שנאי בידוד ▶
  • מגבר ▶
  • רמקול 3W ▶
  • 3.5 אינץ 'תצוגת Nextion ▶
  • לחצני לחיצה ▶
  • לוח לחם ▶
  • חוטים ▶

העלות הכוללת של הפרויקט היא בסביבות 40 $, אך אם אינך משתמש בתצוגה עלות הפרויקט היא בסביבות 20 $. דברים מדהימים. אנחנו יכולים לבנות רדיו אינטרנט משלנו עם 20 $ בלבד!

שלב 2: לוח ESP32

Image
Image
לוח ESP32
לוח ESP32
לוח ESP32
לוח ESP32

לב הפרויקט הוא כמובן לוח ה- ESP32 החזק. אם אינך מכיר אותו, שבב ESP32 הוא ממשיכו של שבב ה- ESP8266 הפופולרי שהשתמשנו בו פעמים רבות בעבר. ה- ESP32 הוא חיה! הוא מציע שתי ליבות עיבוד של 32 סיביות הפועלות ב -160 מגה -הרץ, כמות עצומה של זיכרון, WiFi, בלוטות 'ותכונות רבות אחרות בעלות של כ -7 $! דברים מדהימים!

אנא צפה בסקירה המפורטת שהכנתי ללוח זה. צירפתי את הסרטון במדריך זה. זה יעזור להבין מדוע שבב זה ישנה את הדרך בה אנו מייצרים דברים לנצח! אחד הדברים המרגשים ביותר ב- ESP32 הוא שלמרות שהוא כה חזק, הוא מציע מצב שינה עמוקה הדורש זרם של 10 מיקרון בלבד. זה הופך את ESP32 לשבב האידיאלי ליישומים בעלי הספק נמוך.

בפרויקט זה, לוח ESP32 מתחבר לאינטרנט ואז הוא מקבל נתוני MP3 מתחנת הרדיו שאנו מקשיבים לה, והיא שולחת כמה פקודות לתצוגה.

שלב 3: מפענח MP3

מפענח MP3
מפענח MP3
מפענח MP3
מפענח MP3

נתוני MP3 נשלחים לאחר מכן למודול מפענח MP3 באמצעות ממשק SPI. מודול זה משתמש ב- IC1053. IC זה הוא מפענח חומרה MP3 ייעודי. הוא מקבל את נתוני MP3 מה- ESP32 וממיר אותם ממש לאות שמע.

אות השמע שהוא פולט בשקע השמע הזה חלש ורועש, לכן עלינו לנקות אותו מהרעש ולהגביר אותו. (אם אתה משתמש באוזניות, אין צורך לנקות את האות מרעש או להעצים אותו.) לכן אני משתמש בשנאי בידוד כדי לנקות את השמע מהרעש ומגבר שמע PAM8403 כדי להגביר את אות השמע ולאחר מכן לשלוח אותו לדובר. חיברתי גם שני כפתורים ל- ESP32 רק כדי לשנות את זרם ה- MP3 שאליו אנו מקבלים נתונים ותצוגה של Nextion להצגת תחנת הרדיו שאנו מאזינים לה.

שלב 4: תצוגת Nextion

Image
Image
חיבור כל החלקים
חיבור כל החלקים

בחרתי להשתמש בתצוגה של Nextion לפרויקט זה מכיוון שהיא קלה מאוד לשימוש. אנחנו רק צריכים לחבר חוט אחד כדי לשלוט בו.

תצוגות Nextion הן תצוגות מסוג חדש. יש להם מעבד ARM משלהם האחורי האחראי לנהיג את התצוגה ויצירת ממשק המשתמש הגרפי. לכן, אנו יכולים להשתמש בהם עם כל מיקרו -בקר ולהשיג תוצאות מרהיבות. הכנתי סקירה מפורטת של תצוגת Nextion זו המסבירה לעומק כיצד הם עובדים, כיצד להשתמש בהם וחסרונותיהם. תוכלו לקרוא אותו כאן, או לצפות בסרטון המצורף.

שלב 5: חיבור כל החלקים

חיבור כל החלקים
חיבור כל החלקים
חיבור כל החלקים
חיבור כל החלקים

כל שעלינו לעשות כעת הוא לחבר את כל החלקים יחד על פי התרשים הסכימטי הזה. תוכל למצוא את התרשים הסכימטי המצורף כאן. החיבור פשוט.

עם זאת, יש לשים לב לשני דברים. מודול מפענח MP3 משדר אות סטריאו אך אני משתמש בערוץ שמע אחד בלבד בפרויקט זה. על מנת לקבל את אות השמע, חיברתי כבל שמע לשקע השמע של המודול, וחתכתי אותו כדי לחשוף ארבעה חוטים בפנים. חיברתי שניים מהחוטים. אחד מהם הוא ה- GND והשני הוא אות השמע של אחד משני ערוצי השמע. אם תרצה תוכל לחבר את שני הערוצים למודול המגבר ולהניע שני רמקולים.

כל ערוץ שמע חייב לעבור דרך שנאי הבידוד כדי לנקות כל רעש שקיים לפני שהוא מתחבר למגבר

כדי לשלוח נתונים לתצוגה, עלינו לחבר חוט אחד בלבד לפין TX0 של ה- ESP32. לאחר חיבור החלקים, עלינו לטעון את הקוד ל- ESP32, ועלינו לטעון את ה- GUI לתצוגת Nextion.

כדי לטעון את ה- GUI לתצוגה של Nextion, העתק את הקובץ InternetRadio.tft שאני הולך לחלוק איתך לכרטיס SD ריק. הכנס את כרטיס ה- SD לחריץ כרטיס ה- SD בחלק האחורי של המסך. לאחר מכן הפעל את הצג, וה- GUI ייטען. לאחר מכן הסר את כרטיס ה- SD וחבר שוב את המתח.

לאחר טעינת הקוד בהצלחה, בואו להפעיל את הפרויקט. הוא מציג את הטקסט "מתחבר …" למשך מספר שניות בתצוגה. לאחר חיבור לאינטרנט הפרויקט מתחבר לתחנת רדיו מוגדרת מראש. החומרה פועלת כצפוי אך כעת נראה את הצד התוכנתי של הפרויקט.

שלב 6: קוד הפרויקט

קוד הפרויקט
קוד הפרויקט
קוד הפרויקט
קוד הפרויקט

קודם כל, תן לי להראות לך משהו. קוד הפרויקט הוא פחות מ -140 שורות קוד. תחשוב על זה, אנחנו יכולים לבנות רדיו אינטרנט עם תצוגת 3.5 אינץ 'עם 140 שורות קוד, זה מדהים. אנו יכולים להשיג את כל זה באמצעות ספריות שונות כמובן המכילות אלפי שורות קוד. זהו כוחם של ארדואינו וקהילת הקוד הפתוח. זה מקל על היצרנים.

בפרויקט זה, אני משתמש בספריית VS1053 ללוח ESP32.

בהתחלה עלינו להגדיר את ה- SSID ואת הסיסמה של רשת ה- Wi-Fi. לאחר מכן, עלינו לשמור כאן כמה תחנות רדיו. אנחנו צריכים את כתובת האתר המארחת, את הנתיב שבו נמצא הזרם ואת היציאה שבה אנו צריכים להשתמש. אנו שומרים את כל המידע הזה במשתנים אלה.

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 port [4] = {8062, 80, 80, 80};

כללתי 4 תחנות רדיו בדוגמה זו.

בפונקציית ההתקנה אנו מצרפים הפרעות לכפתורים, אנו מאתחלים את מודול מפענח ה- MP3 ומתחברים ל- Wi-Fi.

הגדרת בטל () {

Serial.begin (9600); עיכוב (500); SPI.begin ();

pinMode (הקודם כפתור, INPUT_PULLUP);

pinMode (כפתור הבא, INPUT_PULLUP);

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

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

בפונקציית הלולאה, קודם כל, אנו בודקים אם המשתמש בחר תחנת רדיו שונה מזו שאנו מקבלים נתונים ממנה. אם כן, אנו מתחברים לתחנת הרדיו החדשה אחרת אנו מקבלים נתונים מהזרם ושולחים אותם למודול מפענח MP3.

לולאת void () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = radioStation; } אם (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}

זה הכל! כאשר המשתמש לוחץ על כפתור, מתרחשת הפרעה ומשנה את הערך של משתנה שאומר לאיזה זרם להתחבר.

void IRAM_ATTR previousButtonInterrupt () {

סטטי לא חתום ארוך last_interrupt_time = 0;

interrupt_time ארוך ללא חתום = מיליס (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; אחרת radioStation = 3; } אחרון_הפרעה_זמן = interrupt_time; }

כדי לעדכן את התצוגה, אנו פשוט שולחים כמה פקודות ליציאה הטורית.

void drawRadioStationName (int id) {פקודת מחרוזת; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (פקודה); endNextionCommand (); לשבור; // 1940 מקרה רדיו בבריטניה 1940: command = "p1.pic = 3"; Serial.print (פקודה); endNextionCommand (); לשבור; // KOSMOS GREEK מקרה 2: command = "p1.pic = 4"; Serial.print (פקודה); endNextionCommand (); לשבור; // REAL FM GREEK מקרה 3: command = "p1.pic = 5"; Serial.print (פקודה); endNextionCommand (); לשבור; // SKAI 100.3 יוונית}}

עכשיו בואו נסתכל על GUI לתצוגה של Nextion. ה- GUI של Nextion מורכב מתמונת רקע ותמונה המציגה את שם תחנת הרדיו. לוח ESP32 שולח פקודות לשינוי שם תחנת הרדיו מהתמונות המוטבעות. זה מאוד קל. אנא צפה במדריך התצוגה של Nextion שהכנתי לפני זמן מה למידע נוסף. תוכל לעצב במהירות GUI משלך אם תרצה ולהציג בו עוד דברים.

כמו תמיד אתה יכול למצוא את הקוד של הפרויקט המצורף במדריך זה.

שלב 7: מחשבות ושיפורים אחרונים

מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים

פרויקט זה פשוט מאוד. רציתי שלד פשוט של פרויקט רדיו אינטרנט לעבוד איתו. כעת, לאחר שגרסה ראשונה של הפרויקט מוכנה אנו יכולים להוסיף לו תכונות רבות לשיפורו. קודם כל, אני צריך לעצב מארז שיכיל את כל האלקטרוניקה.

בספר זה על הרדיו היפה ביותר שנעשו אי פעם יש מכשירי רדיו מגניבים מאוד לבחירה כמארז לפרויקט זה. אני חושב שאני הולך לבנות מתחם סביב הרדיו המרהיב הזה באר -דקו. מה אתה חושב, האם אתה אוהב את המראה של הרדיו הזה או שאתה מעדיף משהו מודרני יותר? האם יש לך רעיונות נוספים למארז? כמו כן, האם אתה אוהב את פרויקט רדיו האינטרנט הזה ואילו תכונות אתה חושב שעלינו להוסיף לו כדי שיהיה שימושי יותר? אשמח לקרוא את מחשבותיך ורעיונותיך, אנא פרסם אותן בסעיף ההערות למטה.

מוּמלָץ: