Სარჩევი:

NodeMCU MQTT Iot Project - გადართვის ღილაკი: 4 ნაბიჯი
NodeMCU MQTT Iot Project - გადართვის ღილაკი: 4 ნაბიჯი

ვიდეო: NodeMCU MQTT Iot Project - გადართვის ღილაკი: 4 ნაბიჯი

ვიდეო: NodeMCU MQTT Iot Project - გადართვის ღილაკი: 4 ნაბიჯი
ვიდეო: ESP32 Modbus Communication | FLProg SCADA 2024, ივლისი
Anonim
Image
Image

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 კლიენტის პარამეტრები
MQTT კლიენტის პარამეტრები
MQTT კლიენტის პარამეტრები
MQTT კლიენტის პარამეტრები

თუ არ იცით როგორ დააკონფიგურიროთ MQTT კლიენტი, ეწვიეთ ჩვენს ბოლო სტატიას:

თემების პარამეტრები: გამოქვეყნების თემა: OsoyooCommand

გამოწერის თემა: OsoyooData

გაშვებული შედეგი

გადმოტვირთვის დასრულების შემდეგ, თუ wifi ცხელი წერტილის სახელი და პაროლი დაყენებულია და MQTT ბროკერი არის დაკავშირებული, გახსენით სერიული მონიტორი, დაინახავთ შემდეგ შედეგს: განაგრძეთ ამ ღილაკის დაჭერა, სერიული მონიტორი გამოვა „ღილაკის სტატუსი: დაჭერილია“ყოველ 2 წამში მას შემდეგ რაც გაუშვებთ ამ ღილაკს, სერიული მონიტორი გამოუშვებს "ღილაკის სტატუსს: არ არის დაჭერილი" ყოველ 2 წამში.

გირჩევთ: