Mục lục:

Hiển thị WIFI cho Quản lý Sản xuất: 6 bước
Hiển thị WIFI cho Quản lý Sản xuất: 6 bước

Video: Hiển thị WIFI cho Quản lý Sản xuất: 6 bước

Video: Hiển thị WIFI cho Quản lý Sản xuất: 6 bước
Video: [Thuyết Minh] - Quản lý tập trung các Access Point WiFi bằng CAPsMAN trên Router Mikrotik 2024, Tháng bảy
Anonim
Hiển thị WIFI cho Quản lý Sản xuất
Hiển thị WIFI cho Quản lý Sản xuất

Tôi là một chút Series về IOT và Máy tính bảng đơn.

Tôi luôn mong muốn sử dụng nó ngoài Dự án Sở thích & Vui vẻ (Sản xuất và Sản xuất thực tế).

Tài liệu hướng dẫn này chuẩn bị Tạo màn hình WIFI 4 chữ số 7 đoạn với nút ESP để Hiển thị đầu vào sản xuất hàng giờ. Tôi đang làm việc trong ngành sản xuất Điện tử, nơi chúng tôi sử dụng Hệ thống Thực thi Sản xuất (MES) để Giám sát & Kiểm soát Đầu vào, Đầu ra và Quy trình của Tầng Sản xuất. Trong dự án này, tôi đang tạo đơn vị hiển thị Nhỏ sẽ hiển thị Số lượng đầu vào sản xuất theo dòng, ca và giờ.

Về mặt kỹ thuật, Dự án này tương tự như một màn hình hiển thị số người đăng ký Youtube, nơi chúng tôi sử dụng phản hồi API / HTTP từ trực tuyến.

Bước 1: Các bộ phận & công cụ được sử dụng:

Bộ phận & Công cụ được sử dụng
Bộ phận & Công cụ được sử dụng

Các bộ phận phần cứng được sử dụng:

  1. ESP gật đầu
  2. TM1637 hiển thị 4 chữ số đồng hồ
  3. Đẩy chuyển đổi
  4. Điện trở 10k
  5. vài dây nhảy

Công cụ phần mềm được sử dụng:

  1. Arduino IDE
  2. Xampp dành cho máy chủ web PHP / Apache

Thư viện Arduino đã sử dụng:

1. Trình quản lý Wi-Fi của tzapu & i Được tùy chỉnh cho các tệp tùy chỉnh của tôi (wifimanager)

2. ESP_EEPROM để lưu trữ các giá trị tùy chỉnh của tôi trong bộ nhớ Flash

3. SevenSegmentTM1637 để hiển thị

Bước 2: Tùy chỉnh Trình quản lý Wifi

Tùy chỉnh trình quản lý Wifi
Tùy chỉnh trình quản lý Wifi

Trong phần Đầu tiên này, tôi đã cài đặt trình quản lý wifi trước, sau đó tôi đã sao chép Thư mục trình quản lý Wifi và chuyển lại vào Thư mục tương tự trong thư mục thư viện Arduino, sau đó đổi tên thành WiFiManager_custom.

Thư mục Thư mục gốc Hầu hết thích

C: / Users / tên máy tính của bạn / Documents / Arduino / các thư viện

Sau đó, tôi mở thư mục wifimanager_custom và đổi tên tệp.cpp tiêu đề giống như wifimanager_custom, cũng được thêm vào trong tệp tiêu đề &.cpp.

Và đã thêm biểu mẫu & nút tùy chỉnh của tôi trong tiêu đề.

trong HTTP_PORTAL_OPTIONS PROGMEM, tôi đã thêm biểu mẫu nút của mình cho Menu.

và thêm Biểu mẫu mới để nhập dòng & dịch chuyển. tôi đã tạo biểu mẫu này dưới dạng văn bản đơn giản.

Sau đó, chúng ta sẽ tạo các hàm hành động cho các biểu mẫu này trong tệp.cpp, vì vậy chúng ta phải khai báo hàm trong tệp tiêu đề.

/ * các chức năng tùy chỉnh của tôi * /

void xử lýCustomForm (); void xử lýCustomSave ();

tôi đã khai báo các chức năng tùy chỉnh của mình trong tệp tiêu đề. rằng nó, công việc của chúng tôi trong tiêu đề đã hoàn thành, chúng tôi phải đi với tệp.cpp để tạo chức năng và hành động của chúng tôi.

Bước 3: Chức năng tùy chỉnh cho Hành động biểu mẫu

Chức năng tùy chỉnh cho Hành động biểu mẫu
Chức năng tùy chỉnh cho Hành động biểu mẫu
Chức năng tùy chỉnh cho Hành động biểu mẫu
Chức năng tùy chỉnh cho Hành động biểu mẫu
Chức năng tùy chỉnh cho Hành động biểu mẫu
Chức năng tùy chỉnh cho Hành động biểu mẫu

Bây giờ chúng ta mở tệp wifimanager_custom.cpp của mình.

và chúng tôi phải thêm trình xử lý phản hồi http để gọi các hàm của chúng tôi khi biểu mẫu của chúng tôi được đăng.

server-> on (String (F ("/ custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // Tay cầm tùy chỉnh của TÔI

server-> on (String (F ("/ custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // Tay cầm tùy chỉnh CỦA TÔI

chúng sẽ gọi các chức năng tùy chỉnh của chúng tôi khi biểu mẫu được đăng.

1.handleCustomForm () -> sẽ tạo một trang với biểu mẫu tùy chỉnh của chúng tôi cho nút nhập & lưu dòng & dịch chuyển.

2.handleCustomSave () -> hàm này sẽ lấy các giá trị biểu mẫu & lưu trữ ở các vị trí bộ nhớ Flash 0 (dòng) & 50 (dịch chuyển).

Bước 4: Kết nối & Chương trình chính

Kết nối & Chương trình chính
Kết nối & Chương trình chính

Kết nối rất đơn giản..

Kết nối và đi dây:

Màn hình gật gù TM1637

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

gật gù- công tắc đẩy

- nút bấm gắn vào chân D8 từ + 5V - Điện trở 10K gắn vào chân D8 từ mặt đất

chúng tôi đã hoàn thành việc tùy chỉnh wifimanager của mình. bây giờ chúng ta phải tạo chương trình chính của chúng ta.

1. trình quản lý wifi của chúng tôi sẽ Kết nối với mạng wifi bằng thông tin đăng nhập được sử dụng gần đây nhất để kết nối, nếu nó không thành công, nó sẽ mở một máy chủ Wi-Fi AutoConnectAP. Chúng tôi có thể định cấu hình thông tin đăng nhập, đường truyền và dịch chuyển wifi mới bằng cách kết nối với máy chủ wifi này.

2. sau đó nó sẽ nhập vào vòng lặp chính.

Vòng lặp chính của chúng tôi sẽ chứa hai phần. một là chương trình con confi khi chúng ta cần thay đổi đường truyền, thay đổi hoặc thêm bất kỳ thông tin đăng nhập wifi nào để gọi AP chế độ yêu cầu để cấu hình. điều này sẽ được gọi khi một nút nhấn được kết nối với chân D8 được nhấn.

void loop () {

config_loop ();

}

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

Serial.println ("Đang chờ Trạng thái nút cấu hình…");

//display.print("Wait ");

if (digitalRead (TRIGGER_PIN) == CAO)

{

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

// Intialization cục bộ. Khi hoạt động kinh doanh của nó đã hoàn thành, không cần phải giữ nó xung quanh WiFiManager wifiManager;

// đặt lại cài đặt - để thử nghiệm

//wifiManager.resetSettings ();

// đặt thời gian chờ cho đến khi cổng cấu hình bị tắt // hữu ích để làm cho tất cả thử lại hoặc chuyển sang chế độ ngủ // sau vài giây

//wifiManager.setTimeout(120);

// nó bắt đầu một điểm truy cập với tên được chỉ định

// here "AutoConnectAP" // và đi vào vòng lặp chặn đang chờ cấu hình

// KHÔNG CÓ ĐIỀU NÀY, AP KHÔNG LÀM VIỆC ĐÚNG VỚI SDK 1.5, cập nhật lên ít nhất 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("không kết nối được và hết thời gian chờ"); chậm trễ (3000); // đặt lại và thử lại, hoặc có thể đưa nó vào chế độ ngủ sâu ESP.reset (); chậm trễ (5000); }}

//Serial.println("Button status False. Back to Main loop "); //display.print("Main loop "); //display.clear ();

}

Chương trình thứ hai sẽ là chương trình chính của chúng tôi để nhận phản hồi HTTP từ máy chủ cụ thể & Hiển thị số lượng đầu vào trong Màn hình.

Đối với điều này Đầu tiên chúng ta phải lấy chi tiết dòng & dịch chuyển của chúng ta từ bộ lưu trữ Flash của ESP (địa chỉ 0-> dòng, 50-> shift)

EEPROM.begin (100); // eeprom storageEEPROM.get (0, line); // lấy Giá trị từ địa chỉ 0

EEPROM.get (50, ca); // Nhận giá trị từ địa chỉ 50

thì chúng ta phải chuyển dòng này & chuyển chi tiết đến máy chủ http của chúng ta bằng phương thức get để nhận giá trị của đầu vào và đầu ra.

Chuỗi Base_url = "loại bỏ"; // url cơ sở của tôi http; // Đối tượng của lớp

Chuỗi URL = Base_url + "?" + "Line =" + line + "& shift =" + shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // điều này sẽ in ra tất cả chuỗi phản hồi

nếu bạn muốn làm thế nào tất cả các văn bản thì công việc của bạn đã hoàn thành ở đây nó tự, chúng tôi có thể trực tiếp hiển thị nó trong màn hình tm1637.

display.print (http.getString ());

Nhưng tôi không muốn hiển thị tất cả văn bản, vì nó chứa đầu vào, đầu ra ở dạng json và một số văn bản chung khác về cơ sở dữ liệu & v.v. của nó.

vì vậy, đầu tiên tôi đã xóa văn bản chung đó khỏi chuỗi phản hồi bằng cách sử dụng hàm Substring ().

tôi đã đếm độ dài của văn bản chung và cắt nó.

if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);

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

Chuỗi json_string = http.getString (). Chuỗi con (121); / * đây là phần bù đắp của tôi đối với văn bản chung nếu người trả lời của bạn không có bất kỳ điều gì tương tự như vậy bạn có thể xóa mã này; * /

//Serial.println(json_string);

DeserializationError error = deserializeJson (root, json_string);

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

nếu (lỗi)

{Serial.print (F ("deserializeJson () không thành công:"));

Serial.println (error.c_str ());

trở lại;

}

khác{

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

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

Serial.print ("Đầu vào:");

Serial.println (đầu vào);

Serial.print ("Đầu ra:");

Serial.println (đầu ra);

display.print (".. trong..");

display.clear (); // xóa màn hình

display.print (input); // in ĐẾM MỘT SỐ SỐ

}

đó là chương trình chính của chúng tôi đã hoàn thành.

Bước 5: Tạo Máy chủ Web

Tạo máy chủ web
Tạo máy chủ web
Tạo máy chủ web
Tạo máy chủ web

i m Sử dụng xampp làm web phục vụ & mã PHP để lấy dữ liệu từ cơ sở dữ liệu SQL của tôi để có số lượng chính xác.

Nhưng tôi không thể chia sẻ tất cả các mã gốc của nó. vì tính bí mật của công ty tôi. nhưng tôi sẽ chỉ cách tạo một máy chủ web, hiển thị số lượng đầu vào và đầu ra tĩnh giả.

Đối với điều này, bạn sẽ cần bất kỳ máy chủ lưu trữ web nào, tôi đang sử dụng ở đây xampp làm máy chủ lưu trữ của mình.

bạn có thể tải xuống xampp tại đây.

cài đặt xampp… nếu bạn cần hướng dẫn rõ ràng, bạn có thể sử dụng liên kết này.

Sau khi cài đặt xampp, bạn phải truy cập thư mục gốc của mình.

C: / xampp / htdocs

tất cả các chương trình php của bạn phải ở bên trong thư mục gốc này.

tôi đã tạo trang của mình bằng tên gọi là esp_api.php

đây là mã php của tôi. ở đây tôi chỉ hiển thị các giá trị tĩnh của đầu vào & đầu ra;

$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];

echo ("myString"); // văn bản chung

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

else {$ result ['input'] = 200; $ result ['output'] = 199; }

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

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

$ myJSON = json_encode ($ myObj);

echo $ myJSON;

Bây giờ API phản hồi HTTP của chúng tôi đã hoàn tất.

Url cơ sở http của chúng tôi sẽ giống như

you_ip_address / esp_api.php

bạn có thể kiểm tra văn bản phản hồi API của mình bằng cách

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

ở đây tôi đã đề cập đến dòng là a0401 và dịch chuyển là dd.

Bước 6: Bước cuối cùng !!

Bước cuối cùng !!!
Bước cuối cùng !!!
Bước cuối cùng !!!
Bước cuối cùng !!!
Bước cuối cùng !!!
Bước cuối cùng !!!

Nhập địa chỉ ip máy tính của bạn vào URL cơ sở

Chuỗi Base_url = "loại bỏ"; // url cơ sở của bạn

và Tải lên nút ESP của bạn. Sau khi hoàn tất, chỉ cần bật wifi từ điện thoại di động hoặc máy tính xách tay, bạn sẽ nhận được mạng có tên AutoConnectAP. kết nối với nó và nhập thông tin đăng nhập và cấu hình dòng của bạn.

Sau đó, đặt lại thiết bị của bạn và kiểm tra xem mạng của bạn đã được kết nối sau khi nó được kết nối rồi thì mọi thứ đã xong.

Bạn có thể thấy đầu vào được hiển thị trên màn hình.

Nếu bạn muốn thay đổi bất kỳ đường truyền hoặc thông tin đăng nhập wifi nào, bạn có thể nhấn nút gạt trong vài giây, màn hình hiển thị confi.

bạn đã đăng nhập vào chế độ yêu cầu. bạn có thể thay đổi và đặt lại thiết bị.

Chiếc mô tô chính của anh ấy hướng dẫn cho bạn cách chúng tôi có thể sử dụng các dự án sở thích & thú vị của mình trong khu vực sản xuất & chế tạo thực và trình diễn

Đề xuất: