Სარჩევი:

WIFI ჩვენება წარმოების მენეჯმენტისთვის: 6 ნაბიჯი
WIFI ჩვენება წარმოების მენეჯმენტისთვის: 6 ნაბიჯი

ვიდეო: WIFI ჩვენება წარმოების მენეჯმენტისთვის: 6 ნაბიჯი

ვიდეო: WIFI ჩვენება წარმოების მენეჯმენტისთვის: 6 ნაბიჯი
ვიდეო: ტიტანიკის საიდუმლო: როგორ ვერ შეამჩნიეს აისბერგი?! ყველაზე დეტალური ამბავი! 2024, ივლისი
Anonim
WIFI ჩვენება წარმოების მენეჯმენტისთვის
WIFI ჩვენება წარმოების მენეჯმენტისთვის

მე პატარა სერია IOT და ერთჯერადი კომპიუტერების შესახებ.

მე ყოველთვის მსურს გამოვიყენო ის ჰობი და გართობის პროექტების მიღმა (ნამდვილი წარმოება და წარმოება).

ეს ინსტრუქცია დაახლოებით 4 ციფრიანი 7-სეგმენტიანი WIFI დისპლეის შექმნას ESP nodemcu- ით აჩვენებს საათობრივი წარმოების შეყვანის ჩვენებას. მე ვმუშაობ ელექტრონიკის წარმოების ინდუსტრიაში, სადაც ჩვენ ვიყენებთ წარმოების შესრულების სისტემას (MES) წარმოების იატაკის შეყვანის, გამომავალი და პროცესის მონიტორინგისა და კონტროლისათვის. ამ პროექტში მე ვქმნი მცირე ჩვენების ერთეულს, რომელიც აჩვენებს წარმოების შეყვანის რაოდენობას ხაზის, ცვლისა და საათის მიხედვით.

ტექნიკურად ეს პროექტი ჰგავს Youtube აბონენტთა რაოდენობის ჩვენებას, სადაც ჩვენ ვიყენებთ API/HTTP პასუხს ონლაინ რეჟიმში. მაგრამ აქ ჩვენ ვაპირებთ შევქმნათ ჩვენი საკუთარი api ჩვენს ადგილობრივ MES სისტემასთან ურთიერთობისათვის, რათა მივიღოთ შეყვანის რაოდენობა.

ნაბიჯი 1: გამოყენებული ნაწილები და ინსტრუმენტები:

გამოყენებული ნაწილები და ინსტრუმენტები
გამოყენებული ნაწილები და ინსტრუმენტები

გამოყენებული აპარატურის ნაწილები:

  1. ESP nodemcu
  2. TM1637 4 ციფრიანი საათის ჩვენება
  3. Push შეცვლა
  4. 10k რეზისტორი
  5. რამდენიმე მხტუნავი მავთული

გამოყენებული პროგრამული ინსტრუმენტები:

  1. Arduino IDE
  2. Xampp PHP/Apache ვებ სერვერისთვის

არდუინოს ბიბლიოთეკა გამოიყენება:

1. Wifi მენეჯერი tzapu & i მორგებულია ჩემი პერსონალური ფაილებისთვის (wifimanager)

2. ESP_EEPROM Flash მეხსიერებაში ჩემი მორგებული მნიშვნელობების შესანახად

3. SevenSegmentTM1637 ჩვენებისათვის

ნაბიჯი 2: Wifi მენეჯერის მორგება

Wifi მენეჯერის მორგება
Wifi მენეჯერის მორგება

ამ პირველ რიგში მე დავაყენე wifi მენეჯერი და შემდეგ გადავაკოპირე Wifi მენეჯერის საქაღალდე და გავიარე ისევ იგივე Arduino ბიბლიოთეკის საქაღალდეში, შემდეგ დავარქვი როგორც WiFiManager_custom.

Folder Root დირექტორია ძირითადად მომწონს

C: / მომხმარებლები / თქვენი კომპიუტერის სახელი / Documents / Arduino / ბიბლიოთეკები

შემდეგ გავხსენი wifimanager_custom საქაღალდე და დავარქვი header.cpp ფაილი იგივე wifimanager_custom, იგივე დავამატე სათაურში და.cpp ფაილებშიც.

და დაამატა ჩემი მორგებული ფორმა და ღილაკი სათაურში.

HTTP_PORTAL_OPTIONS PROGMEM– ში მე დავამატე ჩემი ღილაკის ფორმა მენიუსთვის.

და დაემატა ახალი ფორმა ხაზისა და ცვლის შესასვლელად. მე შევქმენი ეს ფორმა, როგორც მარტივი ტექსტური ფორმა.

ამის შემდეგ ჩვენ ვაპირებთ შევქმნათ სამოქმედო ფუნქციები ამ ფორმებისთვის.cpp ფაილში, ამისთვის ჩვენ უნდა გავაკეთოთ ფუნქციის დეკლარაცია სათაურის ფაილში.

/ * ჩემი პერსონალური ფუნქციები */

void handleCustomForm (); void handleCustomSave ();

მე გამოვაცხადე ჩემი პერსონალური ფუნქციები სათაურის ფაილში. რომ ის, ჩვენი მუშაობა სათაურში დასრულებულია, ჩვენ უნდა წავიდეთ.cpp ფაილით, რომ შევქმნათ ჩვენი ფუნქცია და მოქმედებები.

ნაბიჯი 3: პერსონალური ფუნქციები ფორმის მოქმედებისთვის

პერსონალური ფუნქციები ფორმის მოქმედებისთვის
პერსონალური ფუნქციები ფორმის მოქმედებისთვის
პერსონალური ფუნქციები ფორმის მოქმედებისთვის
პერსონალური ფუნქციები ფორმის მოქმედებისთვის
პერსონალური ფუნქციები ფორმის მოქმედებისთვის
პერსონალური ფუნქციები ფორმის მოქმედებისთვის

ახლა ჩვენ ვხსნით ჩვენს wifimanager_custom.cpp ფაილს.

და ჩვენ უნდა დავამატოთ ჩვენი http პასუხის დამმუშავებელი, რათა გამოვიძახოთ ჩვენი ფუნქციები, როდესაც ჩვენი ფორმა გამოქვეყნებულია.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // ჩემი მორგებული სახელური

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // ჩემი მორგებული სახელური

ეს გამოიძახებს ჩვენს ჩვეულ ფუნქციებს, როდესაც ფორმა განთავსდება.

1.handleCustomForm ()-> შექმნის გვერდს ჩვენი მორგებული ფორმით ხაზისა და ცვლის შეყვანისა და შენახვის ღილაკზე.

2.handleCustomSave ()-> ეს ფუნქცია მიიღებს ფორმის მნიშვნელობებს და ინახავს Flash მეხსიერების ადგილებს 0 (ხაზი) და 50 (ცვლა).

ნაბიჯი 4: კავშირები და მთავარი პროგრამა

კავშირები და მთავარი პროგრამა
კავშირები და მთავარი პროგრამა

კავშირები ძალიან მარტივია..

კავშირი და გაყვანილობა:

nodemcu TM1637 ჩვენება

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- ბიძგი გადამრთველი

- ღილაკი მიმაგრებულია pin D8 +5V– დან - 10K რეზისტორი მიმაგრებულია pin D8 მიწიდან

ჩვენ დავამთავრეთ ჩვენი wifimanager- ის მორგება. ახლა ჩვენ უნდა შევქმნათ ჩვენი მთავარი პროგრამა.

1. ჩვენი wifi მენეჯერი დაუკავშირდება wifi ქსელს ბოლო გამოყენების რწმუნებათა სიგელებთან დასაკავშირებლად, თუ ის ვერ ხერხდება ის ხსნის AutoConnectAP wifi სერვერს. ჩვენ შეგვიძლია დავაკონფიგურიროთ ახალი wifi cridentials, ხაზი და ცვლა ამ wifi სერვერთან დაკავშირებით.

2. მაშინ ის შევა მთავარ მარყუჟში.

ჩვენი მთავარი მარყუჟი შეიცავს ორ ნაწილს. ერთი არის კონფიგურაციის ქვეგეგმა, როდესაც ჩვენ გვჭირდება შეცვლა ხაზი, გადართვა ან დამატება ნებისმიერი wifi სერთიფიკატი მოთხოვნის რეჟიმი AP– ის დასაკონფიგურირებლად. ამას დაერქმევა, როდესაც დაჭერილია D8 პინთან დაკავშირებული ღილაკი.

ბათილი მარყუჟი () {

config_loop ();

}

void config_loop () {Serial.println ("");

Serial.println ("ელოდება კონფიგურაციის ღილაკს სტატუსი …");

//display.print(" დაელოდეთ ");

თუ (ციფრული წაკითხვა (TRIGGER_PIN) == მაღალი)

{

display.print ("Conf"); // WiFiManager

// ლოკალური ინტიალიზაცია. მას შემდეგ რაც დასრულდება მისი ბიზნესი, არ არის საჭირო მისი შენარჩუნება WiFiManager wifiManager– ის გარშემო;

// პარამეტრების გადატვირთვა - ტესტირებისთვის

//wifiManager.resetSettings ();

// ადგენს დროის ამოწურვას კონფიგურაციის პორტალის გამორთვამდე // სასარგებლოა რომ ყველაფერი ხელახლა სცადოთ ან დაიძინოთ // წამში

//wifiManager.setTimeout(120);

// ის იწყებს წვდომის წერტილს მითითებული სახელით

// აქ "AutoConnectAP" // და გადადის ბლოკირების მარყუჟში ელოდება კონფიგურაციას

// ამის გარეშე AP არ ჩანს, რომ მუშაობს SDK 1.5 – ით სწორად, განაახლეთ მინიმუმ 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("დაკავშირება ვერ მოხერხდა და დროის გასვლა მოხვდა"); დაგვიანება (3000); // გადატვირთეთ და სცადეთ ხელახლა, ან იქნებ ჩაწეროთ ღრმა ძილში ESP.reset (); დაგვიანება (5000); }}

//Serial.println("Button status False. Back to Main loop "); //display.print(" ძირითადი მარყუჟი "); // ჩვენება. გასაგები ();

}

მეორე იქნება ჩვენი მთავარი პროგრამა, რომ მივიღოთ HTTP პასუხი კონკრეტული სერვერისგან და აჩვენოს შეყვანის რაოდენობა ეკრანზე.

ამისათვის ჯერ უნდა მივიღოთ ჩვენი ხაზი და გადავიტანოთ დეტალები ESP- ის Flash საცავიდან (მისამართი 0-> ხაზი, 50-> ცვლა)

EEPROM. დასაწყისი (100); // eeprom storageEEPROM.get (0, ხაზი); // მიიღეთ მნიშვნელობა 0 მისამართიდან

EEPROM.get (50, ცვლა); // მიიღეთ ღირებულება მისამართი 50 -დან

შემდეგ ჩვენ უნდა გავიაროთ ეს ხაზი და დეტალები გადავიტანოთ ჩვენს http სერვერზე მისაღები მეთოდით, რათა მივიღოთ შეყვანისა და გამომავალი მნიშვნელობა.

String Base_url = "ამოღებულია"; // ჩემი ბაზის urlHTTP კლიენტი http; // კლასის HTTPClient ობიექტი

სიმებიანი URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // ამით დაიბეჭდება ყველა http საპასუხო სტრიქონი;

თუ გსურთ, თუ როგორ ხდება ყველა ტექსტი, თქვენი სამუშაო აქ სრულდება, ჩვენ შეგვიძლია პირდაპირ აჩვენოთ იგი tm1637 ეკრანზე.

display.print (http.getString ());

მაგრამ მე არ მინდა მთელი ტექსტის ჩვენება, რადგან ის შეიცავს შეყვანას, გამომავალს json სახით და სხვა ზოგად ტექსტს მონაცემთა ბაზის შესახებ და ა.შ.

ასე რომ, პირველი მე ამოვიღე ეს ზოგადი ტექსტი საპასუხო სტრიქონიდან Substring () ფუნქციის გამოყენებით.

მე დავთვალე ზოგადი ტექსტის სიგრძე და მორთე იგი.

if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (ბუფერული ზომა); DynamicJsonDocument root (bufferSize);

// JsonObject & root = doc.parseObject (http.getString ());

სიმებიანი json_string = http.getString (). ქვესტრიქონი (121); /* ეს არის ჩემი ზოგადი ტექსტის კომპენსირება, თუ თქვენს პასუხს არ აქვს მსგავსი რამ, შეგიძლიათ წაშალოთ ეს კოდი; */

//Serial.println(json_string);

DeserializationError error = deserializeJson (root, json_string);

// JsonObject & root = jsonBuffer.parseObject (http.getString ());

თუ (შეცდომა)

{Serial.print (F ("deserializeJson () ვერ:"));

Serial.println (error.c_str ());

დაბრუნების;

}

სხვა {

const char* input = root ["input"];

const char* გამომავალი = root ["გამომავალი"];

Serial.print ("შეყვანა:");

Serial.println (შეყვანა);

Serial.print ("გამომავალი:");

Serial.println (გამომავალი);

ჩვენება. ბეჭდვა (".. in..");

ჩვენება. ნათელი (); // ეკრანის გასუფთავება

ჩვენება. ბეჭდვა (შეყვანა); // დაბეჭდვა ზოგიერთი ციფრის გამოთვლა

}

ეს არის ჩვენი მთავარი პროგრამა დასრულებული.

ნაბიჯი 5: ვებ სერვერის შექმნა

ვებ სერვერის შექმნა
ვებ სერვერის შექმნა
ვებ სერვერის შექმნა
ვებ სერვერის შექმნა

მე ვიყენებ xampp- ს, როგორც ჩემს ვებ სერვისს და PHP კოდს, რომ მივიღო მონაცემები ჩემი SQL მონაცემთა ბაზიდან ზუსტი რაოდენობის მისაღებად.

მაგრამ მე არ შემიძლია მისი ყველა ორიგინალური კოდის გაზიარება. რადგან ეს არის ჩემი კომპანიის კონფიდენციალურობა. მაგრამ მე ვაჩვენებ, თუ როგორ უნდა შევქმნათ ერთი ვებ სერვერი, ვაჩვენო დუმილი სტატიკური შეყვანის და გამომავალი რაოდენობა.

ამისათვის თქვენ გჭირდებათ რაიმე ვებ მასპინძელი, მე ვიყენებ აქ xampp- ს, როგორც ჩემს მასპინძელს.

შეგიძლიათ ჩამოტვირთოთ xampp აქ.

დააინსტალირეთ xampp… თუ გჭირდებათ ნათელი ინსტრუქცია, შეგიძლიათ გამოიყენოთ ეს ბმული.

Xampp– ის დაყენების შემდეგ თქვენ უნდა შეხვიდეთ თქვენს ძირითად დირექტორიაში.

C: / xampp / htdocs

ყველა თქვენი php პროგრამა უნდა იყოს ამ ფესვის შიგნით.

მე შევქმენი ჩემი გვერდი სახელწოდებით esp_api.php

ეს არის ჩემი php კოდი. აქ მე უბრალოდ ვაჩვენებ შეყვანისა და გამომავლის სტატიკურ მნიშვნელობებს;

$ line = $ _ GET ['ხაზი']; $ shift = $ _ GET ['ცვლა'];

ექო ("myString"); // ზოგადი ტექსტი

if ($ line == 'a0401' და $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }

else {$ result ['input'] = 200; $ შედეგი ['გამომავალი'] = 199; }

$ myObj-> input = ''. $ result ['input']. '';

$ myObj-> გამომავალი = ''. $ შედეგი ['გამომავალი']. '';

$ myJSON = json_encode ($ myObj);

ექო $ myJSON;

ახლა ჩვენი HTTP პასუხის API დასრულებულია.

ჩვენი http ბაზის url იქნება მსგავსი

you_ip_address/esp_api.php

თქვენ შეგიძლიათ შეამოწმოთ თქვენი API პასუხის ტექსტი

localhost/esp_api.php? line = a0401 & shift = dd

აქ მე აღვნიშნე ხაზი როგორც a0401 და ცვლა როგორც dd.

ნაბიჯი 6: საბოლოო ნაბიჯი !

საბოლოო ნაბიჯი !!!
საბოლოო ნაბიჯი !!!
საბოლოო ნაბიჯი !!!
საბოლოო ნაბიჯი !!!
საბოლოო ნაბიჯი !!!
საბოლოო ნაბიჯი !!!

შეიყვანეთ თქვენი კომპიუტერის IP მისამართი ბაზის URL- ში

String Base_url = "ამოღებულია"; // თქვენი ძირითადი url

და ატვირთეთ თქვენს ESP nodemcu- ში. როგორც კი დაასრულებთ, უბრალოდ ჩართეთ თქვენი wifi თქვენი მობილურიდან ან ლეპტოპიდან, თქვენ მიიღებთ ქსელს სახელწოდებით AutoConnectAP. დაუკავშირდით მას და შეიყვანეთ თქვენი სერთიფიკატის და ხაზის კონფიგურაციები.

შემდეგ გადატვირთეთ თქვენი მოწყობილობა და შეამოწმეთ, რომ თქვენი ქსელი დაკავშირებულია მას შემდეგ, რაც ყველაფერი დაკავშირებულია და ყველაფერი კეთდება.

თქვენ ხედავთ, რომ შეყვანა ნაჩვენებია ეკრანზე.

თუ გსურთ შეცვალოთ ნებისმიერი ხაზი ან wifi რწმუნებათა სიგნალი შეგიძლიათ დააჭიროთ push switch რამდენიმე წამს, ჩვენება აჩვენებს confi.

თქვენ შეხვედით მოთხოვნაზე AP. თქვენ შეგიძლიათ შეცვალოთ და გადატვირთოთ მოწყობილობა.

მისი სასწავლო ინსტრუქციის მთავარი მოტო გვიჩვენებს, თუ როგორ შეგვიძლია გამოვიყენოთ ჩვენი ჰობი და სახალისო პროექტები რეალურ წარმოებასა და წარმოებაში

გირჩევთ: