Mục lục:
- Bước 1: Chuẩn bị Raspberry Pi
- Bước 2: Thiết lập NoCAN
- Bước 3: Đặt phần cứng UFire lại với nhau
- Bước 4: Phần cứng NoCAN
- Bước 5: Lập trình nút CANZERO
- Bước 6: Tất cả điều này liên kết với nhau như thế nào?
- Bước 7: Thiết lập Chronograf hoặc Grafana
- Bước 8: Một số cải tiến
Video: Lưu trữ và vẽ biểu đồ dữ liệu EC / pH / ORP với TICK Stack và NoCAN Platform: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
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:
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ó:
- 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.
- 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.
- Thiết lập dịch vụ Systemd để giữ cho daemon NoCAN chạy.
- 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.
- 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.
- 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
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
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
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?
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:
- Nút CANZERO được kết nối với PiMaster và được triển khai ở đâu đó
- 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.
- 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.
- Nút sẽ thực hiện lệnh đó và trả về kết quả ở định dạng JSON.
- 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
Đ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:
Tạo các lô đẹp từ dữ liệu Arduino trực tiếp (và lưu dữ liệu vào Excel): 3 bước
Tạo các ô đẹp từ dữ liệu Arduino trực tiếp (và Lưu dữ liệu vào Excel): Tất cả chúng ta đều thích chơi với hàm P … lotter của mình trong Arduino IDE. điểm được thêm vào và nó không đặc biệt dễ chịu cho mắt. Trình vẽ đồ họa Arduino IDE không
Hệ thống chấm công vân tay Arduino W / Lưu trữ dữ liệu đám mây: 8 bước
Hệ thống chấm công vân tay Arduino W / Lưu trữ dữ liệu đám mây: Bạn có thể đọc phần này và các hướng dẫn tuyệt vời khác trên trang web chính thức của ElectroPeak. Trong hướng dẫn này, chúng tôi sẽ thực hiện
Hệ thống chấm công có lưu trữ dữ liệu trên bảng tính Google bằng RFID và Arduino Ethernet Shield: 6 bước
Hệ thống Chấm công với Lưu trữ Dữ liệu trên Bảng tính Google Sử dụng RFID và Arduino Ethernet Shield: Xin chào các bạn, Sau đây chúng tôi đưa ra một dự án rất thú vị và đó là cách gửi dữ liệu rfid tới bảng tính google bằng Arduino. Tóm lại, chúng tôi sẽ tạo ra một hệ thống chấm công dựa trên trình đọc rfid, hệ thống này sẽ lưu dữ liệu chấm công theo thời gian thực vào goog
OrangeBOX: Thiết bị lưu trữ sao lưu an toàn dựa trên OrangePI: 5 bước
OrangeBOX: Thiết bị lưu trữ sao lưu an toàn dựa trên OrangePI: OrangeBOX là một hộp sao lưu lưu trữ từ xa tất cả trong một cho bất kỳ máy chủ nào. Máy chủ của bạn có thể bị nhiễm, bị hỏng, bị xóa và tất cả dữ liệu của bạn vẫn được bảo mật trên OrangeBOX và ai sẽ không thích một nhiệm vụ bất khả thi như thiết bị sao lưu những gì bạn chỉ làm
Xóa biểu ngữ bắt buộc khỏi lưu trữ web: 6 bước
Xóa biểu ngữ cưỡng bức khỏi lưu trữ web: Đây là một cách an toàn để xóa biểu ngữ bắt buộc trên trang web cá nhân của bạn. Đảm bảo không khiến bạn bị treo, vì biểu ngữ vẫn ở đó, chỉ là nó không hiển thị. Đây chỉ là hướng dẫn đầu tiên của tôi và tôi chỉ thử nghiệm mã này trên 1 trang web, vì vậy ……. Nhưng