สารบัญ:

จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และแพลตฟอร์ม NoCAN: 8 ขั้นตอน
จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และแพลตฟอร์ม NoCAN: 8 ขั้นตอน

วีดีโอ: จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และแพลตฟอร์ม NoCAN: 8 ขั้นตอน

วีดีโอ: จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และแพลตฟอร์ม NoCAN: 8 ขั้นตอน
วีดีโอ: วิธีใช้เครื่อง EC PH 2024, พฤศจิกายน
Anonim
จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และ NoCAN Platform
จัดเก็บและสร้างกราฟข้อมูล EC/pH/ORP ด้วย TICK Stack และ NoCAN Platform

ซึ่งจะอธิบายวิธีการใช้แพลตฟอร์ม NoCAN โดยเซ็นเซอร์ Omzlo และ uFire เพื่อวัด EC, pH และ ORP ตามที่เว็บไซต์กล่าวไว้ บางครั้งการเรียกใช้สายเคเบิลกับโหนดเซ็นเซอร์ของคุณอาจง่ายกว่า CAN มีข้อได้เปรียบด้านการสื่อสารและการจ่ายไฟในสายเคเบิลเส้นเดียว ดังนั้นสัญญาณและแบตเตอรี่จึงไม่มีปัญหา เฟิร์มแวร์ของโหนดนั้นง่ายกว่า ไม่ต้องกังวลกับโหมดสลีปหรือการตั้งค่า WiFi เป็นต้น แพลตฟอร์ม NoCAN ยังมีคุณสมบัติที่ยอดเยี่ยมเช่นการเขียนโปรแกรมโหนดผ่าน CAN บัส

แพลตฟอร์ม NoCAN ใช้ Raspberry Pi ดังนั้นทุกสิ่งที่สามารถทำได้จะพร้อมใช้งาน เราจะใช้ประโยชน์จากมันโดยการติดตั้ง TICK stack ซึ่งจะทำให้เราใช้ InfluxDB เพื่อจัดเก็บการวัด มันเป็นฐานข้อมูลตามอนุกรมเวลาที่สร้างขึ้นสำหรับสิ่งนี้ นอกจากนี้ยังมาพร้อมกับ Chronograf เพื่อสร้างแดชบอร์ดและแสดงข้อมูลทั้งหมดที่เรากำลังจะทำ T และ K ย่อมาจาก Telegraf และ Kapacitor Telegraf อยู่ระหว่างข้อมูลที่คุณกำลังส่งและฐานข้อมูล Influx Kapacitor เป็นเอ็นจิ้นเหตุการณ์ เมื่อมีอะไรเกิดขึ้น สามารถส่งการแจ้งเตือนถึงคุณผ่านวิธีการต่างๆ และเพียงเพราะฉันชอบมันมากกว่าโครโนกราฟ ฉันจะติดตั้ง Grafana สำหรับแดชบอร์ด

ขั้นตอนที่ 1: เตรียม Raspberry Pi ให้พร้อม

ตรงไปที่หน้าดาวน์โหลด Rasbian และดาวน์โหลดภาพด้วยเดสก์ท็อปและซอฟต์แวร์ที่แนะนำ จากนั้นแฟลชลงในการ์ด SD

หลังจากที่อิมเมจอยู่ในการ์ด SD ของคุณแล้ว คุณควรมีวอลุ่มสองวอลุ่ม รูทและบูต เปิดเทอร์มินัลในการบู๊ตและพิมพ์:

สัมผัส ssh

ที่จะเปิดใช้งาน SSH

จากนั้นพิมพ์:

nano wpa_supplicant.conf

และคัดลอก/วางสิ่งต่อไปนี้หลังจากที่คุณได้แก้ไขสำหรับเขตและการตั้งค่า WiFi ของคุณเอง:

ประเทศ=US

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

รหัสประเทศมาจากที่นี่

เปิดใช้งาน SPI:

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

ใส่การ์ด SD ใน Raspberry Pi ของคุณ รอสักครู่แล้วพิมพ์:

ssh [email protected]

คุณควรอยู่ที่พรอมต์การเข้าสู่ระบบ รหัสผ่านคือราสเบอร์รี่

ขั้นตอนที่ 2: การตั้งค่า NoCAN

Omzlo มีคู่มือการติดตั้งอย่างละเอียด แต่ฉันตัดสินใจที่จะทำให้ตัวเองง่ายขึ้นและเรียนรู้เล็กน้อยเกี่ยวกับการเขียนสคริปต์ Bash ดังนั้นให้ Raspberry Pi ของคุณเริ่มต้นและ SSH หรือเทอร์มินัลอนุกรมเข้าไป

ฉันได้เรียนรู้ว่าเวลาในการพัฒนามากพอที่สามารถสร้างสคริปต์ Bash ที่ดีได้ ไม่ว่าคุณจะพยายามติดตั้งอะไรก็ตาม มี 1,000 วิธีในการทำบางสิ่งให้สำเร็จ บางวิธีเข้าใจหรือดำเนินการได้ง่ายกว่าวิธีอื่นๆ สุดท้ายก็ไม่ได้ทำอะไรมาก หากคุณดำเนินการ:

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

ในเทอร์มินัลของ Raspberry Pi โปรแกรมจะดาวน์โหลดและรันสคริปต์

จากนั้น:

  1. ดาวน์โหลด Omzlo NoCAN daemon และติดตั้งใน /usr/bin เพื่อให้เข้าถึงได้ง่าย สร้างโฟลเดอร์ ~/.nocand และเขียนไฟล์การกำหนดค่าพื้นฐานด้วยรหัสผ่านที่ตั้งเป็น 'รหัสผ่าน' คุณน่าจะเปลี่ยนเป็นอย่างอื่นได้ที่ ~/.nocand/config
  2. ดาวน์โหลดไคลเอ็นต์ Omzlo NoCAN และคัดลอกใน /usr/bin และสร้างไฟล์การกำหนดค่าพื้นฐานด้วยชุดรหัสผ่านเดียวกัน มันอยู่ที่ ~/.nocanc.conf
  3. ตั้งค่าบริการ Systemd ที่ช่วยให้ NoCAN daemon ทำงานต่อไป
  4. เขียนไฟล์หลามไปที่ ~/.nocand, nocan_ufire.py มันจะคุยกับเฟิร์มแวร์ของโหนด NoCAN และทำการวัด EC, pH และ ORP แยกวิเคราะห์ผลลัพธ์และเพิ่มลงในฐานข้อมูล InfluxDB
  5. เพิ่ม repo ของ InfluxData เพื่อ apt และติดตั้ง TICK stack และเนื่องจากฉันชอบมันมากกว่า Chronograf มันจึงติดตั้ง Grafana ด้วย
  6. สร้างฐานข้อมูล Influx เปล่า

gotchas บางตัวที่คุณอาจพบ:

  • สถานที่ของคุณอาจไม่ได้รับการตั้งค่า ดังนั้นให้รัน dpkg-reconfigure locales
  • การติดตั้ง Grafana อาจค้าง ดังนั้นให้ลองอีกครั้ง
  • influx daemon อาจไม่เริ่มทำงานทันเวลาเพื่อให้สคริปต์เพิ่มฐานข้อมูล type

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

  • สคริปต์นี้ทำงานเป็นผู้ใช้ pi เริ่มต้นเท่านั้น คุณจะต้องเปลี่ยน pi เป็นชื่อผู้ใช้ของคุณตามความเหมาะสม หากคุณอยู่ภายใต้ผู้ใช้รายอื่น

สิ่งสุดท้ายคือการเพิ่มงาน cron ฉันหาวิธีที่ดีมากในการเขียนสคริปต์นี้ไม่ได้ ดังนั้นให้พิมพ์ 'crontab -e' เพื่อแก้ไขด้วยตนเองและเพิ่ม '* * * * * python /home/pi/.nocand/nocan_ufire.py'

เมื่อเสร็จแล้ว คุณสามารถตรวจสอบว่าทุกอย่างได้รับการตั้งค่าและทำงานตามที่ควรจะเป็น Grafana อาศัยอยู่ที่ https://[Raspberry Pi's Address]:3000/ คุณควรเห็นหน้าเข้าสู่ระบบ ผู้ดูแลระบบ/ผู้ดูแลระบบเป็นค่าเริ่มต้น

สามารถดูโครโนกราฟได้ที่ https://[Raspberry Pi's Address]:8888/

ขั้นตอนที่ 3: นำฮาร์ดแวร์ UFire มารวมกัน

นำฮาร์ดแวร์ UFire มาไว้ด้วยกัน
นำฮาร์ดแวร์ UFire มาไว้ด้วยกัน

ก่อนที่เราจะประกอบฮาร์ดแวร์ มีสิ่งหนึ่งที่ต้องแก้ไข บอร์ด uFire ISE สามารถใช้วัดค่า pH และ ORP ได้ ฮาร์ดแวร์เหมือนกัน แต่ซอฟต์แวร์ต่างกัน เนื่องจากฮาร์ดแวร์เหมือนกัน หมายความว่าโดยค่าเริ่มต้นที่อยู่ I2C จะเหมือนกันเช่นกัน และเซ็นเซอร์สื่อสารผ่าน I2C ดังนั้นจึงจำเป็นต้องเปลี่ยน สำหรับโครงการนี้ เราจะเลือกหนึ่งในบอร์ด ISE และใช้เพื่อวัด ORP ทำตามขั้นตอนที่นี่ เปลี่ยนที่อยู่เป็น 0x3e

เมื่อมีการเปลี่ยนแปลงที่อยู่ การรวมฮาร์ดแวร์เข้าด้วยกันก็เป็นเรื่องง่าย การตั้งค่านี้อิงจากงานก่อนหน้านี้ที่ทำสิ่งเดียวกันโดยพื้นฐาน แต่ใช้ BLE แทน CAN เพื่อส่งข้อมูล คุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้ใน Arduino Project Hub อุปกรณ์เซ็นเซอร์ทั้งหมดใช้ระบบเชื่อมต่อ Qwiic ดังนั้นเพียงแค่เชื่อมต่อทุกอย่างเข้าด้วยกันเป็นลูกโซ่ มีเพียงวิธีเดียวที่จะเสียบสาย Qwiic เข้ากับสาย Qwiic คุณจะต้องใช้สาย Qwiic to Male เพื่อเชื่อมต่อเซ็นเซอร์ตัวใดตัวหนึ่งกับโหนด CANZERO สายไฟมีความสม่ำเสมอและมีรหัสสี เชื่อมต่อสีดำกับ GND ของโหนด สีแดงกับพิน +3.3V หรือ +5V สีน้ำเงินกับพิน SDA ซึ่งเป็น D11 และสีเหลืองกับพิน SCL บน D12

สำหรับโครงการนี้ คาดว่าข้อมูลอุณหภูมิจะมาจากเซ็นเซอร์ EC ดังนั้น อย่าลืมแนบเซ็นเซอร์อุณหภูมิเข้ากับบอร์ด EC กระดานทั้งหมดมีความสามารถในการวัดอุณหภูมิแม้ว่า อย่าลืมติดหัววัด EC, pH และ ORP เข้ากับเซ็นเซอร์ที่เหมาะสม สามารถติดตั้งได้ง่ายด้วยขั้วต่อ BNC ถ้าคุณมีตู้ การวางทั้งหมดนี้ไว้ข้างในจะเป็นความคิดที่ดี โดยเฉพาะอย่างยิ่งการพิจารณาน้ำจะมีส่วนเกี่ยวข้อง

ขั้นตอนที่ 4: ฮาร์ดแวร์ NoCAN

ฮาร์ดแวร์ NoCAN
ฮาร์ดแวร์ NoCAN

การประกอบฮาร์ดแวร์ NoCAN ก็ง่ายเช่นกัน แนบ PiMaster เข้ากับ Raspberry Pi และค้นหาแหล่งจ่ายไฟที่เหมาะสม

ปฏิบัติตามคำแนะนำของ Omzlo ในการสร้างสายเคเบิลสำหรับโครงการของคุณ

ปรับใช้โหนดของคุณและค้นหาสถานที่สำหรับ PiMaster

ขั้นตอนที่ 5: ตั้งโปรแกรม CANZERO Node

ตั้งโปรแกรมโหนด CANZERO
ตั้งโปรแกรมโหนด CANZERO

ข้อดีอย่างหนึ่งของการตั้งค่านี้คือ คุณสามารถเข้าถึงโหนดได้แม้หลังจากติดตั้งใช้งานแล้ว พวกเขาตั้งโปรแกรมไว้บนสาย CAN ดังนั้นคุณสามารถตั้งโปรแกรมใหม่ได้ทุกเมื่อที่คุณต้องการ

สำหรับสิ่งนั้น คุณจะต้องติดตั้ง Arduino IDE, PiMaster บนเครือข่ายของคุณ และโหนดของคุณเชื่อมต่อกับ CAN บัส คุณจะต้องมีโปรแกรมที่เรียกว่า nocanc ติดตั้งบนคอมพิวเตอร์ที่กำลังพัฒนาของคุณ ทั้งหมดนั้นอธิบายไว้ในหน้าการติดตั้งของ Omzlo

ไปที่ GitHub และคัดลอกโค้ดลงในร่าง Arduino IDE ใหม่ เปลี่ยนบอร์ดเป็น Omzlo CANZERO และเลือกโหนดในเมนู 'พอร์ต' แล้วกดอัพโหลดตามปกติ หากทุกอย่างเป็นไปตามแผน คุณควรมีโหนดที่ตั้งโปรแกรมไว้พร้อมที่จะทำการวัด

ขั้นตอนที่ 6: ทั้งหมดนี้ผูกเข้าด้วยกันได้อย่างไร?

ทั้งหมดนี้ผูกเข้าด้วยกันได้อย่างไร?
ทั้งหมดนี้ผูกเข้าด้วยกันได้อย่างไร?

เมื่อตั้งค่าซอฟต์แวร์และฮาร์ดแวร์ทั้งหมดแล้ว เรามาพูดคุยกันสักนิดว่าจะใช้งานจริงได้อย่างไร และแสดงทักษะ GIMP ของฉัน…

สรุป:

  1. โหนด CANZERO เชื่อมต่อกับ PiMaster และนำไปใช้ที่ไหนสักแห่ง
  2. ทุกนาทีงาน Cron จะทำงานบน PiMaster มันจะรันสคริปต์หลาม
  3. สคริปต์หลามจะส่งคำสั่งไปยังโหนดเพื่อบอกให้ทำการวัดหรือดำเนินการอื่นๆ
  4. โหนดจะดำเนินการตามคำสั่งและส่งคืนผลลัพธ์ในรูปแบบ JSON
  5. สคริปต์หลามจะได้รับผลลัพธ์นั้น แยกวิเคราะห์ และอัปเดต InfluxDB ด้วย

ขั้นตอนสุดท้ายคือการดูข้อมูลที่รวบรวมในแผนภูมิที่ดูดี

ขั้นตอนที่ 7: การตั้งค่า Chronograf หรือ Grafana

การตั้งค่า Chronograf หรือ Grafana
การตั้งค่า Chronograf หรือ Grafana

สิ่งสุดท้ายที่ต้องทำคือตั้งค่าแผนภูมิใน Chronograf หรือ Grafana

คุณจะต้องตั้งค่าแหล่งข้อมูล ค่าเริ่มต้นสำหรับ InfluxDB นั้นใช้ได้ ที่อยู่สำหรับมันคือ 'https://localhost:8086' และไม่มีชื่อผู้ใช้หรือรหัสผ่าน

ทั้งสองมีความคล้ายคลึงกันโดยจัดเป็นแดชบอร์ดที่มีแผนภูมิจำนวนเท่าใดก็ได้ ทั้งสองมีพื้นที่สำรวจที่ให้คุณดูการวัดและสร้างแผนภูมิแบบโต้ตอบได้ โปรดจำไว้ว่าชื่อฐานข้อมูลคือ 'nocan' และจัดเป็นหน่วยวัดหลายค่าด้วยค่าเดียว

อย่างที่ฉันบอกไป ฉันชอบ Grafana เพราะมันกำหนดค่าได้ดีกว่า Chronograf นอกจากนี้ยังเป็นมิตรกับมือถือโดยที่ Chronograf ไม่ใช่ แผนภูมิถูกฝังและแชร์อย่างง่ายดาย

ขั้นตอนที่ 8: การปรับปรุงบางอย่าง

  • คุณสามารถตั้งชื่อโฮสต์ของ Raspberry Pi เพื่อให้เข้าถึงได้ง่ายขึ้นบนเครือข่ายของคุณ คุณสามารถทำได้ใน raspi-config ฉันเปลี่ยนของฉันเป็น nocan ดังนั้นฉันจึงสามารถไปที่ nocan.local เพื่อเข้าถึงได้ (ไม่ทำงานบน Android)
  • คุณสามารถติดตั้งโปรแกรมเช่น ngrok เพื่อเข้าถึง Raspberry Pi นอกเครือข่ายของคุณได้
  • ใช้วิธีการใดวิธีหนึ่งที่ Kapacitor จัดเตรียมไว้เพื่อให้การแจ้งเตือน
  • เพิ่มเซ็นเซอร์มากขึ้นแน่นอน

แนะนำ: