Mục lục:

Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu: 6 bước
Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu: 6 bước

Video: Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu: 6 bước

Video: Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu: 6 bước
Video: Hướng dẫn làm đồng hồ theo dõi sản lượng điện qua WiFi - Xem trên Blynk 2024, Tháng bảy
Anonim
Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu
Kéo và hiển thị dữ liệu xung quanh từ bất kỳ trang web nào qua Wi-Fi (Chỉ báo đèn phía Bắc) với NodeMcu

Động lực của tôi: Tôi đã thấy RẤT NHIỀU tài liệu hướng dẫn về cách thiết lập / sử dụng NodeMCU (được xây dựng trên mô-đun ESP8266) để thực hiện các dự án IoT (internet vạn vật). Tuy nhiên, rất ít trong số các hướng dẫn này có tất cả các chi tiết / mã / sơ đồ để một người mới làm quen có thể làm theo từ đầu đến cuối và không ai trong số họ làm chính xác những gì tôi muốn.

Điều này sẽ bao gồm những gì ?: Điều này sẽ bao gồm mọi thứ bạn cần biết (và tôi đã không biết), bao gồm:

  1. Vật liệu (cụ thể là những gì tôi đã sử dụng)
  2. Arduino, NodeMcu, ESP8266, sự khác biệt là gì?
  3. Bắt đầu với NodeMcu

    1. Thiết lập phần mềm (Arduino IDE)
    2. Tạo đèn LED nhấp nháy
    3. Các tùy chọn để cấp nguồn cho NodeMcu
    4. Kết nối với Internet
  4. Cách lấy dữ liệu từ một trang web

    1. "Trỏ" đến thông tin bạn muốn trong trang web
    2. Thingspeak / ThingHTTP / API (đừng sợ, không cần mã hóa)
    3. Truy cập dữ liệu này từ NodeMCU
  5. Hiển thị dữ liệu

    1. Những gì tôi đã sử dụng (cách đấu dây màn hình 7 đoạn)
    2. Một số ý tưởng / điều tôi sẽ làm với nhiều thời gian hơn
  6. Tôi đoán làm thế nào để xây dựng một chiếc hộp

KHUYẾN CÁO: Tôi đã xem RẤT NHIỀU video để tìm hiểu cách thực hiện điều này và hầu như tất cả mã được ghép lại với nhau từ các nguồn khác và tôi không thể nhớ tất cả chúng. Nguồn cảm hứng chính của điềuhttp là anh chàng này về cơ bản đang làm điều tương tự như tôi đang mô tả, nhưng tôi thấy đã sàng lọc những thứ gì là màn hình cảm ứng và những gì không gây nhầm lẫn. Tôi coi đây là phần giới thiệu về các dự án NodeMcu và sorta kinda IoT hơn là một đối tượng cụ thể, nhưng nguồn cảm hứng cho chỉ báo (Đèn phương Bắc) cụ thể này là hướng dẫn này từ năm 2008. Tôi thích cách nó được mô tả là "nghèo nàn man ambient orb ", hiển thị thông tin xung quanh như cổ phiếu, lượt xem youtube hoặc thời tiết mà không cần sử dụng điện thoại hoặc các phương tiện xâm nhập khác.

Bước 1: Vật liệu

Vật liệu
Vật liệu
Vật liệu
Vật liệu

Bạn sẽ CẦN những thứ này:

1. Một bảng NodeMcu

2. Cáp micro USB để tải mã lên bảng và cấp nguồn cho sản phẩm cuối cùng nếu bạn chọn.

3. Đèn LED, dây jumper (nam-nam, nam-nữ) và một breadboard để kết nối mọi thứ… đây là thứ cho sẵn, nhưng bất cứ thứ gì bạn muốn "xuất" (hiển thị hoặc làm phụ thuộc vào dữ liệu) sẽ yêu cầu phần cứng. Nếu bạn muốn tạo lại quả cầu xung quanh hoặc tạo ra chính xác những gì tôi đã làm, màn hình 7 đoạn hoặc một số đèn LED là đủ tinh tế. Breadboard là cần thiết để "tạo mẫu" trước khi bạn thực sự kết nối mọi thứ 4 thực và tôi sẽ giải thích cách chúng hoạt động / cách mọi thứ được kết nối trong phần liên quan. Nếu bạn chỉ là người mới bắt đầu, chỉ cần lấy một bộ khởi động arduino, vì nó có rất nhiều thứ nhỏ trong đó (bao gồm mọi thứ tôi đã sử dụng), cộng với một arduino una cho một dự án khác.

Những thứ bạn CÓ THỂ cần:

4. Mô-đun cấp nguồn breadboard (Nếu bạn muốn cấp nguồn cho NodeMcu bằng bộ điều hợp nguồn tiêu chuẩn… Tôi sẽ không làm điều này vì bạn chỉ có thể cấp nguồn cho nó bằng micro USB, cách này thuận tiện hơn. Nếu bạn muốn thực hiện dự án của mình hoàn toàn không dây, thì tất nhiên bạn sẽ cần một bộ pin, nhưng tôi sẽ giải quyết vấn đề này trong phần nguồn.

5. Cây thông 1/4 cho hộp lil '(nếu bạn muốn)

6. Một số veneer để che hộp của bạn và / hoặc hoạt động như một bộ khuếch tán cho đèn LED hoặc màn hình của bạn

7. Super (CA) và / hoặc keo dán gỗ để gắn 5. và 6.

Bước 2: Node MCU là gì?

Node MCU là gì?
Node MCU là gì?
Node MCU là gì?
Node MCU là gì?

Nếu bạn là một người mới bắt đầu thực sự về điện tử như tôi, bạn có thể tự hỏi sự khác biệt giữa bảng Arduino và bảng NodeMcu là gì, và có thể bạn cũng đã nghe về ESP8266… sự khác biệt giữa chúng là gì?!?

Đây không phải là kỹ thuật, nhưng đây là những gì bạn cần biết.

Arduino có khả năng đọc đầu vào từ một loạt các chân, "thực hiện mọi việc" bằng cách sử dụng các đầu vào này, sau đó xuất ra một loạt các chân. Về cơ bản nó là một máy tính nhỏ. Arduino tạo ra RẤT NHIỀU bo mạch khác nhau và rất nhiều "lá chắn" cắm vào bo mạch để làm những việc bổ sung. Các sản phẩm hiện họ đang bán có kết nối với internet rất đắt và không có nhiều cộng đồng theo dõi. Mã được viết và tải lên bảng từ phần mềm "Arduino IDE", hỗ trợ C và C ++, với một số định dạng đặc biệt khác được bổ sung. Bạn không cần biết cách lập trình C hoặc C ++ để lập trình, vì có như vậy rất nhiều mã có sẵn trực tuyến, nhưng một số thông tin quen thuộc với lập trình (đặc biệt là những thứ như vòng lặp while và for, khai báo biến và phạm vi, v.v.) sẽ giúp đẩy nhanh sự hiểu biết. Arduino IDE cũng cung cấp một vị trí duy nhất để tải xuống các thư viện cần thiết cho các bo mạch khác nhau (về sau, trong việc thiết lập NodeMcu).

ESP8266 là một mô-đun WiFi cực kỳ rẻ, về cơ bản đã làm cho tấm chắn arduino hỗ trợ internet trở nên lỗi thời (mặc dù bạn vẫn thấy các bo mạch arduino có tích hợp wifi). Cộng đồng DIY xung quanh ESP8266 rất lớn nên nó gần như là sự lựa chọn hợp lý duy nhất để tạo ra các thiết bị hỗ trợ internet. Thường thì nó được sử dụng kết hợp với bảng arduino thông qua các chân nối tiếp (Rx và Tx), mặc dù tôi đoán một số người sử dụng chúng "độc lập", nhưng vì vi mạch rất nhỏ và khó giao tiếp (về cơ bản nó có 6 chân.: 2 cho nối tiếp (nói chuyện với mọi thứ), 2 cho nguồn (nối đất và VCC), và 2 GPIO (đầu ra đầu vào mục đích chung), cộng với nó hoạt động trên 3.3V và vì vậy 5V sẽ phá hủy nó) nên nó nhanh chóng bị thay thế bởi…

NodeMcu, là một bảng phát triển mã nguồn mở giống như Arduino, ngoại trừ việc xây dựng trên ESP8266. Bạn thực sự có thể thấy ESP8266 được tích hợp trong bảng NodeMcu được khoanh tròn trong các hình tôi đính kèm. Bo mạch này hoàn toàn thân thiện với chương trình và giao diện, và về cơ bản có thể so sánh với một arduino nano. Nó có nhiều chân cắm hơn và có thể được lập trình qua USB trực tiếp từ máy tính của bạn mà không cần phải thông qua bảng mạch khác. Ngoài ra, mặc dù về mặt kỹ thuật bo mạch vẫn hoạt động trên logic 3.3V thay vì logic 5V, nó có các chip tích hợp để quản lý điện áp này, vì vậy nó có thể được cấp nguồn giống như arduino của bạn, cho dù bằng USB hoặc bằng chân VCC (điện áp vào).. Về cơ bản, đối với bất kỳ thứ gì IoT, NodeMcu là một bo mạch tốt, đơn giản, dễ sử dụng và được kích hoạt WiFi… mặc dù nó cũng là một lựa chọn tốt cho các dự án không có wifi. Về mặt kỹ thuật, ngôn ngữ "ngoài hộp" của NodeMcu là LUA, nhưng sau khi thiết lập một lần trong Arduino IDE, bạn sẽ có thể lập trình nó giống như với bất kỳ Arduino nào khác.

Bước 3: Bắt đầu với NodeMcu

Tôi đã sử dụng video sau để thực hiện lần khởi động đầu tiên của mình với NodeMcu và nếu bạn làm theo đúng tất cả các hướng dẫn của anh ấy, mọi thứ sẽ hoạt động tốt.

1. Thiết lập phần mềm (Arduino IDE)

  • Tải xuống Arduino IDE từ liên kết trên và chọn "chỉ tải xuống" nếu bạn không thể đóng góp
  • Mở phần mềm Arduino IDE
  • Trong Tệp -> Tùy chọn, URL trình quản lý bảng bổ sung, dán liên kết sau "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json"
  • Trong Công cụ -> Bảng -> Trình quản lý Bảng (ở trên cùng), cuộn xuống dưới cùng hoặc tìm kiếm ESP8266 và nhấp vào cài đặt
  • Bạn có thể cần phải khởi động lại Arduino IDE để điều này hiển thị, nhưng bây giờ hãy nhấp vào Công cụ-> Bảng và chọn bảng bạn đã có, tức là mô-đun NodeMcu 1.0 ESP12-E
  • Bạn có thể không cần thực hiện bước này, nhưng kết nối USB với máy tính từ NodeMcu của bạn (đèn sẽ nhấp nháy), và đi tới Bảng điều khiển-> Trình quản lý thiết bị -> Cổng -> và sau đó thực hiện LƯU Ý về cổng COM được gắn nhãn "Silicone Labs …" đây là cổng COM mà NodeMcu đang sử dụng
  • Quay lại Arduino IDE và đến Công cụ-> Cổng: và đảm bảo rằng cổng này đã được chọn
  • Mọi thứ nên tốt, nhưng hãy đảm bảo rằng trong Công cụ, kích thước flash là 4 (đừng lo lắng về SPIFFS, bất cứ thứ gì được chọn đều tốt) và tốc độ tải lên là 115200, tôi đoán… NodeMcu thực sự sử dụng tốc độ truyền là 9600 để chuyển tiếp thông tin trở lại màn hình nối tiếp (nếu bạn không biết điều này có nghĩa là gì, đừng lo lắng, nó sẽ hiển thị trong ví dụ), nhưng nếu trong mã và sau đó trong màn hình, bạn có 9600, nó tốt.

2. Tạo đèn LED nhấp nháy

Điều này giống như "Hello World" (tức là bé $ h1t) của lập trình, nhưng nó cho bạn biết mọi thứ đều tốt với bảng và sẽ giúp bạn làm quen với Arduino IDE. Điều này KHÔNG chứng minh khả năng WiFi của bo mạch (chúng tôi làm điều đó trong ví dụ tiếp theo), chỉ cần đảm bảo rằng nó được kết nối và có thể hoạt động, v.v.

  • Mở arduino IDE, cắm NodeMcu của bạn
  • Trước khi làm bất cứ điều gì, hãy lưu ý rằng có một khuôn khổ cho mã cơ bản nhất mà bạn có thể viết vào arduino của mình, với một vòng lặp setup () chạy một lần và một vòng lặp khác () sẽ chạy liên tục mãi mãi. Mã cuối cùng của chúng tôi sẽ được cấu trúc giống như thế này, với một số điều được thêm ở trên và một hàm được xác định ở dưới cùng
  • File-> Examples-> (trong phần NodeMcu 1.0) ESP8266 -> Blink
  • Thao tác này sẽ mở ra một số mã trong cửa sổ. Hãy lưu nó ở đâu đó.
  • Trong mã này, vòng lặp setup () chứa định nghĩa của đèn LED tích hợp trên bảng như một đầu ra và vòng lặp xuất ra mức cao và thấp cho đèn LED này. Lưu ý rằng đối với đèn LED được tích hợp sẵn trên bo mạch (chỉ! Đây không phải là trường hợp điển hình), đầu ra "LOW" (0 vôn) sẽ làm cho nó bật, vì nó được bật theo mặc định và "CAO" (3,3V in trường hợp này tôi đoán), đã tắt
  • Nếu mọi thứ được thiết lập đúng như đã nêu ở trên, bạn sẽ có thể nhấp vào "Xác minh" (dấu kiểm trong vòng tròn ở góc trên cùng bên trái) để đảm bảo không có lỗi (cái này sẽ không có vì bạn đã không làm như vậy " t viết nó, nhưng ý của bạn!), và khi mọi thứ đều tốt, "Tải lên" ngay bên cạnh nó
  • Sau khi nhấp vào tải lên, bạn sẽ thấy nội dung đọc ra trong vùng màu đen ở dưới cùng và dấu chấm /% điền xong
  • Đừng lo lắng rằng nó nói rằng nó sẽ chiếm 33% bộ nhớ… về cơ bản đó là một lượng "cố định" được chiếm bởi ngay cả đoạn mã đơn giản nhất, những gì tôi đã viết chỉ chiếm thêm 1% dung lượng
  • Bạn sẽ thấy đèn LED trên bảng bắt đầu nhấp nháy (có thể nó đã hoạt động một chút), vì vậy hãy thoải mái thay đổi số lượng phần nghìn của giây (mili giây) trong phần trễ của tập lệnh. Nếu đây là lần đầu tiên bạn lập trình, việc xem đèn LED nhấp nháy ở tần số hơi khác một chút có thể sẽ là một chuyến đi thực sự hồi hộp

3. Các tùy chọn để cấp nguồn cho NodeMcu

Tôi không chắc tại sao tôi không hiểu điều này lúc đầu, nhưng mã mà bạn tải lên bảng sẽ ở đó, và sẽ chạy mãi mãi ngay khi / miễn là có điện được cung cấp cho nó. Ví dụ: sau khi hoàn thành bước 2, nếu bạn rút phích cắm khỏi máy tính, sau đó bật nguồn ở nơi khác, nó sẽ bắt đầu nhấp nháy trở lại. Cách đơn giản nhất để cấp nguồn cho NodeMcu là chỉ cần cắm một micro USB vào nó, sau đó cắm vào một khối sạc giống như bạn sử dụng cho điện thoại di động của mình trong tường (khối 5V 1A hoặc bất kỳ khối nào có thể có). Vui lòng xem hướng dẫn khác của tôi để biết thông tin về cách cấp nguồn cho mọi thứ, cực tính của giắc cắm DC, v.v. nhưng ý chính là bạn có thể sử dụng bất kỳ cường độ dòng điện nào bạn muốn, miễn là nó đủ để cung cấp năng lượng cho tất cả mọi thứ (1A là hơn hơn rất nhiều cho bảng này và bất kỳ đèn LED nào bạn sử dụng chẳng hạn), nhưng điện áp phải nằm trong một phạm vi rất hẹp để mọi thứ hoạt động chính xác. Trên NodeMcu, bạn có thể sử dụng nguồn điện với bất kỳ điện áp nào từ 3.3V đến 20V một cách an toàn, vì có một bộ điều chỉnh trên bo mạch điều chỉnh điện áp này xuống (đây là một tính năng hay). Với cường độ dòng điện, vượt quá mức là OK vì bảng sẽ chỉ vẽ những gì nó cần, nhưng với điện áp, nói chung sẽ an toàn hơn khi sử dụng điện áp gần bằng, không thấp hơn # yêu cầu, vì vậy ít công việc hơn cần phải thực hiện / điện bị lãng phí điều chỉnh điện áp xuống. Nếu bạn KHÔNG muốn sử dụng bộ pin, hoặc muốn sử dụng giắc cắm nguồn DC (có thể vì vậy bạn có thể có một sợi cáp dài đẹp), các chân để sử dụng là các chân Nối đất liền kề VIN.

4. Kết nối với internet

Mình có đính kèm dưới dạng file (để tiện cho hậu thế, phòng trường hợp hết video) đoạn mã từ video youtube ở trên, nhưng các bạn vui lòng vào link youtube cho anh ấy xem để biết mã. Nó thực sự đáng để bạn dành thời gian, anh ấy giải thích lịch sử của hội đồng quản trị rất thú vị.

Mở tệp mã arduino có tên "Wifi_connect" và thay đổi SSID và mật khẩu của riêng bạn, sau đó truy cập

  • Lưu ý rằng phía trên các vòng lặp có dòng #include, dòng này cho biết Arduino bao gồm một thư viện chứa đầy nội dung WiFi cho ESP8266. Về cơ bản, đây là một loạt các tiện ích và những thứ được gói lại với nhau và cho phép bạn thực hiện những việc cụ thể tương đối đơn giản, bằng cách sử dụng những thứ được viết sẵn trong thư viện. Ví dụ: nếu bạn đã mua một tấm chắn hoặc phần bổ sung cho một tấm bảng, nó có thể có các thư viện liên kết với nó để bạn có thể dễ dàng giao tiếp với nó hơn.
  • Công cụ-> Màn hình nối tiếp
  • Đảm bảo rằng màn hình nối tiếp được đặt ở mức đọc 9600. Nếu nó không ở tốc độ phù hợp, màn hình nối tiếp sẽ tạo ra một mớ hỗn độn bị cắt xén, vì vậy đó là một dấu hiệu tốt cho thấy màn hình nối tiếp của bạn không ở cùng tốc độ như chuỗi được xác định trong mã
  • Nhấp vào xác minh và chạy, và xem màn hình nối tiếp khi nó hoàn thành … nó sẽ cho bạn biết một loạt chi tiết về kết nối nếu nó hoạt động và chứng minh rằng ESP8266 trong NodeMcu có khả năng kết nối với WiFi của bạn! Nó không LÀM gì cả, nhưng nếu bạn đi và cắm bảng này vào tường ở đâu đó, bạn có thể đợi 30 giây và khá tự tin rằng nó đã thiết lập kết nối với internet, điều này cũng sẽ rất thú vị.
  • Để tự kiểm tra, hãy thử nghiền ngẫm mã "bllink" và mã "wifi_connect" để bật đèn LED trên bo mạch hoặc nhấp nháy khi đèn được kết nối với Internet. Đây là một cách tuyệt vời để học!

Nếu bạn đã làm tất cả những điều trên, xin chúc mừng! Bạn đã cho thấy rằng bạn có thể tải mã lên NodeMCU và NodeMcu có thể kết nối với WiFi của bạn. Chúng tôi thực sự sẽ sử dụng một phương pháp kết nối Wi-Fi hơi khác, sử dụng thư viện MultiWifi thay vì thư viện Wi-Fi cũ thông thường, vì nó cho phép bạn dễ dàng thêm danh sách WiFis và chỉ cần cố gắng kết nối với tùy chọn có thể.

Bước 4: Cách lấy dữ liệu từ trang web

Cách lấy dữ liệu từ trang web
Cách lấy dữ liệu từ trang web

Dữ liệu trong các trang web được lưu trữ theo một cách rất ma quái. Lọc điều này thành những thứ bạn muốn hoặc "phân tích cú pháp" cho nó cũng ma quái không kém và cố gắng làm điều này mà không có kiến thức đáng kể về HTML có thể khó khăn… vì vậy mục tiêu là đưa dữ liệu bạn muốn ra khỏi nơi ma quái vào một nơi rất trong lành và hạnh phúc. Về mặt chức năng, điều này có nghĩa là đi từ một URL hiển thị toàn bộ trang web, đến một URL hiển thị CHỈ cho một phần dữ liệu duy nhất mà bạn muốn.

1. "Trỏ" đến thông tin bạn muốn trên trang web

Truy cập trang web bạn quan tâm, ví dụ ở đây

www.timeanddate.com/worldclock/canada/edmonton

sau đó chuyển đến dữ liệu bạn muốn, nhấp chuột phải vào dữ liệu đó và chọn "kiểm tra". Nó sẽ mở trình xem HTML trong trình duyệt của bạn và hiển thị cho bạn nhánh cuối cùng của cây mà dữ liệu của bạn đến từ đó. Tôi thấy rằng trình duyệt dễ sử dụng nhất cho việc này là chrome, nhưng rõ ràng firefox có một số tiện ích mở rộng làm cho nó tốt hơn… nhưng idk, tôi cảm thấy như đó chỉ là một đại loại firefox cổ điển?

Đó là nơi dữ liệu tồn tại. Đôi khi nó có một ID được tham chiếu bởi nó, đôi khi nó chỉ được viết ngay trong đó. Vậy làm cách nào để trích xuất nó?

2. Thingspeak / ThingHTTP / API (đừng sợ, không cần mã hóa)

Tôi thậm chí sẽ không nói về API là gì và cách bạn tạo ra chúng, nhưng bạn có thể tưởng tượng chúng là kết nối hoặc truyền thực tế giữa bạn (các yêu cầu của bạn) và những thứ bạn đang yêu cầu ở đâu. Tương tự cổ điển là một người phục vụ tại một nhà hàng. Để thực hiện điều này mà không cần bất kỳ mã hóa nào, bạn sẽ sử dụng một dịch vụ miễn phí có tên "ThingSpeak", và cụ thể là ứng dụng của họ "ThingHTTP". Chỉ cần tạo một tài khoản, sau đó chuyển đến các ứng dụng và ở dưới cùng, điềuhttp và tạo một tài khoản.

Điều duy nhất bạn cần làm là sao chép và dán URL của trang web, ví dụ như trang web ngày và giờ ở trên, sau đó cuộn xuống trường cuối cùng "Chuỗi phân tích cú pháp". Đây là đường dẫn đến dữ liệu bạn muốn.

Tôi đoán rằng đường dẫn này có thể được đưa ra theo một số cách, nhưng cách đơn giản nhất và duy nhất mà tôi biết là bằng cách nhấp chuột phải vào phần dữ liệu đó như được mô tả ở trên, kiểm tra nó, sau đó nhấp chuột phải vào dòng được đánh dấu tương ứng với dữ liệu đó trong trình xem HTML và đi theo đường dẫn Copy-> x. Điều này được hiển thị trong hình ảnh đính kèm.

Khi bạn đã hoàn tất, hãy thử truy cập URL được tạo cho bạn và xem liệu nó có chứa dữ liệu bạn muốn theo một cách nào đó mà ít nhất có thể làm việc được hay không. Ví dụ: của tôi nói nhiệt độ là "XX F" thay vì số độ C, nhưng các đơn vị và chữ F ở cuối có thể dễ dàng thay đổi trong mã. NÓ CỰC KỲ THƯỜNG GẶP LỖI MÀ KHÔNG THỂ SỬA ĐƯỢC. Nếu đúng như vậy, hãy thử xóa một số tiêu đề trong xpath, xem liệu bạn có thể tìm thấy dữ liệu ở nơi khác không hoặc tham khảo diễn đàn nơi họ có thể xác định các khía cạnh "bị hỏng" trong chuỗi phân tích cú pháp của bạn. Phương pháp này chắc chắn sẽ KHÔNG hoạt động trên một trang web không tải dữ liệu mong muốn với trang web, mà thay vào đó (chính nó) lấy từ một số nguồn bên ngoài, đòi hỏi một chút thời gian để tải vào. Tuy nhiên, nó sẽ hoạt động tốt cho mọi thứ như nội dung trên youtube, thời tiết, v.v.

3. Truy cập dữ liệu này từ NodeMCU

Tôi đã gõ rất nhiều, vì vậy hãy xem mã đính kèm, có rất nhiều nhận xét và hiện đang được thiết lập để đọc trong khả năng xảy ra cực quang cho Edmonton AB, Canada (Chỉ!). Điều chỉnh đầu tiên bạn sẽ phải thực hiện chỉ là thay đổi URL (trên thực tế chỉ là phần khóa api 16 chữ số của URL) thành điều của bạnhttp.

Điều thứ hai bạn sẽ phải tinh chỉnh là trong vòng lặp (), nơi "giá trị" thực tế được đưa vào và lưu trữ dưới dạng biến "yourvalue", là một chuỗi (văn bản). Nó có thể được sử dụng trong bất kỳ thời trang nào bạn muốn từ đó ra ngoài. Tôi đã xóa biểu tượng phần trăm, chia 2 chữ số của% thành 2 biến (ví dụ: 14% thành 1, 4) và lưu trữ từng biến này dưới dạng số nguyên, nhưng với một vài tìm kiếm hoặc nhận xét nhanh trên google ở đây, bạn sẽ có thể để trích xuất chính xác các số bạn muốn từ chuỗi tạo thinghttp. Bạn sẽ cần những con số để có thể thực hiện những việc như quyết định xem nó lớn hay nhỏ hoặc chia hết cho thứ gì đó đủ để bật hoặc tắt hoặc hiển thị mọi thứ. Phần còn lại của đoạn mã kể từ thời điểm đó, bao gồm cả hàm ở dưới cùng có tên là Sevenseg () được sử dụng để hiển thị 2 số.

Vui lòng đặt câu hỏi về mã hoặc cách bạn có thể trích xuất hoặc hiển thị các loại thứ bạn muốn, hoặc cách bạn có thể sử dụng những con số này, ví dụ: chia quang phổ của đèn LED rgb và ánh xạ các giá trị khác nhau thành các màu khác nhau.

Bước 5: Hiển thị dữ liệu

Hiển thị dữ liệu
Hiển thị dữ liệu

1. Những gì tôi đã sử dụng (cách đấu dây màn hình 7 đoạn)

Tôi đã nhận được sơ đồ đính kèm / theo dây được mô tả bởi hướng dẫn khác này.

Hệ thống dây điện khá đơn giản, nhưng nếu bạn chưa từng sử dụng breadboard, thì có thể nhầm lẫn những gì đang xảy ra. Về cơ bản, breadboard nhằm mục đích làm cho các kết nối rõ ràng và tạm thời.

Tất cả các mô tả sau đây sẽ liên quan đến sơ đồ đính kèm: Một breadboard có thể được chia theo chiều ngang thành 2 nửa lặp lại, mỗi nửa có 2 đoạn riêng biệt: các hàng ngang - và + kéo dài chiều dài của breadboard (được sử dụng cho nguồn) và các cột dọc, được đánh số và bao gồm 5 điểm trên mỗi cột được sử dụng để đánh dấu các kết nối. Sau đó, có một khoảng cách nhỏ, và sau đó các đặc điểm tương tự này nhân đôi ở phía bên kia của đường phân chia tưởng tượng đó. Tất cả các điểm trong hàng ngang + được kết nối với nhau và tất cả các điểm hàng ngang được kết nối với nhau. Điều này cho phép bạn cắm nguồn vào một đầu của breadboard và sau đó có thể cắm mọi thứ vào bất kỳ vị trí nào dọc theo dấu + để ngắt điện, giống như một thanh nguồn dài cho các ổ cắm. Tương tự đối với - hàng, được sử dụng để nối đất. Đối với các cột được đánh số, mỗi điểm trong cột được đánh số được kết nối với 4 điểm còn lại. Lưu ý rằng năm điểm trong một cột KHÔNG được kết nối với năm điểm đối diện với nửa đường tưởng tượng. Bảng mạch có thể được cắt theo chiều dọc và không có kết nối điện nào bị cắt.

NodeMcu xếp hai nửa của breadboard một cách hoàn hảo, với mỗi chân tương ứng với nguồn hoặc đầu vào / đầu ra có một cột được đánh số cho chính nó, vì vậy bạn có thể cắm dây vào vị trí có thể truy cập còn lại và kết nối nó ở nơi khác trên breadboard. Tương tự đối với màn hình 7 đoạn được hiển thị trong sơ đồ. Ví dụ, đi theo con đường của mặt đất từ bảng đến màn hình 7 đoạn trong sơ đồ.

  1. chân nối đất từ NodeMcu được cắm vào cột 2
  2. dây từ cột 2 đến hàng điện ngang -ve (được chỉ định bởi mặt đất quy ước)
  3. từ hàng trên mặt đất (số cột không liên quan, vì toàn bộ hàng được kết nối) đến cột 22 thông qua một điện trở
  4. vào chân "đất" trên màn hình 7 đoạn cũng được cắm vào cột 22

Mục đích của điện trở trong sơ đồ về cơ bản là để "hấp thụ" một phần công suất thừa vào đèn LED, có chức năng hoạt động để làm mờ màn hình. Bạn sẽ thấy rằng khi số "1" được chiếu sáng so với "8", số 1 sáng hơn nhiều, vì ít đèn LED được bật hơn. Bạn chạy đèn LED càng ít sáng thì tuổi thọ của nó càng lâu, vì vậy cần có điện trở. Hầu hết các sơ đồ cho màn hình 7 phân đoạn thực sự cho thấy có một điện trở mắc nối tiếp với từng phân đoạn riêng lẻ, nhưng điều này dường như hoạt động tốt. Tôi đã sử dụng một điện trở 1K ohm.

Hãy hết sức lưu ý về chân nào tương ứng với chân nào trên màn hình, vì chúng được ánh xạ trong mã.

2. Một số ý tưởng / điều tôi sẽ làm với nhiều thời gian hơn

Về cơ bản đây là nơi tôi dừng lại, nhưng bạn có thể chọn nhiều thứ khác để xuất ra dựa trên giá trị dữ liệu của bạn, chẳng hạn như:

  • một đèn LED rgb thay đổi màu sắc phụ thuộc vào giá trị hoặc bao phủ một gradient, từ xanh lục sang đỏ chẳng hạn
  • một màn hình LED đầy đủ
  • một đèn LED hợp lý bật / tắt trên / dưới true / false chỉ bật hoặc tắt để chỉ ra điều gì đó
  • một động cơ quay vào một thời điểm cụ thể trong ngày, chẳng hạn như van trên hệ thống tưới nước hoặc để phát đồ ăn cho chó của bạn… Tôi chắc rằng có nhiều cách hiệu quả hơn để làm điều này hơn là diễn giải thời gian qua wifi nhưng đó là một lựa chọn!

Bước tiếp theo (đáng ngạc nhiên là có nhiều hướng dẫn hơn) là đăng dữ liệu lên máy chủ RIÊNG của bạn (cũng có thể được thực hiện thông qua thingspeak) và sau đó sử dụng dữ liệu này (như đối với một khu vườn tự động hoặc nội dung ngôi nhà thông minh).

Bước 6: Xây dựng một hộp

Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp
Xây dựng một chiếc hộp

Tất cả các kết nối được thực hiện thông qua bảng mạch có thể được tạo vĩnh viễn bằng cách hàn các dây trực tiếp giữa bảng và đầu ra (như đèn LED) hoặc bằng cách sử dụng bảng mạch nhỏ hơn nhiều hoặc PCB để tạo kết nối trên một thang đo có thể vừa với dự án của bạn. Tôi đã chọn sử dụng một bảng mạch nhỏ đi kèm trong bộ phụ kiện mà tôi đã liên kết và chỉ cần hàn một điện trở vào đầu dây… không mạnh lắm, nhưng hoạt động tốt!

Tôi cắt 4 miếng cây thông 1/4 "x 3,5" ở 3,5 "(hai bên) và một miếng 4" (trên cùng), chỉ cần húc chúng lên và dán chúng lại với nhau, đảm bảo tất cả các mặt đều là hình vuông sao cho mỗi mặt càng ửng hồng càng tốt. Trước khi dán các miếng mặt trước hoặc mặt sau, tôi vạch ra các khu vực để màn hình và bảng nhô ra đủ để có thể nhìn thấy / cắm vào tương ứng. Tấm breadboard nhỏ mà tôi nhận được có băng dính ở mặt sau để nó có thể được gắn vào một trong các bức tường bên và màn hình 7 phân đoạn có thể được giữ đúng vị trí bằng cách đầu tiên đặt mảnh xuống trên băng đóng gói, đặt màn hình lên băng này, và sau đó rắc bột nở lên / vào tất cả các khoảng trống. Sau đó, tôi đổ keo CA (siêu) vào các khoảng trống, khi tiếp xúc với muối nở, ngay lập tức cứng lại để giữ màn hình ở vị trí, xả vào mặt trước của miếng trước. Băng đóng gói là để ngăn không cho bất kỳ keo nào thấm qua giữa màn hình và bề mặt mà nó úp xuống và che khuất nó sau khi khô.

Tôi dán veneer gỗ thông lên tất cả các mặt (sử dụng keo CA, hoạt động tốt hơn keo dán gỗ theo ý kiến của tôi) và chà nhám các cạnh xuống sau khi áp dụng từng miếng, để làm cho nó trông đồng nhất / ẩn các khớp nối / hoạt động như một bộ khuếch tán cho hiển thị như trong video này.

Đề xuất: