Mục lục:

Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform: 8 bước
Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform: 8 bước

Video: Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform: 8 bước

Video: Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform: 8 bước
Video: Giải pháp quản lý hồ bơi, công viên nước ứng dụng công nghệ IoT 2024, Tháng mười một
Anonim
Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform
Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform

Phần này sẽ hướng dẫn cách sử dụng Nền tảng NoCAN của Omzlo và cảm biến uFire để đo EC, pH và ORP. Như trang web của họ cho biết, đôi khi bạn chỉ cần chạy một số cáp đến các nút cảm biến của mình sẽ dễ dàng hơn. CAN có lợi thế về giao tiếp và cấp nguồn trong một cáp nên tín hiệu và pin không phải là vấn đề. Phần sụn của các nút có thể đơn giản hơn; chẳng hạn như không bận tâm đến chế độ ngủ hoặc thiết lập WiFi. Nền tảng NoCAN cũng có một số tính năng tuyệt vời như lập trình các nút qua bus CAN.

Nền tảng NoCAN sử dụng Raspberry Pi, vì vậy mọi thứ có thể làm sẽ có sẵn. Chúng tôi sẽ tận dụng nó bằng cách cài đặt ngăn xếp TICK. Điều đó sẽ cho phép chúng tôi sử dụng InfluxDB để lưu trữ các phép đo. Nó là một cơ sở dữ liệu dựa trên thời gian có mục đích được tạo ra cho loại điều này. Nó cũng đi kèm với Chronograf để tạo bảng điều khiển và hiển thị tất cả dữ liệu mà chúng tôi sẽ lấy. T và K là viết tắt của Telegraf và Kapacitor. Telegraf nằm giữa dữ liệu bạn đang gửi và cơ sở dữ liệu Influx. Kapacitor là công cụ sự kiện. Khi có điều gì đó xảy ra, nó có thể gửi cho bạn một thông báo thông qua nhiều phương thức khác nhau. Và, chỉ vì tôi thích nó hơn Chronograf, tôi sẽ cài đặt Grafana cho trang tổng quan.

Bước 1: Chuẩn bị Raspberry Pi

Truy cập trang Tải xuống Rasbian và tải xuống hình ảnh bằng máy tính để bàn và phần mềm được đề xuất, sau đó flash nó vào thẻ SD.

Sau khi hình ảnh trên thẻ SD của bạn, bạn sẽ có hai ổ đĩa, gốc và khởi động. Mở một thiết bị đầu cuối khi khởi động và nhập:

chạm vào ssh

Điều đó sẽ kích hoạt SSH.

Sau đó gõ:

nano wpa_supplicant.conf

Và sao chép / dán nội dung sau sau khi bạn đã sửa đổi nó cho cài đặt hạt và WiFi của riêng bạn:

country = US

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "NETWORK-NAME" psk = "NETWORK-PASSWORD"}

Mã quốc gia bắt nguồn từ đây.

Bật SPI:

echo "dtparam = spi = on" >> config.txt

Đặt thẻ SD vào Raspberry Pi của bạn, đợi một chút và nhập:

ssh [email protected]

Bạn sẽ ở lời nhắc đăng nhập. Mật khẩu là quả mâm xôi.

Bước 2: Thiết lập NoCAN

Omzlo cung cấp một hướng dẫn cài đặt kỹ lưỡng. Nhưng tôi quyết định làm cho nó dễ dàng hơn cho bản thân và tìm hiểu một chút về Bash scripting. Vì vậy, hãy bắt đầu Raspberry Pi của bạn và SSH hoặc thiết bị đầu cuối nối tiếp vào đó.

Tôi học được rằng chỉ cần càng nhiều thời gian phát triển cũng có thể tạo ra một tập lệnh Bash tốt như bất cứ điều gì mà bạn đang cố gắng cài đặt thực sự. Có 1000 cách để hoàn thành công việc, một số cách đơn giản để nắm bắt hoặc thực hiện hơn những cách khác. Cuối cùng, tôi thực sự không làm được gì nhiều. Nếu bạn thực hiện:

wget https://ufire.co/nocan.sh && chmod + x nocan.sh && sudo./nocan.sh

Trong thiết bị đầu cuối Raspberry Pi của bạn, nó sẽ tải xuống và thực thi tập lệnh.

