- RDA5807M IC
- ஐசி பி.டி .2258
- திட்டவட்டமான
- கூறுகள் தேவை
- Google உதவியாளரிடமிருந்து தரவை எவ்வாறு பெறுகிறோம்?
- தகவல்தொடர்புக்கான அடாஃப்ரூட் கணக்கை அமைத்தல்
- FM வானொலியில் IFTTT தரகரை அமைத்தல்
- Arduino Code மற்றும் விளக்கம்
- Arduino ஐப் பயன்படுத்தி குரல் கட்டுப்பாட்டு FM வானொலியை சோதித்தல்
- மேலும் விரிவாக்கம்
இப்போதெல்லாம், நம்மில் பெரும்பாலோர் எங்கள் ஸ்மார்ட்போன்களுடன் இசையைக் கேட்க விரும்புகிறார்கள். ஆனால் சில ஆண்டுகளுக்கு முன்பு, இது அப்படி இல்லை, அந்த நேரத்தில், இசை, பாட்காஸ்ட்கள், செய்திகள் மற்றும் பிறவற்றைக் கேட்பதற்கான முதல் தேர்வாக எஃப்.எம் ரேடியோக்கள் இருந்தன. இப்போதெல்லாம் இசை, செய்தி மற்றும் பிறவற்றிற்காக யாரும் வானொலியைக் கேட்பதில்லை, பாட்டி மற்றும் தாத்தா ஒரு விதிவிலக்கு.
எனவே, எஃப்எம் வானொலியின் பழைய மகிமையை சிறிது புதுப்பிக்க, இந்த திட்டத்தில், கூகிள் உதவி மற்றும் பிரபலமான RDA5870M சூப்பர்ஹீட்டரோடைன் ரிசீவர் ஐசி ஆகியவற்றைப் பயன்படுத்தி குரல் கட்டுப்பாட்டு எஃப்எம் வானொலியை உருவாக்க உள்ளேன்.
மேலும், எங்கள் முந்தைய எஃப்எம் ரேடியோ சுற்றுகளை சரிபார்க்கவும்:
- Arduino அடிப்படையிலான FM வானொலி
- Arduino ஐப் பயன்படுத்தி ஸ்மார்ட் போன் கட்டுப்படுத்தப்பட்ட FM ரேடியோ
- எளிய எஃப்எம் டிரான்ஸ்மிட்டர் சுற்று
- எஃப்எம் டிரான்ஸ்மிட்டர் சர்க்யூட்டை எவ்வாறு உருவாக்குவது
RDA5807M IC
RDA5807M என்பது மிகவும் ஒருங்கிணைந்த ஒற்றை-சிப் எஃப்எம் ஸ்டீரியோ ரேடியோ ட்யூனராகும், இது முழுமையான ஒருங்கிணைந்த சின்தசைசர், ஐஎஃப் செலக்டிவிட்டி, ஆர்.டி.எஸ் / ஆர்.பி.டி.எஸ் மற்றும் எம்.பி.எக்ஸ் டிகோடரைக் கொண்டுள்ளது, இது 50 மெகா ஹெர்ட்ஸ் முதல் 115 மெகா ஹெர்ட்ஸ் அதிர்வெண் வரம்பை ஆதரிக்கிறது. இது மிகவும் மலிவான ஒற்றை-சிப் எஃப்எம் ரிசீவர் ஐசி ஆகும், இது செயல்படுவதற்கு மிகக் குறைந்த வெளிப்புற கூறுகள் தேவைப்படுகின்றன. எந்தவொரு முதன்மை சாதனத்துடனும் தொடர்புகொள்வதற்கு இந்த ஐசி ஐ 2 சி இடைமுகத்தைப் பயன்படுத்துகிறது, எனவே இந்த அம்சம் அனைத்தும் சிறிய சாதனங்களுக்கு மிகவும் பொருத்தமானதாக அமைகிறது.
இந்த ஐ.சி உள் ஆடியோ செயலியைக் கொண்டுள்ளது, இது அதன் சிறந்த ஆடியோ தரத்திற்கு பொறுப்பாகும்.
சில அடிப்படை அம்சங்கள் பின்வருமாறு-
- உலகளாவிய அதிர்வெண் இசைக்குழுக்களுக்கான ஆதரவு
- RDS / RBDS க்கான ஆதரவு
- டிஜிட்டல் லோ-ஐஎஃப் ட்யூனர்
- முழுமையாக ஒருங்கிணைந்த டிஜிட்டல் அதிர்வெண் சின்தசைசர்
- டிஜிட்டல் ஆட்டோ ஆதாயக் கட்டுப்பாடு (ஏஜிசி)
- பாஸ் பூஸ்ட்
- 32Ω எதிர்ப்பு ஏற்றுதலை நேரடியாக ஆதரிக்கவும்
- ஒருங்கிணைந்த எல்.டி.ஓ சீராக்கி மற்றும் பல
RDA5807 ஐப் பயன்படுத்தி Arduino அடிப்படையிலான FM Radio என்ற திட்டத்தின் மூலம் இந்த ஐசி பற்றி மேலும் அறியலாம்.
ஐசி பி.டி.2258

PT2258 என்பது 6-சேனல் எலக்ட்ரானிக் தொகுதி கட்டுப்பாட்டாளராகப் பயன்படுத்தப்பட்ட ஒரு ஐ.சி ஆகும் , இந்த ஐசி பல சேனல் ஆடியோ-வீடியோ பயன்பாடுகளுக்காக சிறப்பாக வடிவமைக்கப்பட்ட CMOS தொழில்நுட்பத்தைப் பயன்படுத்துகிறது.
இந்த ஐசி ஒரு ஐ 2 சி கண்ட்ரோல் இன்டர்ஃபேஸை 1 டிபி / ஸ்டெப்பில் 0 முதல் -79 டிபி வரையிலான வரம்புடன் வழங்குகிறது மற்றும் இது 20-பின் டிஐபி அல்லது எஸ்ஓபி தொகுப்பில் வருகிறது.
சில அடிப்படை அம்சங்கள் அடங்கும்-
- 6-உள்ளீடு மற்றும் வெளியீட்டு சேனல்கள் (5.1 முகப்பு ஆடியோ அமைப்புகளுக்கு)
- தேர்ந்தெடுக்கும் I2C முகவரி (டெய்ஸி-சங்கிலி பயன்பாட்டிற்கு)
- உயர் சேனல் பிரிப்பு (குறைந்த சத்தம் பயன்பாட்டிற்கு)
- > 100dB இன் S / N விகிதம்
- இயக்க மின்னழுத்தம் 5 முதல் 9 வி ஆகும்
PT2258 டிஜிட்டல் ஆடியோ தொகுதி கட்டுப்பாட்டு திட்டத்தில் இந்த ஐசி பற்றி நாங்கள் முன்பு விளக்கினோம். இந்த ஐ.சி பற்றி மேலும் தெரிந்து கொள்ள விரும்பினால் அந்த திட்டத்தை நீங்கள் சரிபார்க்கலாம்.
திட்டவட்டமான
கூகிள் உதவி கட்டுப்பாட்டு எஃப்எம் வானொலியின் சுற்று வரைபடம் கீழே கொடுக்கப்பட்டுள்ளது:

கூறுகள் தேவை
- NodeMCU மைக்ரோகண்ட்ரோலர் - 1
- PT2258 டிஜிட்டல் தொகுதி கட்டுப்பாட்டாளர் - 1
- RDA5807 FM ரேடியோ தொகுதி - 1
- SPDT ரிலே 6 வி - 1
- 1n4007 டையோடு - 1
- திருகு முனையம் 5 மிமீஎக்ஸ் 2 - 1
- 3.5 மிமீ தலையணி பலா - 1
- லாஜிக் நிலை மாற்றி - 1
- 10 கே மின்தடை, 5% - 4
- 150 கே மின்தடை, 5% - 4
- 100 கே மின்தடை, 5% - 2
- 10uF மின்தேக்கி - 6
- 0.1uF மின்தேக்கி - 1
- ஜம்பர் வயர் - 10
Google உதவியாளரிடமிருந்து தரவை எவ்வாறு பெறுகிறோம்?
கூகிள் உதவியாளர் மற்றும் நோட்எம்சியு இடையேயான தகவல்தொடர்பு செயல்முறையின் அடிப்படை யோசனையை மேலே உள்ள படம் உங்களுக்கு வழங்குகிறது.
அடாஃப்ரூட் ஐஓ சேவையகத்தில் தரவை மாற்றியமைக்க Google உதவியாளருக்கு அதிகாரம் உள்ளது, MQTT உடன் IFTTT ஒரு தரகராக செயல்படுகிறது.
சேவையக பக்கத்தில் (அடாஃப்ரூட் IO) ஏதேனும் தரவு மாற்றம் ஏற்பட்டால், அது NodeMCU பக்கத்தில் பிரதிபலிக்கிறது. இதை அடைய, கீழே கொடுக்கப்பட்டுள்ள வழிமுறைகளைப் பின்பற்ற வேண்டும்-
தகவல்தொடர்புக்கான அடாஃப்ரூட் கணக்கை அமைத்தல்
முதலில், ஒரு Adafruit IO கணக்கை உருவாக்கவும். உங்கள் நற்சான்றுகளுடன் அடாஃப்ரூட் IO இல் உள்நுழைக அல்லது உங்களிடம் கணக்கு இல்லையென்றால் பதிவுபெறுக. அலெக்ஸா கட்டுப்படுத்தப்பட்ட எல்.ஈ.டி, ராஸ்பெர்ரி பை ஹோம் ஆட்டோமேஷன் மற்றும் பல ஐ.ஓ.டி அடிப்படையிலான திட்டங்களை உருவாக்க நாங்கள் முன்பு அடாஃப்ரூட் ஐ.ஓ.

அடாஃப்ரூட் கணக்கில் உள்நுழைந்த பிறகு, கிளிக் , டாஷ்போர்டுகளை என்பதைக் கிளிக் செய்யவும் ஒரு புதிய டாஷ்போர்டு உருவாக்கு> அதிரடி .
அடுத்து, எங்கள் புதிய டாஷ்போர்டின் புதிய பெயரையும் சுருக்கமான விளக்கத்தையும் சேர்க்க உள்ளோம் .
நீங்கள் டாஷ்போர்டை உருவாக்கிய பிறகு, உங்கள் கணக்கிலிருந்து பயனர்பெயர் மற்றும் செயலில் உள்ள விசையை ஆர்டுயினோ குறியீட்டில் தேவைப்படுவதால் பெற வேண்டும். KEY ஐகானைக் கிளிக் செய்வதன் மூலம் அதைப் பெறலாம்.

அதன் பிறகு, மூன்று தொகுதிகள் செய்யுங்கள்; ஒரு மாற்று தொகுதி, ஒரு பாதை தொகுதி, ஒரு உரை தொகுதி.
கூகிள் உதவிக்கும் NodeMCU க்கும் இடையிலான தகவல்தொடர்புக்கு இந்த தொகுதிகள் காரணமாக இருப்பதால் தொகுதிகள் மிகவும் முக்கியம்.
ஒரு தடுப்பை உருவாக்க, மேல் வலது மூலையில் உள்ள + அடையாளத்தைக் கிளிக் செய்ய வேண்டும்.

அடுத்து, நாங்கள் தொகுதிகளை உருவாக்கப் போகிறோம்.

அடுத்து, நீங்கள் ஒவ்வொரு தொகுதி, அதற்காக அமைக்க வேண்டும், நீங்கள் செய்ய வேண்டியது டிக் ஒரு குறிப்பிட்ட தொகுதி மீது கிளிக் அடுத்த வழிமுறை.
இந்த திட்டத்திற்கு, மாற்று பொத்தானைத் தவிர வேறு எந்த அமைப்புகளையும் மாற்ற வேண்டிய அவசியமில்லை.
மாற்று பொத்தானை உரை உள்ளது மூலதன கடிதங்கள், நீங்கள் அதை ஒரு செய்ய வேண்டும் சிறிய கடிதம் மற்றும் மாற்றங்கள் புதுப்பிக்க.
அவ்வளவுதான், அடாபிரூட் ஐஓவில் நீங்கள் அமைக்க வேண்டிய அனைத்தும் இதுதான்.
எனது இறுதித் திரை இப்படி இருக்கிறது-

FM வானொலியில் IFTTT தரகரை அமைத்தல்
எப்போதும் போல, பதிவு நீங்கள் ஒரு கணக்கு இல்லை அல்லது இல்லை எனில் உள்நுழை நீங்கள் ஏற்கனவே ஒரு கணக்கு இருந்தால்.

இப்போது, நீங்கள் ஒரு ஆப்லெட்டை உருவாக்க வேண்டும். அதற்கு, கீழே உள்ள படிகளைப் பின்பற்றவும்:
ஒரு ஆப்லெட் செய்ய, உங்கள் கிளிக் கணக்கின் ஐகான் மற்றும் உருவாக்கவும் கிளிக் செய்யவும்.
உருவாக்கு திரையில், இருந்தால் + ஐகானைக் கிளிக் செய்க.

அதன் பிறகு, உங்கள் Google கணக்கை அணுக அனுமதிக்க வேண்டும் .
அதற்காக, நீங்கள் தேடல் பட்டியில் கூகிள் உதவியாளரைத் தேட வேண்டும் மற்றும் கூகிள் உதவியாளர் ஐகானைக் கிளிக் செய்ய வேண்டும்.

அடுத்த திரையில், நாம் ஒரு தூண்டுதலை தேர்வு செய்ய வேண்டும், அடாஃப்ரூட் ஐஓ சேவையகத்தில் நாங்கள் மூன்று தொகுதிகளை உருவாக்கியுள்ளோம் என்பதை நினைவில் கொள்ளுங்கள், அந்த மூன்று தொகுதிகளுக்கும் தூண்டுதல்களை உருவாக்க வேண்டும் .
முதலில், ரேடியோ ஸ்டேஷன் பிளாக், அதற்காக, ஒரு உரை மூலப்பொருளைக் கொண்ட ஒரு சொற்றொடரைச் சொல்ல வேண்டும் .
அடுத்த திரையில், நீங்கள் என்ன சொல்ல விரும்புகிறீர்கள் மற்றும் Google உதவியாளர் உங்களுக்கு என்ன பதிலளிக்க வேண்டும் என்பதை நாங்கள் தட்டச்சு செய்ய வேண்டும் .

பின்னர் உருவாக்கு தூண்டுதல் பொத்தானைக் கிளிக் செய்க.
நீங்கள் முடிந்த அடுத்த திரையில், இந்த மாதிரி ஏதாவது தெரிகிறது என்றால் பகுதியாக, அதை நேரம் பின்னர் , பகுதி கிளிக் + பிறகு அடையாளம் பின்னர் .

கீழேயுள்ள படம் போன்ற ஒரு திரை உங்களுக்கு வழங்கப்படும், அடாஃப்ரூட்டைத் தேடுங்கள், அடாஃப்ரூட் ஐகானைக் கிளிக் செய்க.

அடுத்து, உங்கள் Adafruit கணக்கை IFTTT உடன் அங்கீகரிக்கவும், பின்னர் இணைக்கவும் என்பதைக் கிளிக் செய்யவும் .
அடுத்து, நீங்கள் Adafruit IO க்கு தரவை அனுப்பு என்பதைக் கிளிக் செய்ய வேண்டும் .
அடாஃப்ரூட் கணக்கில் நீங்கள் முன்னர் உருவாக்கிய ஊட்டங்களின் கீழ்தோன்றல் உங்களுக்கு வழங்கப்படும் .
ஏதேனும் ஒன்றைத் தேர்ந்தெடுத்து உருவாக்கு செயலைக் கிளிக் செய்க , நீங்கள் இதை மூன்றிற்கும் செய்ய வேண்டும்.

அதனுடன், IFTTT செயல்முறையின் முடிவைக் குறிக்கிறது, எனது இறுதி ஆப்லெட் திரை இதுபோல் தெரிகிறது,

Arduino Code மற்றும் விளக்கம்
ஐ.சி மற்றும் அடாஃப்ரூட் ஐஓ ஐஎஃப்டிடி மற்றும் வைஃபை இடையேயான தகவல்தொடர்புக்கு இடையிலான அனைத்து தகவல்தொடர்புகளையும் நிர்வகிக்க ஆர்டுயினோ குறியீடு உள்ளது. இந்த டுடோரியலின் முடிவில் இந்த Arduino நானோ FM வானொலியின் முழுமையான குறியீடு கொடுக்கப்பட்டுள்ளது. குறியீடு சிறிது நீளமானது மற்றும் சிக்கலானது, இங்கே முழுமையான குறியீடு வரியை வரியாக விளக்கியுள்ளோம்.
முதலில், தேவையான அனைத்து நூலகங்களையும் நாம் சேர்க்க வேண்டும், அவை:
#சேர்க்கிறது
பின்னர், WI-FI க்கான SSID மற்றும் கடவுச்சொல்லை வரையறுக்கவும், இது உங்கள் திசைவியின் SSID மற்றும் கடவுச்சொல்.
const char * ssid = "Android"; // உங்கள் திசைவியின் SSID const char * password = "12345678"; // உங்கள் திசைவியின் கடவுச்சொல்
பின்னர் நாங்கள் இரண்டு பூலியன்கள் மற்றும் ஒரு மாறியை வரையறுக்கிறோம், ஐ.சி.யின் தகவல்தொடர்பு நிலையை வைத்திருக்க பூலியன்கள் பயன்படுத்தப்படுகின்றன, மேலும் தொகுதி அளவை அமைக்க தொகுதி மாறி பயன்படுத்தப்படுகிறது.
bool potStatus; // 1 MCU மற்றும் IC bool radioStatus க்கு இடையில் தொடர்பு நிறுவப்படும் போது; // 1 MCU மற்றும் IC int தொகுதி = 15 க்கு இடையில் தொடர்பு நிறுவப்படும் போது; ஐசியுடன் // இயல்புநிலை தொகுதி நிலை தொடங்குகிறது
பின்னர், பெருக்கியை இயக்க அல்லது அணைக்க ரிலே_பின் என்ற GPIO முள் அமைக்கிறோம் .
# ரிலே_பின் டி 7 ஐ வரையறுக்கவும் // இந்த முள் ரேடியோவை இயக்க மற்றும் அணைக்க பயன்படுகிறது
அடுத்து, அடாஃப்ரூட் ஐஓவுடன் தொடர்புகொள்வதற்கு தேவையான அனைத்து வரையறைகளையும் நாம் வரையறுக்க வேண்டும்.
# AIO_SERVER "io.adafruit.com" ஐ வரையறுக்கவும் # AIO_SERVERPORT 1883 // ஐ வரையறுக்கவும் SSL க்கு 8883 ஐப் பயன்படுத்தவும்
கீழேயுள்ள வரையறைகள் FIX_BAND என்பது நூலகத்தால் பயன்படுத்தப்படும் தனியுரிம வரையறை.
அடுத்த வரையறுக்கப்பட்ட அறிக்கை தொகுதியின் உள் அளவை அமைக்கிறது.
# FIX_BAND RADIO_BAND_FM ஐ வரையறுக்கவும் // <இந்த ஓவியத்தால் இசைக்குழு FM ஆகும். # FIX_RADIO_VOLUME 6 ஐ வரையறுக்கவும் /// <தொகுதியின் இயல்புநிலை தொகுதி.
அடுத்து, PT2258, RDA5807M மற்றும் WiFiClient க்கு தேவையான பொருட்களை உருவாக்கவும் .
PT2258 டிஜிட்டல் பாட்; // PT2258 பொருள் RDA5807M வானொலி; // RDA5807M பொருள் WiFiClient கிளையண்ட்; // வைஃபைக் கிளையண்ட் பொருள்
பின்னர் வைஃபை கிளையன்ட் மற்றும் எம்.க்யூ.டி.டி சேவையகம் மற்றும் உள்நுழைவு விவரங்களை கடந்து MQTT கிளையன்ட் வகுப்பை அமைக்கவும்.
Adafruit_MQTT_Client mqtt (& கிளையன்ட், AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
// வைஃபை கிளையன்ட் மற்றும் எம்.க்யூ.டி.டி சேவையகம் மற்றும் உள்நுழைவு விவரங்களை கடந்து MQTT கிளையன்ட் வகுப்பை அமைக்கவும்.
நாம் ஒரு ஊட்டத்திற்கு குழுசேர வேண்டும். அது என்ன கேட்கக்கூடும்?
அடாஃப்ரூட் சேவையகத்தில் சில மதிப்புகள், சில அளவுருக்கள் மாறினால், மாற்றங்கள் இங்கே பிரதிபலிக்கப்படும்.
Adafruit_MQTT_Subscribe Radio_Station = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Radio_Station"); // ஒரு ஊட்டத்திற்கு குழுசேர பயன்படுத்தப்படும் முறைகள் Adafruit_MQTT_Subscribe Toggle_FM = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Toggle_FM"); // ஒரு ஊட்டத்திற்கு குழுசேர பயன்படுத்தப்படும் முறைகள் Adafruit_MQTT_Subscribe Volume = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Volume"); // ஒரு ஊட்டத்திற்கு குழுசேர பயன்படுத்தப்படும் முறைகள்
MQTT_connect () செயல்பாட்டிற்கான செயல்பாட்டு முன்மாதிரி கீழே உள்ளது.
MQTT_connect (); // MQTT இணைப்பிற்கான செயல்பாட்டு முன்மாதிரி
எங்கள் அமைவு செயல்முறையைத் தொடங்குவோம். முதலில், தொடக்க முறையுடன் UART தகவல்தொடர்புகளைத் தொடங்குகிறோம்.
சீரியல்.பெஜின் (9600); // UART தொடங்கு Serial.println (); // இடைவெளிக்கு கூடுதல் வரியைச் சேர்க்கிறது Serial.println (); // இடைவெளிக்கு கூடுதல் வரியைச் சேர்க்கிறது அடுத்து, வைஃபை உடன் இணைக்க வழக்கமான எல்லாவற்றையும் செய்கிறோம் **************** வைஃபை இணைப்புக்கு தேவையான அனைத்து வழக்கமான விஷயங்களும் *********************** / சீரியல்.பிரண்ட் ("இணைக்கிறது"); Serial.println (ssid); வைஃபை.மோட் (WIFI_STA); WiFi.begin (ssid, password); (WiFi.status ()! = WL_CONNECTED) {தாமதம் (500); சீரியல்.பிரண்ட் ("."); } Serial.println (""); Serial.println ("வைஃபை இணைக்கப்பட்டுள்ளது"); Serial.println ("ஐபி முகவரி:"); Serial.println (WiFi.localIP ()); / **************** வைஃபை இணைப்புக்கு தேவையான அனைத்து வழக்கமான விஷயங்களும் *********************** /
அடுத்து, ஒரு I2C இணைப்பை உடனடியாக நிறுவ Wire.begin () முறையை அழைக்கவும் & PT2258 IC இன் முழு வேகம் என்பதால் I2C அதிர்வெண்ணை 100KHz ஆக சரிசெய்ய Wire.setClock () முறையை அழைக்கிறோம்.
வயர்.பெஜின் (); // I2C தொடக்க வரிசையைத் தொடங்கு Wire.setClock (100000); // I2C கடிகாரத்தை 100KHz ஆக அமைத்தல்
அடுத்து, PT2258 மற்றும் RDA5807 IC ஆகிய இரண்டிற்கும் init () முறையை அழைத்து, முன்னர் வரையறுக்கப்பட்ட பூலியன்ஸில் திரும்பும் நிலையை வைத்திருங்கள்.
potStatus = DigitalPot.init (); radioStatus = radio.init ();
அடுத்து, MCU ஐசியுடன் தொடர்பு கொள்ள முடியுமா இல்லையா என்பதைச் சரிபார்க்கவும். வேறு இரண்டு அறிக்கைகள் இருந்தால் இதைச் செய்கிறோம்.
if (potStatus) {Serial.println ("PT2258 சாதனம் கிடைத்தது!"); } else {Serial.println ("PT2258 ஐத் தொடங்குவதில் தோல்வி"); } if (radioStatus) {Serial.println ("RDA5807M சாதனம் கிடைத்தது!"); } else {Serial.println ("RDA5807M ஐத் தொடங்குவதில் தோல்வி"); }
அடுத்து, MQTT நூலகத்திலிருந்து சந்தா முறையை அழைக்கவும். எங்கள் சந்தா ஊட்டங்களில் ஏதேனும் மாற்றங்கள் ஏற்பட்டால் MQTT சேவையகத்தால் எங்களுக்கு அறிவிக்கப்படும்.
mqtt.subscribe (& Radio_Station); // ரேடியோ_ஸ்டேஷன் ஊட்டத்திற்கான MQTT சந்தாவை அமைக்கவும் mqtt.subscribe (& Toggle_FM); // Toggle_FM ஊட்டத்திற்கான MQTT சந்தாவை அமைக்கவும் mqtt.subscribe (& தொகுதி); // தொகுதி ஊட்டத்திற்கான MQTT சந்தாவை அமைக்கவும்
அடுத்து, ரிலே முள் வெளியீடாகவும், முள் நிலையை LOW ஆகவும் அமைப்போம்
pinMode (D7, OUTPUT); டிஜிட்டல்ரைட் (டி 7, குறைந்த);
அடுத்து, முன்னரே தீர்மானிக்கப்பட்ட ரேடியோ அளவை அமைக்கவும், இந்த அளவுரு RDA5807 IC இன் உள் அளவை அமைக்கிறது, இது எங்கள் அமைவு செயல்முறையின் முடிவைக் குறிக்கிறது.
radio.setVolume (FIX_RADIO_VOLUME); // அடுத்து ரேடியோ அளவை இயல்பாக்குதல் ரேடியோ.செட்மோனோ (பொய்); // சிப் மோனோ வெளியீடு ரேடியோ.செட்மியூட் (பொய்) கொடுக்க நாங்கள் விரும்பவில்லை; // ஆரம்பத்தில் சிப் முடக்கப்படுவதை நாங்கள் விரும்பவில்லை
MQTT சேவையகத்திற்கான இணைப்பை நிறுவுகின்ற MQTT_connect () செயல்பாட்டை அழைப்பதன் மூலம் லூப்பைத் தொடங்குகிறோம்.
MQTT இணைப்பு செயல்பாட்டில், MQTT சேவையகத்துடன் இணைக்க மூன்று முறை முயற்சிக்கிறோம்.
இது வெற்றிகரமாக இருந்தால், எங்களுக்கு ஒரு வெற்றிகரமான செய்தி கிடைக்கிறது, இல்லையெனில் பிழை செய்தி கிடைக்கும்.
வெற்றிட MQTT_connect () {int8_t ret; // முயற்சிகளைச் சேமிக்க 8 பிட் முழு எண் // ஏற்கனவே இணைக்கப்பட்டிருந்தால் நிறுத்துங்கள். if (mqtt.connected ()) {திரும்ப; } சீரியல்.பிரண்ட் ("MQTT உடன் இணைக்கிறது…"); uint8_t மீண்டும் முயற்சிக்கிறது = 3; போது ((ret = mqtt.connect ())! = 0) connect // இணைக்கப்பட்ட Serial.println (mqtt.connectErrorString (ret)) க்கு 0 திரும்பும்; Serial.println ("5 வினாடிகளில் MQTT இணைப்பை மீண்டும் முயற்சிக்கிறது…"); mqtt.disconnect (); தாமதம் (5000); // 5 விநாடிகள் மீண்டும் முயற்சிக்கவும் -; if (மீண்டும் முயற்சிக்கிறது == 0) {// அடிப்படையில் இறந்து, WDT என்னை மீட்டமைக்க காத்திருக்கவும் (1); }} Serial.println ("MQTT இணைக்கப்பட்டுள்ளது!"); }
அடுத்து, ஒரு Adafruit_MQTT_Subscribe பொருளுக்கு ஒரு சுட்டிக்காட்டி உருவாக்குவதன் மூலம் தொடங்கவும். எந்த சந்தா பெறப்பட்டது என்பதை தீர்மானிக்க இதைப் பயன்படுத்துவோம்.
Adafruit_MQTT_ சந்தா * சந்தா;
அடுத்து, சந்தா செய்திக்காக காத்திருக்கிறோம்.
MQTT சேவையகத்திலிருந்து வரும் எந்த செய்திகளுக்கும் mqtt.readSubscription (timeInMilliseconds) ஒரு குறிப்பிட்ட நேரத்தைக் கேட்கும்.
நேரம் முடிவதற்குள் அது ஒரு செய்தியைப் பெற்றால், அது சந்தாவுக்கு ஒரு சுட்டிக்காட்டி மூலம் பதிலளிக்கும் அல்லது அது நேரம் முடிந்துவிட்டது மற்றும் 0 ஐத் தரும். அந்த விஷயத்தில், அது 2 நொடிக்கு காத்திருக்கும்.
போது ((சந்தா = mqtt.readSubscription (20000%))
நேரம் முடிந்தால், அதே நேரத்தில் லூப் நிரப்பு தோல்வியடைகிறது. இல்லையென்றால், என்ன சந்தாவை ஒப்பிட்டு, எங்களுக்குத் தெரிந்த சந்தாக்களைப் பெறுவோம்.
இந்த குறியீட்டில், எங்கள் மூன்று சந்தா ஊட்டங்களுக்கும் இதைச் செய்கிறோம்.
if (சந்தா == & மாற்று_எஃப்எம்) என்றால் (சந்தா == & ரேடியோ_ஸ்டேஷன்) என்றால் (சந்தா == & தொகுதி)
லூப் பிரிவில் நீங்கள் புரிந்து கொள்ள வேண்டிய முக்கிய மூன்று அளவுருக்கள் இவை.
Toggle_FM ஊட்டத்தை கண்காணிக்கவும் அமைக்கவும் குறியீட்டின் இந்த பகுதி பயன்படுத்தப்படுகிறது.
if (சந்தா == & மாற்று_எஃப்எம்) // இது மாற்று_எஃப்எம் ஊட்டத்திலிருந்து வந்த செய்தி {சீரியல்.பிரண்ட் (எஃப் ("கிடைத்தது:")); Serial.println ((char *) Toggle_FM.lastread); // பிழைத்திருத்தத்திற்காக ஊட்டத் தரவை அச்சிடுங்கள் (சரம் ((கரி *) மாற்று_எஃப்.எம். "sever // என்ற பிரிவிலிருந்து வருகிறது, ஆனால் அதைச் செய்வதற்கு முன்பு நாம் அதை ஒரு சரம் செய்ய வேண்டும், இது ஒப்பீட்டாளரை சூப்பர் ஈஸி டிஜிட்டல் ரைட் (D7, HIGH); // நாம் உருவாக்கும் சேவையகத்திலிருந்து" ஆன் "சரம் கிடைத்தால் D7 முள் HIGH} if (சரம் ((கரி *) மாற்று_எஃப்.எம். சேவையகத்திலிருந்து "ஆஃப்" சரம் நாங்கள் டி 7 முள் குறைவாக உருவாக்குகிறோம்}}
ரேடியோ_ஸ்டேஷன் ஊட்டத்தை கண்காணிக்கவும் அமைக்கவும் குறியீட்டின் இந்த பகுதி பயன்படுத்தப்படுகிறது.
if (சந்தா == & ரேடியோ_ஸ்டேஷன்) {சீரியல்.பிரண்ட் (எஃப் ("கிடைத்தது:")); Serial.println ((char *) Radio_Station.lastread); if (சரம் ((கரி *) Radio_Station.lastread) == சரம் ("பிக் எஃப்எம்")) // பிக் எஃப்எம் {radio.setBandFrequency (FIX_BAND, 9270) என்ற சரத்தை நாங்கள் சோதிக்கிறோம் என்று கேட்க; // மேலே உள்ள நிபந்தனை உண்மையாக இருந்தால், நாங்கள் ராடோய் சேனலை 92.7 மெகா ஹெர்ட்ஸ் என அமைத்து வருகிறோம் // // சரம் ((கரி *) ரேடியோ_ஸ்டேஷன்.லாஸ்ட்ரெட்) == சரம் ("ரெட் எஃப்எம்") { radio.setBandFrequency (FIX_BAND, 9350); } if (சரம் ((கரி *) Radio_Station.lastread) == சரம் ("ரேடியோ மிர்ச்சி")) {radio.setBandFrequency (FIX_BAND, 9830); }}
குறியீட்டின் இந்த பகுதி தொகுதி ஊட்டத்தை கண்காணிக்கவும் அமைக்கவும் பயன்படுத்தப்படுகிறது.
if (சந்தா == & தொகுதி) // // நாங்கள் சரம் அளவைச் சரிபார்க்கிறோம் என்று கேட்டால் அது ஒரு சரம் வடிவத்தில் ஒரு முழு மதிப்பு // // PT2258 உதவியுடன் தொகுதியை மாற்ற நாம் அதை மீண்டும் ஒரு முழு எண்ணாக மாற்ற வேண்டும். ஐசி சீரியல்.பிரண்ட் (எஃப் ("கிடைத்தது:")); Serial.println ((char *) Volume.lastread); volume = atoi ((char *) Volume.lastread); // ஒரு எழுத்துக்குறி சுட்டிக்காட்டி ஒரு முழு தொகுதிக்கு மாற்ற அட்டோய் () மெத்தோடைப் பயன்படுத்துகிறோம் = வரைபடம் (தொகுதி, 0,100,79,0); // வரைபடம் (மதிப்பு, fromLow, fromHigh, toLow, toHigh) // pt2258 dB இல் உள்ள முழு மதிப்புகளை மட்டுமே புரிந்துகொள்கிறது // நாங்கள் 0dB - 79dB மதிப்பை 0% - 100% ஆக வரைபடமாக்குகிறோம். DigitalPot.setChannelVolume (தொகுதி, 0); // எல்லாவற்றிற்கும் மேலாக நாங்கள் PT2258 IC DigitalPot.setChannelVolume (தொகுதி, 1) இன் சேனல் 0 க்கான அளவை அமைக்கிறோம்; // எல்லாவற்றிற்கும் மேலாக PT2258 IC of of இன் சேனல் 1 க்கான அளவை அமைத்து வருகிறோம்
Arduino ஐப் பயன்படுத்தி குரல் கட்டுப்பாட்டு FM வானொலியை சோதித்தல்
சுற்று சோதிக்க, பின்வரும் எந்திரம் பயன்படுத்தப்பட்டது-
- 13-0-13 தட்டு கொண்ட ஒரு மின்மாற்றி
- ஒரு சுமையாக இரண்டு 4Ω 20W ஸ்பீக்கர்கள்.
- Google உதவியாளரைப் பயன்படுத்த தொலைபேசி.
முந்தைய கட்டுரையில், TDA2050 IC உடன் ஒரு எளிய 2x32 வாட் ஆடியோ பெருக்கியை எவ்வாறு உருவாக்குவது என்பதை நான் உங்களுக்குக் காட்டியுள்ளேன், இந்த ஆர்ப்பாட்டத்திற்கு நான் அதைப் பயன்படுத்தப் போகிறேன்.
நான் மெக்கானிக்கல் பொட்டென்டோமீட்டரை சீர்குலைத்துள்ளேன் மற்றும் இரண்டு சிறிய ஜம்பர் கேபிள்களுடன் இரண்டு தடங்களை சுருக்கினேன். இப்போது, இரண்டு புஷ்-பொத்தான்களின் உதவியுடன், பெருக்கியின் அளவை மாற்ற முடிந்தது.
மேலும் விரிவாக்கம்
இந்த சுற்றுக்கு இன்னும் பல மேம்பாடுகள் செய்யப்படலாம்.
- பல்வேறு சத்த சிக்கல்கள் உள்ளன, ஏனெனில் NodeMCU க்கு அருகில் ஒரு ஆடியோ மூலமானது செயல்படுகிறது, எனவே சத்தம் நோய் எதிர்ப்பு சக்தியை மேம்படுத்த கூடுதல் கேடயத்தை செயல்படுத்த வேண்டும்.
- ஒட்டுமொத்த சுற்று ஒரு பி.சி.பிக்கு உருவாக்குவது சத்தம் நோய் எதிர்ப்பு சக்தியை மேம்படுத்தும்.
- சத்தத்தை அகற்ற கூடுதல் வடிப்பான்களை இந்த ஐ.சியில் சேர்க்கலாம்.
இந்த கட்டுரையை நீங்கள் விரும்பினீர்கள், அதிலிருந்து புதிதாக ஒன்றைக் கற்றுக்கொண்டீர்கள் என்று நம்புகிறேன். உங்களுக்கு ஏதேனும் சந்தேகம் இருந்தால், கீழேயுள்ள கருத்துகளில் நீங்கள் கேட்கலாம் அல்லது விரிவான கலந்துரையாடலுக்கு எங்கள் மன்றங்களைப் பயன்படுத்தலாம்.
