- MQTT என்றால் என்ன?
- ராஸ்பெர்ரி பை மீது கொசு MQTT தரகரை நிறுவுதல்
- ராஸ்பெர்ரி பை கொசு தரகரை சோதித்தல்
- சுற்று வரைபடம்
- குறியீடு மற்றும் விளக்கம்
MQTT என்பது இணையம் வழியாக செய்திகளை அனுப்பவும் பெறவும் பயன்படுத்தப்படும் ஒரு நெறிமுறை. இந்த நெறிமுறையை முன்னர் அயோட் மின்சார மீட்டர் மற்றும் ராஸ்பெர்ரி பை அலெக்சாவில் இணையத்தில் தரவை வெளியிட பயன்படுத்தினோம். இந்த டுடோரியலில் MQTT மற்றும் அது தொடர்பான விதிமுறைகளைப் பற்றி மேலும் அறிந்து கொள்வோம். இங்கே நாம் ராஸ்பெர்ரி பை உள்ளூர் MQTT தரகராகப் பயன்படுத்துவோம் மற்றும் MQTT பயன்பாட்டு டாஷ்போர்டு மூலம் NodeMCU ESP12E உடன் இணைக்கப்பட்ட எல்.ஈ.டி. ஒரு DHT11 சென்சார் NodeMCU உடன் இணைக்கப்பட்டுள்ளது, எனவே MQTT டாஷ்போர்டில் வெப்பநிலை மற்றும் ஈரப்பதத்தைப் படிக்கிறோம், மீண்டும் ராஸ்பெர்ரி பைவை உள்ளூர் MQTT தரகராகப் பயன்படுத்துகிறோம்.
எனவே, MQTT மற்றும் அது தொடர்பான விதிமுறைகளை குறைப்பதன் மூலம் ஆரம்பிக்கலாம்.
MQTT என்றால் என்ன?
MQTT என்பது ஐபிஎம் வடிவமைத்த செய்தி வரிசை டெலிமெட்ரி போக்குவரத்தை குறிக்கிறது. இந்த நெறிமுறை எளிய மற்றும் இலகுரக, இது இணையம் வழியாக செய்திகளை அனுப்பவும் பெறவும் பயன்படுகிறது, மேலும் இது குறைந்த அலைவரிசை பயன்பாடுகளைக் கொண்ட சாதனங்களுக்காக வடிவமைக்கப்பட்டுள்ளது. இப்போதெல்லாம் இந்த நெறிமுறை ஐஓடி சாதனங்களில் சென்சார்கள் தரவை அனுப்பவும் பெறவும் அடிக்கடி பயன்படுத்தப்படுகிறது. மேலும், ஐஓடி அடிப்படையிலான வீட்டு ஆட்டோமேஷன் அமைப்புகளில், இந்த நெறிமுறை இணைய தரவுகளை அதிகம் பயன்படுத்தாமல் எளிதாகப் பயன்படுத்தலாம்.
MQTT இல் அடிக்கடி பயன்படுத்தப்படும் சில சொற்கள் உள்ளன:
- குழுசேர் மற்றும் வெளியிடு
- செய்தி
- தலைப்பு
- தரகர்
1. குழுசேர் மற்றும் வெளியிடு: பிற சாதனத்திலிருந்து தரவைப் பெறுவதற்கான சந்தா, மற்றும் பிற சாதனங்களுக்கு தரவை அனுப்புவதற்கான வழிமுறைகளை வெளியிடு.

சாதனம் 1 தரவை சாதனம் 2 க்கு அனுப்பும்போது அது வெளியீட்டாளர் என்றும் மற்றொன்று சந்தாதாரர் என்றும் நேர்மாறாகவும் இருக்கும்.
2. செய்தி: செய்திகள் என்பது நாம் அனுப்பும் மற்றும் பெறும் தகவல்கள். இது ஒரு தரவு அல்லது எந்த வகையான கட்டளையாக இருக்கலாம். எடுத்துக்காட்டாக, வெப்பநிலை தரவை மேகக்கணிக்கு வெளியிடுகிறோம் என்றால், இந்த வெப்பநிலை தரவு செய்தி என அழைக்கப்படுகிறது.
3. தலைப்பு: உள்வரும் செய்திகளுக்கான ஆர்வத்தை நீங்கள் பதிவுசெய்யும் முறை அல்லது செய்தியை எங்கு வெளியிட விரும்புகிறீர்கள் என்பதைக் குறிப்பிடுவது இதுதான். முன்னோக்கி சாய்வு மூலம் பிரிக்கப்பட்ட சரங்களுடன் தலைப்புகள் குறிப்பிடப்படுகின்றன. MQTT ஐப் பயன்படுத்தி தலைப்புகளில் தரவு வெளியிடப்படுகிறது, பின்னர் MQTT சாதனம் தரவைப் பெற தலைப்புக்கு குழுசேரவும்.
4. MQTT தரகர்: வெளியீட்டாளர்களிடமிருந்து அனைத்து செய்திகளையும் பெறுவதற்கும், செய்திகளை வடிகட்டுவதற்கும், அவற்றில் ஆர்வமுள்ள சந்தாதாரர்களுக்கு செய்திகளை வெளியிடுவதற்கும் இந்த விஷயம் பொறுப்பு.

இந்த தரகர் மேகத்தில் ஹோஸ்ட் செய்யப்படும்போது, அது MQTT மேகம் என்று அழைக்கப்படுகிறது. அடாஃப்ரூட் IO, MQTT.IO, IBM ப்ளூமிக்ஸ், மைக்ரோசாஃப்ட் அஸூர் போன்ற பல கிளவுட் அடிப்படையிலான MQTT சேவைகள் உள்ளன. MQTT ஐ பிரபலமான அமேசான் AWS கிளவுட் உடன் பயன்படுத்தலாம், இது அமேசான் AWS டுடோரியலுடன் தொடங்குவதில் நாங்கள் விளக்கியுள்ளோம்.
ராஸ்பெர்ரி பை பயன்படுத்தி எங்கள் சொந்த MQTT தரகரை உருவாக்கலாம். இது உள்ளூர் MQTT தரகராக இருக்கும், அதாவது உங்கள் உள்ளூர் நெட்வொர்க்கில் தரவை எங்கிருந்தும் அனுப்பலாம் மற்றும் பெறலாம். எனவே இங்கே நாங்கள் உள்ளூர் MQTT தரகராக மாற்ற ராஸ்பெர்ரி பையில் கொசு MQTT தரகரை நிறுவுவோம், மேலும் NodeMCU இலிருந்து MQTT டாஷ்போர்டு பயன்பாட்டிற்கு வெப்பநிலை தரவை அனுப்புவோம். மேலும், தரகரைப் பயன்படுத்தி NodeMCU உடன் இணைக்கப்பட்ட எல்.ஈ.டி.
ராஸ்பெர்ரி பை மீது கொசு MQTT தரகரை நிறுவுதல்
உங்கள் ராஸ்பெர்ரி பையில் முனையத்தைத் திறந்து தரகரை நிறுவ பின்வரும் கட்டளைகளைத் தட்டச்சு செய்க
sudo apt update sudo apt install -y கொசு கொசு-வாடிக்கையாளர்கள்
நிறுவல் முடிவடையும் வரை காத்திருங்கள். இப்போது, ராஸ்பெர்ரி பை தொடக்கத்தில் புரோக்கரைத் தொடங்க, பின்வரும் கட்டளையைத் தட்டச்சு செய்க
sudo systemctl mosquitto.service ஐ இயக்கவும்
அவ்வளவுதான், நாங்கள் அனைவரும் எங்கள் MQTT தரகரைத் தொடங்க தயாராக உள்ளோம். இது சரியாக நிறுவப்பட்டுள்ளதா என சரிபார்க்க, பின்வரும் கட்டளையை உள்ளிடவும்
கொசு -v
இந்த கட்டளை உங்கள் MQTT தரகரின் பதிப்பை வழங்கும். இது 1.4.x அல்லது அதற்கு மேல் இருக்க வேண்டும்.
ராஸ்பெர்ரி பை கொசு தரகரை சோதித்தல்
1. கீழேயுள்ள கட்டளையைப் பயன்படுத்தி பின்னணியில் கொசு புரோக்கரை இயக்கவும்
கொசு -டி
2. இப்போது, பின்வரும் கட்டளையைப் பயன்படுத்தி ஒரு தலைப்பை எடுத்துக்காட்டாக டாபிக் சந்தா செய்வோம்
mosquitto_sub -d -t exampleTopic
3. இப்போது, exampleTopic க்கு சில செய்திகளை வெளியிடுவோம்
mosquitto_pub -d -t exampleTopic -m "வணக்கம் உலகம்!"
நீங்கள் ஹலோ உலகத்தைப் பெறுவீர்கள்! சந்தாதாரர் முனையத்தில் செய்தி.

இப்போது, நாங்கள் NodeMCU மற்றும் MQTT டாஷ்போர்டு பயன்பாட்டைப் பயன்படுத்துகிறோம் என்பதில் எங்கள் சாதனத்தில் தரவைக் கட்டுப்படுத்தவும் மற்றொரு சாதனத்திலிருந்து பெறவும் நேரம் வந்துவிட்டது .
- முதலில் பயன்பாட்டைப் பயன்படுத்தி கட்டளையை அனுப்புவதன் மூலம் எல்.ஈ.டி.யைக் கட்டுப்படுத்துவோம், எனவே இந்த விஷயத்தில் NodeMCU சந்தாதாரராகவும், பயன்பாட்டை வெளியீட்டாளராகவும் செயல்படும்.
- ESP12E உடன் DHT11 சென்சார் இணைக்கப்பட்டுள்ளது, மேலும் இது இந்த வெப்பநிலை வாசிப்பை மொபைல் MQTT பயன்பாட்டிற்கு அனுப்புகிறது, எனவே இந்த விஷயத்தில் மொபைல் சந்தாதாரராகவும், NodeMCU வெளியீட்டாளராகவும் இருக்கும். இந்த செய்திகளை அந்தந்த தலைப்புகளில் அனுப்ப, கொசு MQTT தரகர் பயன்படுத்தப்படுகிறது.
சுற்று வரைபடம்

வரைபடத்தில் காட்டப்பட்டுள்ளபடி சுற்று இணைக்கவும். இங்கே டிஹெச்.டி 11 வெப்பநிலை அளவீடுகளுக்கு பயன்படுத்தப்படுகிறது, ஆனால் எல்எம் 35 வெப்பநிலை சென்சார் பயன்படுத்தப்படலாம். ஒரு வானிலை நிலையத்தை உருவாக்க NodeMCU உட்பட எங்கள் பல திட்டங்களில் ஏற்கனவே DHT11 சென்சாரைப் பயன்படுத்தினோம்.
தரவை சந்தா மற்றும் வெளியிட NodeMCU க்கான குறியீட்டை எழுத ஆரம்பிக்கலாம்.

குறியீடு மற்றும் விளக்கம்
இங்கே நாம் Adafruit MQTT நூலக வார்ப்புருவைப் பயன்படுத்துவோம், மேலும் குறியீட்டில் தேவையான விஷயங்களை மாற்றுவோம். சில விஷயங்களை மாற்றுவதன் மூலம் தரவை அடாஃப்ரூட் ஐஓ கிளவுட்டுக்கு வெளியிட மற்றும் குழுசேர அதே குறியீட்டைப் பயன்படுத்தலாம்.இந்த பதிவிறக்கத்திற்கு ஸ்கெட்ச் -> நூலகத்தைச் சேர்க்கவும் -> நூலகங்களை நிர்வகிக்கவும். Adafruit MQTT ஐத் தேடி அதை நிறுவவும். நூலகத்தை நிறுவிய பின். எடுத்துக்காட்டுகளுக்குச் செல்லவும் -> அடாஃப்ரூட் mqtt நூலகம் -> mqtt_esp8266

எங்கள் ராஸ்பெர்ரி பை ஐபி முகவரி மற்றும் வைஃபை நற்சான்றிதழ்களின்படி இந்த குறியீட்டைத் திருத்தவும்.
ESP8266WIFI மற்றும் Adafruit MQTT க்கான அனைத்து நூலகங்களையும் சேர்க்கவும்.
#சேர்க்கிறது
உங்கள் ESP-12e ஐ இணைக்க விரும்பும் உங்கள் Wi-Fi க்கான SSID மற்றும் கடவுச்சொல்லை வரையறுக்கவும். உங்கள் RPi மற்றும் NodeMCU ஆகியவை ஒரே பிணையத்துடன் இணைக்கப்படுவதை உறுதிசெய்க.
# WLAN_SSID "xxxxxxxx" # WLAN_PASS ஐ வரையறுக்கவும் "xxxxxxxxxx"
இந்த பிரிவு அடாஃப்ரூட் சேவையகத்தை வரையறுக்கிறது, இந்த விஷயத்தில் உங்கள் ராஸ்பெர்ரி பை மற்றும் சர்வர் போர்ட்டின் ஐபி முகவரி.
# AIO_SERVER "உங்கள் பை ஐபி முகவரியை வரையறுக்கவும் " # AIO_SERVERPORT 1883 ஐ வரையறுக்கவும்
நாங்கள் அடாஃப்ரூட் மேகத்தைப் பயன்படுத்தாததால் கீழே உள்ள புலங்கள் காலியாக இருக்கும்.
# AIO_USERNAME ஐ வரையறுக்கவும் "" # AIO_KEY ஐ வரையறுக்கவும் ""
MQTT சேவையகத்துடன் இணைக்க ESP8266 WiFiClient வகுப்பை உருவாக்கவும்.
வைஃபைக் கிளையண்ட் கிளையண்ட்;
வைஃபை கிளையன்ட் மற்றும் எம்.க்யூ.டி.டி சேவையகம் மற்றும் உள்நுழைவு விவரங்களை கடந்து MQTT கிளையன்ட் வகுப்பை அமைக்கவும்.
Adafruit_MQTT_Client mqtt (& கிளையன்ட், AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
வெப்பநிலையை வெளியிடுவதற்கு 'வெப்பநிலை' என்று ஒரு ஊட்டத்தை அமைக்கவும்.
Adafruit_MQTT_ வெளியீட்டு வெப்பநிலை = Adafruit_MQTT_ வெளியிடு (& mqtt, AIO_USERNAME "/ ஊட்டங்கள் / வெப்பநிலை");
மாற்றங்களுக்கு சந்தா செலுத்துவதற்கு 'led1' எனப்படும் ஊட்டத்தை அமைக்கவும்.
Adafruit_MQTT_Subscribe led1 = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / led");
இல் அமைப்பு செயல்பாடு, நாங்கள் உங்களுக்கு வெளியீடு பெற விரும்பும் மீது NodeMCU பின்னை அறிவிக்க. பின்னர், NodeMCU ஐ வைஃபை அணுகல் புள்ளியுடன் இணைக்கவும்.
void setup () { Serial.begin (115200); தாமதம் (10); pinMode (LED, OUTPUT); Serial.println (F ("Adafruit MQTT demo")); // வைஃபை அணுகல் புள்ளியுடன் இணைக்கவும். சீரியல்.பிரண்ட்ல்ன் (); சீரியல்.பிரண்ட்ல்ன் (); சீரியல்.பிரண்ட் ("இணைக்கிறது"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); (WiFi.status ()! = WL_CONNECTED) { …. …. … தலைமையிலான ஊட்டத்திற்கான MQTT சந்தாவை அமைக்கவும். mqtt.subscribe (& led1); }
இல் லூப் செயல்பாடு, நாம் MQTT சர்வர் இணைப்பு MQTT_connect () பயன்படுத்தி உயிருடன் இருக்கிறார் என்று உரிமையைக் கொடுக்கும்; செயல்பாடு.
void loop () { MQTT_connect ();
இப்போது, 'தலைமையிலான' ஊட்டத்தை குழுசேர்ந்து, MQTT தரகரிடமிருந்து சரம் பெற்று, இந்த சரத்தை atoi () ஐப் பயன்படுத்தி எண்ணாக மாற்றவும் ; டிஜிட்டல் ரைட் () ஐப் பயன்படுத்தி இந்த எண்ணை எல்.ஈ.டி முள் வரை செயல்படுத்தவும் ; செயல்பாடு.
Adafruit_MQTT_ சந்தா * சந்தா; போது ((சந்தா = mqtt.readSubscription (20000))) { if (சந்தா == & led1) { Serial.print (F ("கிடைத்தது:")); Serial.println ((char *) led1.lastread); int led1_State = atoi ((char *) led1.lastread); டிஜிட்டல்ரைட் (எல்.ஈ.டி, லெட் 1_ஸ்டேட்); }
இப்போது, வெப்பநிலையை ஒரு மாறியில் பெற்று, இந்த மதிப்பை Temperature.publish (t) செயல்பாட்டைப் பயன்படுத்தி வெளியிடவும்.
மிதவை t = dht.readTemperature (); … .. if (! Temperature.publish (t)) { Serial.println (F ("Failed")); } else { Serial.println (F ("சரி!")); }
ஆர்ப்பாட்ட வீடியோவுடன் முழு குறியீடு இந்த டுடோரியலின் முடிவில் கொடுக்கப்பட்டுள்ளது. குறியீட்டை NodeMCU போர்டில் பதிவேற்றி, ஸ்மார்ட்போனில் நீங்கள் பதிவிறக்கிய MQTT டாஷ்போர்டு பயன்பாட்டைத் திறக்கவும்.
அடாஃப்ரூட் IO, MQTT.IO போன்ற MQTT மேகையைப் பயன்படுத்தி உலகில் எங்கிருந்தும் ராஸ்பெர்ரி பை GPIO ஐ நீங்கள் கட்டுப்படுத்தலாம், இது அடுத்த டுடோரியலில் நாம் கற்றுக்கொள்வோம்.
