Სარჩევი:
ვიდეო: NodeMCU MQTT Iot Project - გადართვის ღილაკი: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
OSOYOO NodeMCU IOT დამწყებ ნაკრები
გთხოვთ მოგვყევით ფეისბუქზე, იპოვეთ ჩვენი ახალი გამოშვებული პუნქტი და გაგვიზიარეთ თქვენი იდეა და ვიდეო, თუ როგორ უნდა გამოვიყენოთ ჩვენი პროდუქტები შემოქმედებითად. შეგიძლიათ მიიღოთ ნაღდი ფული ან საჩუქარი ჩვენგან! Facebook:
Youtube:
ამ გაკვეთილზე ჩვენ დავაკავშირებთ გადართვის ღილაკს NodeMCU- ს და გადავაგზავნით გადართვის სტატუსს MQTT ბროკერთან. ღილაკზე დაჭერისას, NodeMCU გამოაქვეყნებს ღილაკის სტატუსს „დაჭერილი“MQTT ბროკერზე და MQTT კლიენტი გამოიწერს ამ შეტყობინებებს. როდესაც ღილაკი გათავისუფლდება, "არ არის დაჭერილი" გაიგზავნება.
ნაბიჯი 1: მომზადება
აპარატურა:
NodeMCU დაფა x 1
გადართვის ღილაკი x 1
1K რეზისტორი x 1
პურის დაფა x 1
ჯუმბერის მავთულები
პროგრამული უზრუნველყოფა:
Arduino IDE (ვერსია 1.6.4+)
ESP8266 დაფის პაკეტი და სერიული პორტის დრაივერი
MQTT კლიენტი (MQTT ყუთი აქ)
არდუინოს ბიბლიოთეკა: PubSubClient
ნაბიჯი 2: კავშირის გრაფიკი
ამ გაკვეთილზე ჩვენ ვიყენებთ D2 (GPIO4) გადამრთველის გასაკონტროლებლად, გთხოვთ დააინსტალიროთ აპარატურა კავშირის გრაფიკის მიხედვით.
შენიშვნა: 1k რეზისტორი იყენებს როგორც დასაშლელ რეზისტორს, ასეთ წრეში, როდესაც გადამრთველი დახურულია, NodeMCU შეყვანა არის ლოგიკურად მაღალი მნიშვნელობით, მაგრამ როდესაც გადამრთველი ღიაა, ჩამოსაშლელი რეზისტორი გაიყვანს ძაბვას მიწაზე (ლოგიკური ნულოვანი მნიშვნელობა), რაც ხელს უშლის განუსაზღვრელ მდგომარეობას შეყვანისას.
ნაბიჯი 3: კოდი
დააკოპირეთ ქვემოთ მოყვანილი კოდი Arduino IDE– ში:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * * _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * გამოიყენეთ NodeMCU გაგზავნის ღილაკის სტატუსს MQTT კლიენტს WiFi- ს საშუალებით * სასწავლო URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // ღილაკი დაკავშირებულია GPIO pin D1– თან
// განაახლეთ ისინი თქვენი ქსელისთვის შესაფერისი მნიშვნელობებით. const char*ssid = "********"; // განათავსეთ თქვენი wifi ssid აქ const char*პაროლი = "********"; // განათავსეთ თქვენი wifi პაროლი აქ const char* mqtt_server = "საბროკერო.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient კლიენტი (espClient); ხანგრძლივი lastMsg = 0; char msg [50];
void setup_wifi () {
დაგვიანება (100); // ჩვენ ვიწყებთ WiFi ქსელთან დაკავშირებას Serial.print ("დაკავშირება"); Serial.println (ssid); WiFi.begin (ssid, პაროლი); while (WiFi.status ()! = WL_CONNECTED) {დაგვიანებით (500); Serial.print ("."); } randomSeed (მიკრო ()); Serial.println (""); Serial.println ("WiFi დაკავშირებულია"); Serial.println ("IP მისამართი:"); Serial.println (WiFi.localIP ()); }
ბათილი გამოძახება (სიმბოლო* თემა, ბაიტი* დატვირთვა, ხელმოუწერელი შიდა სიგრძე)
{} // ზარის უკუკავშირის დასრულება
ბათილად ხელახლა დაკავშირება () {
// მარყუჟამდე სანამ ჩვენ (! Client.connected ()) {Serial.print ("MQTT კავშირის მცდელობა …"); // შექმნა შემთხვევითი კლიენტის ID String clientId = "ESP8266Client-"; clientId += სიმებიანი (შემთხვევითი (0xffff), HEX); // დაკავშირების მცდელობა // თუ თქვენ გაქვთ MQTT ბროკერს clientID, მომხმარებლის სახელი და პაროლი // გთხოვთ შეცვალოთ შემდეგი ხაზი if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("დაკავშირებულია"); // MQTT ბროკერთან დაკავშირების შემდეგ, გამოიწერეთ ბრძანება, თუ რომელიმე კლიენტი. გამოწერა ("OsoyooCommand"); } else {Serial.print ("ვერ მოხერხდა, rc ="); Serial.print (client.state ()); Serial.println ("ხელახლა სცადე 5 წამში"); // დაელოდეთ 5 წამი ხელახლა ცდის დაგვიანებამდე (5000); }}} // ხელახლა დაკავშირება ()
void setup () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (გამოძახება); pinMode (BUTTON_PIN, INPUT); }
ბათილი მარყუჟი () {
if (! client.connected ()) {ხელახლა დაკავშირება (); } client.loop (); დიდი ხანია = მილი (); int სტატუსი; // გაგზავნეთ შეტყობინება ყოველ 2 წამში, თუ (ახლა - lastMsg> 2000) {lastMsg = ახლა; სტატუსი = digitalRead (BUTTON_PIN); სიმებიანი msg = "ღილაკის სტატუსი:"; if (სტატუსი == მაღალი) {msg = msg+ "pressed"; char შეტყობინება [58]; msg.toCharArray (შეტყობინება, 58); Serial.println (შეტყობინება); // სენსორული მონაცემების გამოქვეყნება MQTT საბროკერო client.publish ("OsoyooData", შეტყობინება); } else {msg = msg+ "Not Press"; char შეტყობინება [58]; msg.toCharArray (შეტყობინება, 58); Serial.println (შეტყობინება); // სენსორული მონაცემების გამოქვეყნება MQTT საბროკერო client.publish ("OsoyooData", შეტყობინება); }}}
შეცვალეთ კოდი თქვენი WiFi და MQTT პარამეტრების შესაბამისად შემდეგი ოპერაციებისთვის: 1) ცხელი წერტილის კონფიგურაცია: იპოვეთ კოდის ქვემოთ, ჩაწერეთ თქვენი საკუთარი ssid და პაროლი იქ.
const char* ssid = "your_hotspot_ssid"; const char* პაროლი = "your_hotspot_password";
2) MQTT სერვერის მისამართის დაყენება: შეგიძლიათ გამოიყენოთ თქვენი საკუთარი MQTT ბროკერის URL ან IP მისამართი mqtt_server მნიშვნელობის ზემოთ დასადგენად. თქვენ ასევე შეგიძლიათ გამოიყენოთ რამდენიმე ცნობილი უფასო MQTT სერვერი პროექტის შესამოწმებლად, როგორიცაა "broker.mqtt-dashboard.com", "iot.eclipse.org" და ა.
const char* mqtt_server =”საბროკერო.mqtt-dashboard.com”;
3) MQTT კლიენტის პარამეტრები თუ თქვენი MQTT ბროკერი მოითხოვს clientID, მომხმარებლის სახელი და პაროლის ავთენტიფიკაციას, თქვენ უნდა შეცვალოთ
თუ (client.connect (clientId.c_str ()))
დან
if (client.connect (clientId, userName, passWord)) // განათავსეთ თქვენი clientId/userName/passWord აქ
თუ არა, უბრალოდ შეინახეთ ისინი ნაგულისხმევად. ამის შემდეგ შეარჩიეთ შესაბამისი დაფის ტიპი და პორტის ტიპი, როგორც ქვემოთ, შემდეგ კი ატვირთეთ ესკიზი NodeMCU- ში.
- დაფა:”NodeMCU 0.9 (ESP-12 მოდული)”
- პროცესორის სიხშირე:”80 MHz” Flash ზომა:”
- 4M (3M SPIFFS)”
- ატვირთვის სიჩქარე:”115200
- პორტი: შეარჩიეთ თქვენი სერიული პორტი თქვენი NodeMCU– სთვის
ნაბიჯი 4: MQTT კლიენტის პარამეტრები
თუ არ იცით როგორ დააკონფიგურიროთ MQTT კლიენტი, ეწვიეთ ჩვენს ბოლო სტატიას:
თემების პარამეტრები: გამოქვეყნების თემა: OsoyooCommand
გამოწერის თემა: OsoyooData
გაშვებული შედეგი
გადმოტვირთვის დასრულების შემდეგ, თუ wifi ცხელი წერტილის სახელი და პაროლი დაყენებულია და MQTT ბროკერი არის დაკავშირებული, გახსენით სერიული მონიტორი, დაინახავთ შემდეგ შედეგს: განაგრძეთ ამ ღილაკის დაჭერა, სერიული მონიტორი გამოვა „ღილაკის სტატუსი: დაჭერილია“ყოველ 2 წამში მას შემდეგ რაც გაუშვებთ ამ ღილაკს, სერიული მონიტორი გამოუშვებს "ღილაკის სტატუსს: არ არის დაჭერილი" ყოველ 2 წამში.
გირჩევთ:
მინის IoT სენსორული ღილაკი: 10 ნაბიჯი
Glass IoT Touch Button: მე მქონდა ITO შუშის ნაჭერი მაღაზიაში, მეორე დღეს და ვიფიქრე იმაზე, თუ როგორ გამომეყენებინა იგი. ITO, ინდიუმის კალის ოქსიდი, მინა ჩვეულებრივ გვხვდება თხევადკრისტალურ დისპლეებში, მზის უჯრედებში, თვითმფრინავის სალონის ფანჯრებში და ა.შ. განსხვავება
Totoro Project - IoT & MQTT & ESP01: 7 ნაბიჯი (სურათებით)
Totoro Project - IoT & MQTT & ESP01: Totoro Project ეს მშვენიერი IoT პროექტია, რომლის გადაწერაც შეგიძლიათ მრავალი სხვა ფორმით. ESP01 დაფის გამოყენებით, MQTT პროტოკოლით, თქვენ შეგიძლიათ მიაწოდოთ ღილაკის სტატუსი MQTT ბროკერს (ჩემს საქმე AdafruitIO). სასარგებლო სახელმძღვანელო MQTT და Ad
IoT ღილაკი (D1 Mini): 6 ნაბიჯი
IoT Push Button (D1 Mini): მე გავაკეთე IoT Push ღილაკი (იფიქრეთ იმ Amazon Dash ნივთებზე), რომლითაც შეგიძლიათ გააგზავნოთ შეტყობინებები თქვენს ტელეფონზე (მაგალითად, ბაღში დასვენების დროს სასმელის შევსების მოთხოვნა). თქვენ მარტივად შეგიძლიათ ხელახლა დააკონფიგურიროთ სხვა მრავალ მოწყობილობასთან ურთიერთქმედება
გადაუდებელი ღილაკი NodeMCU– ით: 7 ნაბიჯი
გადაუდებელი ღილაკი NodeMCU: გადაუდებელი ღილაკი დაგეხმარებათ მიიღოთ დახმარება, თუ რაიმე საგანგებო სიტუაციაა, უბრალოდ დააჭირეთ ღილაკს და ის ავტომატურად გამოაქვეყნებს ფეისბუქზე ან Twitter- ში შეტყობინებას, რომელიც თქვენ ჩაწერეთ კოდში, შეგიძლიათ დაამატოთ სხვა ღილაკი, თუ გაქვთ სამედიცინო მდგომარეობა
IoT ღილაკი, რომელიც აკონტროლებს თქვენს აპლიკაციას: 6 ნაბიჯი
IoT ღილაკი, რომელიც აკონტროლებს თქვენს აპლიკაციას: ერთ -ერთი ყველაზე მეტად რაც მიკროკონტროლერებში მომწონს არის მათი შეყვანის მოწყობილობის გამოყენების შესაძლებლობა, მაგალითად, Arduino Micro შეიძლება გამოყენებულ იქნას როგორც HID (ადამიანის ინტერფეისის მოწყობილობა), რაც ნიშნავს რაღაც კოდირებას და როგორ შეგიძლიათ შექმნათ თქვენი საკუთარი კლავიატურა