Sau đó nó:

  1. Tải xuống trình nền Omzlo NoCAN và cài đặt nó trong / usr / bin để dễ dàng truy cập, tạo thư mục ~ /.nocand và ghi tệp cấu hình rất cơ bản với mật khẩu được đặt thành 'password'. Bạn có thể nên thay đổi nó thành một cái gì đó khác, nó ở ~ /.nocand / config.
  2. Tải xuống ứng dụng Omzlo NoCAN và sao chép nó vào / usr / bin và tạo một tệp cấu hình cơ bản với cùng một bộ mật khẩu. Nó ở ~ /.nocanc.conf.
  3. Thiết lập dịch vụ Systemd để giữ cho daemon NoCAN chạy.
  4. Ghi tệp python thành ~ /.nocand, nocan_ufire.py. Nó sẽ nói chuyện với phần sụn của nút NoCAN và thực hiện các phép đo EC, pH và ORP, phân tích kết quả và thêm chúng vào cơ sở dữ liệu InfluxDB.
  5. Thêm repo của InfluxData vào apt và cài đặt ngăn xếp TICK. Và vì tôi thích nó hơn Chronograf, nó cũng cài đặt cả Grafana.
  6. Tạo cơ sở dữ liệu Influx trống

Một số vấn đề bạn có thể gặp phải:

  • Ngôn ngữ của bạn có thể chưa được thiết lập, vì vậy hãy chạy dpkg-cấu hình lại ngôn ngữ
  • Quá trình cài đặt Grafana có thể bị treo, vì vậy bạn chỉ cần thử lại.
  • Daemon dòng chảy có thể không được khởi động kịp thời để tập lệnh thêm cơ sở dữ liệu, nhập

    curl -i -XPOST https:// localhost: 8086 / query --data-urlencode "q = CREATE DATABASE nocan"

  • Tập lệnh này chỉ hoạt động với tư cách là người dùng pi mặc định. Bạn sẽ cần thay đổi số pi thành tên người dùng của mình nếu thích hợp nếu bạn là người dùng khác.

Điều cuối cùng là thêm một công việc cron. Tôi không thể tìm thấy cách tốt nhất để viết tập lệnh này, vì vậy hãy nhập 'crontab -e' để chỉnh sửa theo cách thủ công và thêm '* * * * * python /home/pi/.nocand/nocan_ufire.py'.

Sau khi hoàn tất, bạn có thể xác minh rằng mọi thứ đã được thiết lập và chạy như bình thường. Grafana sống tại https:// [Địa chỉ của Raspberry Pi]: 3000 /. Bạn sẽ thấy một trang đăng nhập, admin / admin là mặc định.

Chronograf có thể được tìm thấy tại https:// [Địa chỉ của Raspberry Pi]: 8888 /

Bước 3: Đặt phần cứng UFire lại với nhau

Đặt phần cứng UFire lại với nhau
Đặt phần cứng UFire lại với nhau

Trước khi chúng tôi có thể lắp ráp phần cứng, có một điều cần giải quyết. Bảng uFire ISE có thể được sử dụng để đo cả pH và ORP. Phần cứng giống nhau, nhưng phần mềm khác nhau. Bởi vì phần cứng giống nhau, điều đó có nghĩa là địa chỉ I2C, theo mặc định, cũng giống nhau. Và các cảm biến giao tiếp thông qua I2C nên cần phải thay đổi một cảm biến. Đối với dự án này, chúng tôi sẽ chọn một trong các bảng ISE và sử dụng nó để đo ORP. Làm theo các bước ở đây, thay đổi địa chỉ thành 0x3e.

Bây giờ địa chỉ đã được thay đổi, việc lắp các phần cứng lại với nhau rất dễ dàng. Thiết lập này dựa trên công việc trước đó làm về cơ bản tương tự nhưng sử dụng BLE thay vì CAN để truyền dữ liệu. Bạn có thể đọc về nó trên Trung tâm dự án Arduino. Tất cả các thiết bị cảm biến đều sử dụng hệ thống kết nối Qwiic nên chỉ cần kết nối mọi thứ lại với nhau thành một chuỗi, chỉ có một cách là cắm dây Qwiic vào Qwiic. Bạn sẽ cần một dây Qwiic to Male để kết nối một trong các cảm biến với nút CANZERO. Các dây đồng nhất và được mã hóa màu sắc. Kết nối màu đen với GND của nút, màu đỏ với chân + 3.3V hoặc + 5V, màu xanh lam với chân SDA là D11 và màu vàng với chân SCL trên D12.

Đối với dự án này, nó sẽ mong đợi thông tin nhiệt độ đến từ cảm biến EC, vì vậy hãy đảm bảo gắn cảm biến nhiệt độ vào bảng EC. Tất cả các bo mạch đều có khả năng đo nhiệt độ. Đừng quên gắn các đầu dò EC, pH và ORP vào các cảm biến thích hợp. Chúng dễ dàng được gắn với các đầu nối BNC. Nếu bạn có một bao vây, đặt tất cả những thứ này vào bên trong sẽ là một ý tưởng hay, đặc biệt là khi xem xét nước sẽ có liên quan.

Bước 4: Phần cứng NoCAN

Phần cứng NoCAN
Phần cứng NoCAN

Lắp ráp phần cứng NoCAN cũng dễ dàng. Gắn PiMaster vào Raspberry Pi và tìm nguồn điện phù hợp cho nó.

Làm theo hướng dẫn của Omzlo về cách tạo cáp cho dự án của bạn.

Triển khai nút của bạn và tìm một vị trí cho PiMaster.

Bước 5: Lập trình nút CANZERO

Lập trình nút CANZERO
Lập trình nút CANZERO

Một trong những điều tuyệt vời về thiết lập này là bạn có thể truy cập các nút ngay cả sau khi chúng được triển khai. Chúng được lập trình qua dây CAN, vì vậy bạn có thể lập trình lại chúng bất cứ lúc nào bạn muốn.

Đối với điều đó, bạn sẽ cần cài đặt Arduino IDE, PiMaster trên mạng của bạn và nút của bạn được kết nối với bus CAN. Bạn cũng sẽ cần một chương trình có tên nocanc được cài đặt trên máy tính phát triển của mình. Tất cả những điều đó được mô tả trên trang cài đặt của Omzlo.

Truy cập GitHub và sao chép mã vào một bản phác thảo Arduino IDE mới. Thay đổi bảng thành Omzlo CANZERO và chọn nút trong menu 'Cổng'. Sau đó chỉ cần bấm tải lên như bình thường. Nếu mọi thứ diễn ra theo đúng kế hoạch, bạn nên chuẩn bị sẵn một nút được lập trình để thực hiện một số phép đo.

Bước 6: Tất cả điều này liên kết với nhau như thế nào?

Làm thế nào để tất cả điều này liên kết với nhau?
Làm thế nào để tất cả điều này liên kết với nhau?

Bây giờ tất cả phần mềm và phần cứng đã được thiết lập, chúng ta hãy dành một chút thời gian để nói về cách tất cả chúng sẽ thực sự hoạt động như thế nào. Và thể hiện kỹ năng GIMP của tôi…

Tóm tắt:

  1. Nút CANZERO được kết nối với PiMaster và được triển khai ở đâu đó
  2. Mỗi phút một công việc Cron được chạy trên PiMaster. Nó sẽ thực thi một tập lệnh python.
  3. Tập lệnh python sẽ gửi một lệnh đến nút yêu cầu nó thực hiện một phép đo hoặc một số hành động khác.
  4. Nút sẽ thực hiện lệnh đó và trả về kết quả ở định dạng JSON.
  5. Tập lệnh python sẽ nhận kết quả đó, phân tích cú pháp và cập nhật InfluxDB với nó.

Bước cuối cùng là xem dữ liệu được thu thập trong một số biểu đồ đẹp mắt.

Bước 7: Thiết lập Chronograf hoặc Grafana

Thiết lập Chronograf hoặc Grafana
Thiết lập Chronograf hoặc Grafana

Điều cuối cùng cần làm là thiết lập một số biểu đồ trong Chronograf hoặc Grafana.

Bạn sẽ cần thiết lập nguồn dữ liệu. Mặc định cho InfluxDB là tốt. Địa chỉ của nó là 'https:// localhost: 8086' và không có tên người dùng hoặc mật khẩu.

Cả hai đều giống nhau ở chỗ chúng được tổ chức thành Trang tổng quan có bất kỳ số lượng biểu đồ nào bên trong chúng. Cả hai đều có khu vực Khám phá cho phép bạn xem các phép đo và tương tác tạo biểu đồ. Hãy nhớ tên cơ sở dữ liệu là 'nocan' và được tổ chức thành nhiều phép đo với một giá trị.

Giống như tôi đã đề cập, tôi thích Grafana hơn vì nó có thể cấu hình tốt hơn Chronograf. Nó cũng thân thiện với thiết bị di động, trong khi Chronograf thì không. Các biểu đồ được nhúng và chia sẻ dễ dàng

Bước 8: Một số cải tiến

  • Bạn có thể đặt tên máy chủ của Raspberry Pi để truy cập dễ dàng hơn trên mạng của mình. Bạn có thể làm điều đó trong raspi-config. Tôi đã thay đổi của tôi thành nocan, vì vậy tôi có thể truy cập nocan.local để truy cập nó (không hoạt động trên Android).
  • Bạn có thể cài đặt một chương trình như ngrok để truy cập Raspberry Pi bên ngoài mạng của bạn.
  • Sử dụng một trong các phương pháp Kapacitor cung cấp để cung cấp thông báo.
  • Tất nhiên là phải thêm nhiều cảm biến hơn.

Đề xuất: