สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์ + ตั้งค่า
- ขั้นตอนที่ 2: การตั้งค่าวงจร
- ขั้นตอนที่ 3: รหัส Arduino และการกะพริบ
- ขั้นตอนที่ 4: รหัส Raspberry Pi
- ขั้นตอนที่ 5: นำทุกอย่างมารวมกัน
- ขั้นตอนที่ 6: การกำหนดค่า Grafana และการดูแดชบอร์ด
- ขั้นตอนที่ 7: สรุป
วีดีโอ: ติดตามคุณภาพอากาศโดยใช้ Grafana และ Raspberry Pi: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ฉันกำลังมองหาโครงการ IOT เล็กๆ และเพื่อนแนะนำให้ฉันดูบทช่วยสอนนี้:
dzone.com/articles/raspberry-pi-iot-sensor…
ฉันขอแนะนำอย่างยิ่งให้ทำตามบทช่วยสอนเพื่อติดตามในการตั้งค่า Raspberry Pi สำหรับการตรวจสอบ บทช่วยสอนนี้จะเสร็จสิ้นขั้นตอนเพิ่มเติมในการออกแบบอุปกรณ์ IoT อย่างง่ายที่ช่วยให้มีความทนทานต่อข้อผิดพลาดสูง รวมถึงประโยชน์ที่ Raspberry Pi สามารถทำได้เมื่อจับคู่กับ Arduino
ฉันยังพูดถึงประสิทธิภาพและข้อจำกัดบางประการของเซ็นเซอร์อากาศรุ่น MQ* เซ็นเซอร์ MQ* มีราคาถูกและมีประสิทธิภาพพอสมควร และตั้งค่าได้ง่ายมาก
โดยรวมแล้วสิ่งนี้จะช่วยให้คุณเริ่มต้นในการเชื่อมต่อ Arduino กับอินเทอร์เน็ตในวิธีที่ง่ายที่สุด และกำหนดวิธีการสำหรับการใช้โมดูลรอยเท้าที่เบากว่า (อีกครั้ง: ESP8266)
มีความสุข!
ขั้นตอนที่ 1: อุปกรณ์ + ตั้งค่า
อุปกรณ์
- Raspberry Pi พร้อม Raspbian ติดตั้งอยู่
- แหล่งจ่ายไฟ Raspberry Pi
- Arduino Uno/เทียบเท่า
- USB ตัวผู้ถึงตัวผู้ B ถึง Type A (ควรมาพร้อมกับ Arduino ของคุณ)
- เซ็นเซอร์ MQ* รุ่นใดก็ได้ (ฉันใช้ MQ-2, 4, 5 และ 135)
- สายจัมเปอร์คละแบบ
- เขียงหั่นขนมขนาดเล็ก
ติดตั้ง
บทช่วยสอนนี้มีขึ้นเพื่อเป็นการแนะนำเบื้องต้นเกี่ยวกับการใช้ Arduino และ Raspberry Pi - จะช่วยให้ทราบวิธีใช้เทอร์มินัล linux อย่างไรก็ตาม ฉันไม่ถือว่ามีประสบการณ์มากในการทำงานกับ Arduino หรือ Raspberry Pi - สิ่งที่คุณต้องการจริงๆ ก็คืออุปกรณ์ที่ให้มาและทัศนคติที่อยากรู้อยากเห็น
- คุณจะต้องทำตามขั้นตอนในบทช่วยสอนนี้
- ฉันแนะนำให้คุณใช้ Secure Shell (SSH) เพื่อเชื่อมต่อกับ Raspberry Pi เนื่องจากจะช่วยให้คุณป้อนคำสั่งได้อย่างง่ายดาย การเชื่อมต่อผ่าน SSH นั้นแตกต่างกันไปไม่ว่าคุณจะใช้ Windows, Linux หรือ Mac Linux และ Mac ค่อนข้างใช้งานง่ายสำหรับ ssh (คำสั่งในการเปิด SSH คือ ssh อย่างแท้จริง) ลองใช้สีโป๊วสำหรับ Windows ฉันแนะนำให้คุณตรวจสอบหน้าจอเพื่อรักษาเซสชันของคุณในระหว่างโครงการ
- คุณจะต้องติดตั้ง Python บน Raspbian ด้วย เมื่อฉันทำตามขั้นตอนเหล่านี้เสร็จแล้ว ฉันได้สร้างสำเนาของการ์ด SD เก่าที่ฉันวางไว้จากโปรเจ็กต์ก่อนหน้าซึ่งติดตั้ง Python ไว้แล้ว หากการแจกจ่าย NOOBS/Raspbian ของคุณไม่มี Python 3.7 ขึ้นไป ให้ตรวจสอบขั้นตอนเหล่านี้เพื่อคอมไพล์ Python จากแหล่งที่มา
- ทำความคุ้นเคยกับ git และติดตั้งในกรณีที่ยังไม่ได้ติดตั้งในการแจกจ่าย Raspbian ของคุณ
ขั้นตอนที่ 2: การตั้งค่าวงจร
มีวงจรเดียวที่คุณต้องตั้งค่าใน Arduino
ฉันได้จัดทำแผนผังที่คุณสามารถใช้เป็นข้อมูลอ้างอิงได้
ความสวยงามของเซ็นเซอร์ก๊าซ MQ-* ทั้งหมดก็คือ เมื่อทำการเชื่อมต่อ 5 โวลต์และกราวด์แล้ว ความต้านทานอินพุตของพินอะนาล็อกของ Arduino ช่วยให้เซ็นเซอร์ทำงานได้อย่างถูกต้อง
ระวังให้แน่ใจว่าการเชื่อมต่ออนาล็อกจากบอร์ดฝ่าวงล้อมในเซ็นเซอร์เชื่อมต่อกับ Arduino ไม่ใช่การเชื่อมต่อแบบดิจิตอล หากคุณกำลังเผชิญกับช่วงค่าที่แคบมากเมื่อทำการทดสอบ เราขอแนะนำให้คุณตรวจสอบการเชื่อมต่อของคุณที่นี่ก่อน
ขั้นตอนที่ 3: รหัส Arduino และการกะพริบ
ในขั้นตอนต่อไป เราจะเชื่อมต่อบอร์ด Arduino กับ Raspberry Pi ก่อนที่เราจะทำสิ่งนี้ เราต้องแฟลช Arduino พร้อมโค้ดเพื่ออ่านเซ็นเซอร์และส่งข้อมูลเซ็นเซอร์ไปยัง Raspberry Pi สามารถทำได้ในทุกวิถีทางที่คุณมักจะกดโค้ดไปยัง Arduino ฉันใช้เครื่องมือของบุคคลที่สามนอกเหนือจาก Arduino IDE ดังนั้นฉันจึงรวมไลบรารี Arduino ไว้ที่ด้านบน สิ่งนี้ไม่จำเป็นสำหรับโครงการอื่น
ตรวจสอบรหัสเพื่อคัดลอก/วางที่ส่วนท้ายของส่วนนี้
รหัสทำอะไรได้บ้าง
รหัสได้รับการตั้งค่าเพื่อรับข้อมูลจากเซ็นเซอร์ที่แตกต่างกันสี่ตัว - หากคุณใช้เซ็นเซอร์ประเภทต่าง ๆ การเปลี่ยนชื่อบนสัญญาณเอาต์พุตที่ส่งจากพอร์ตอนุกรมจะสมเหตุสมผล
ในลูปเราตรวจสอบว่า Raspberry Pi ร้องขอข้อมูลจากเราหรือไม่ ดังนั้นเราจึงใช้การกำหนดค่า Master/Slave ที่ง่ายมาก โดย Raspberry Pi จะส่งคำขอข้อมูลไปยัง Arduino อย่างต่อเนื่อง สิ่งนี้ง่ายกว่าการมีตัวนับในโค้ด Arduino มากเพราะง่ายต่อการทดสอบว่าค่าใดทำงานจาก Raspberry Pi แทนที่จะต้องแฟลชค่าใหม่ไปยัง Arduino
Arduino เมื่อได้รับคำขอข้อมูล จะจัดรูปแบบเอาต์พุตเป็นพารามิเตอร์ GET ซึ่งเกี่ยวข้องกับวิธี HTTP และเป็นเพียงตัวเลือกการออกแบบ หากคุณต้องออกแบบสคีมาการสื่อสารจาก Arduino ผ่าน Serial Port คุณสามารถทำอย่างอื่นได้อย่างง่ายดาย ตราบใดที่คุณออกแบบเพื่อให้ข้อมูลแยกจากกันอย่างสมเหตุสมผล ฉันเลือก GET เพราะมันคุ้นเคยและแข็งแกร่ง
การทดสอบอย่างง่าย…
เมื่อคุณให้ Arduino แฟลชและรันโค้ดแล้ว ให้เปิด Serial Monitor ของ Arduino IDE หากคุณส่งอักขระตัวเดียว "H" (ตรวจสอบให้แน่ใจว่าเป็นตัวพิมพ์ใหญ่!) คุณจะได้รับข้อมูล ยินดีด้วย มันได้ผล!
ตัวอย่าง ตัวรวบรวมแบบอะซิงโครนัสของ MQ-* data
#รวม |
int mq2 = A2; |
int mq4 = A3; |
int mq5 = A4; |
int mq135 = A5; |
ขาเข้าไบต์; |
voidsetup() { |
โหมดพิน (mq2, INPUT); |
โหมดพิน (mq4, INPUT); |
โหมดพิน (mq5, อินพุต); |
โหมดพิน (mq135, INPUT); |
Serial.begin(9600); |
} |
/* valuePrint พิมพ์ค่าสำหรับป้ายกำกับนี้ |
* สร้างผลข้างเคียงเท่านั้น |
*/ |
voidvaluePrint (ป้ายกำกับสตริง, การอ่าน int) { |
Serial.print (ฉลาก); |
Serial.print("="); |
Serial.print (การอ่าน); |
} |
โมฆะลูป () { |
// ดูว่ามีข้อมูลซีเรียลเข้ามาหรือไม่: |
ถ้า (Serial.available() >0) { |
// อ่านไบต์ที่เก่าที่สุดในบัฟเฟอร์อนุกรม: |
// "เมื่อคุณเรียก Serial.read ไบต์จะถูกลบออกจากบัฟเฟอร์การรับและกลับสู่โค้ดของคุณ" |
ขาเข้า = Serial.read(); |
// ถ้าเป็นตัวพิมพ์ใหญ่ H (ASCII 72) ให้อ่านค่าและส่งไปยังโฮสต์ราสเบอร์รี่ |
// TODO: ตรวจสอบให้แน่ใจว่าข้อความมีความยาวเท่ากันทุกครั้ง |
ถ้า (incomingByte == 72) { |
int mq2Reading = analogRead (mq2); |
int mq4Reading = analogRead (mq4); |
int mq5Reading = analogRead (mq5); |
int mq135Reading = analogRead (mq135); |
Serial.print("?"); |
valuePrint("mq2", mq2Reading); |
Serial.print("&"); |
valuePrint("mq4", mq4Reading); |
Serial.print("&"); |
valuePrint("mq5", mq5Reading); |
Serial.print("&"); |
valuePrint("mq135", mq135Reading); |
Serial.print("\n"); |
} |
} |
// อ่านซีเรียลทุกวินาที |
ล่าช้า (1000); |
} |
ดู rawmain.cpp โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 4: รหัส Raspberry Pi
ตอนนี้คุณได้กำหนดค่า Raspberry Pi ตาม https://dzone.com/articles/raspberry-pi-iot-sensor… ตอนนี้คุณสามารถเรียกใช้รหัส Raspberry Client ที่จะส่งข้อมูลผ่าน MQTT ไปยังฐานข้อมูลของเรา ซึ่งยัง เชื่อมต่อกับ Grafana
-
ตรวจสอบให้แน่ใจว่าราสเบอร์รี่ของคุณเชื่อมต่อกับอินเทอร์เน็ตแล้วใช้คำสั่ง git clone เพื่อคัดลอกโค้ดทั้งหมดไปยัง Raspberry Pi คำสั่งของคุณจะมีลักษณะดังนี้:
โคลน git
-
ภายในเทอร์มินัลของ raspberry Pi ให้ดำเนินการคำสั่ง change directory (cd) เป็น "raspberry_client":
cd raspberry_client.
-
คุณจะต้องใช้สภาพแวดล้อมเสมือน* เรียบง่าย. วิ่ง
python3 -m venv env. สิ่งนี้จะสร้างสภาพแวดล้อมเสมือนที่เรียกว่า "env" ซึ่งเราจะใช้ในการติดตั้งการพึ่งพา
-
ตอนนี้ เราต้องเข้าสู่สภาพแวดล้อมเสมือนของเรา วิ่ง:
แหล่งที่มา env/bin/activate. ตอนนี้คุณพร้อมที่จะติดตั้งการพึ่งพาของโปรเจ็กต์แล้ว
-
ในแพ็คเกจที่คุณเพิ่งโคลนมีไฟล์ชื่อ requirements.txt เปิดไฟล์นี้ คุณจะเห็นว่าเราต้องการแพ็คเกจ paho-mqtt และ pyserial รวมถึงเวอร์ชันที่เกี่ยวข้อง คุณสามารถดูเนื้อหาของไฟล์ได้โดยการเรียกใช้
ข้อกำหนดของแมว.txt. ในการติดตั้งแพ็คเกจเหล่านี้ ru
pip install -r requirements.txt.
- สิ่งนี้จะสรุปการกำหนดค่า
แท้จริงทุกบทช่วยสอนที่ใช้ python กล่าวถึง Virtual env และแม้แต่สำหรับโครงการเล็ก ๆ นี้ ฉันจะพูดถึง สภาพแวดล้อมเสมือนช่วยให้คุณสามารถแยกเวอร์ชันของการพึ่งพาได้ รวมทั้งแยกเวิร์กโฟลว์ไพ ธ อนของคุณ - เป็นวิธีที่ดีในการจัดพื้นที่ทำงาน Python ของคุณ หากนี่เป็นครั้งแรกที่คุณใช้สภาพแวดล้อมเสมือน โปรดอ่านข้อมูลคร่าวๆ ที่นี่
รหัสทำอะไร…
ไฟล์ client.py จะนำเข้าชุดไลบรารีอย่างง่ายรวมถึง arduinosensor ของเราเอง ในฟังก์ชันหลัก เราจะรับค่าจาก Arduino เผยแพร่ข้อมูลไปยังโบรกเกอร์ MQTT แล้วพักเครื่องเป็นเวลา 10 วินาที
ไฟล์ arduinosensor.py เป็นชุดของวิธีการช่วยเหลือที่ล้อมรอบไลบรารี paho.mqtt รวมทั้งจัดเตรียมสคีมาการสื่อสารที่มีประโยชน์สำหรับการสื่อสารกับเพย์โหลดของ Arduino (ดู: parse_payload) แน่นอน รหัสถูกแนบมาที่ส่วนท้ายของส่วนนี้
ไคลเอนต์ธรรมดาที่สื่อสารกับรายการ Arduino ผ่าน Serial monitor คาดว่าจะพบรหัสที่นี่เมื่อเผยแพร่สู่สาธารณะ:
fromimportlibimportimport_module |
นำเข้า |
เวลานำเข้า |
เซ็นเซอร์นำเข้า |
defmain(): |
# เปิดกำหนดไคลเอนต์ |
start_time=time.time() |
ในขณะที่จริง: |
reading=arduinosensor.get_values(os.environ.get('PORT', "/dev/ttyUSB0")) |
arduinosensor.pub("python_client", payload=reading) |
time.sleep(10.0- ((time.time() -start_time) %10.0)) |
if_name_=="_main_": |
หลัก() |
ดู rawclient.py โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 5: นำทุกอย่างมารวมกัน
เราได้ตั้งค่าโค้ด Raspberry Python และเราได้ตั้งค่าโค้ดไคลเอ็นต์ Arduino มาต่อกันที่การเชื่อมต่อเอนทิตีทั้งสองเข้าด้วยกัน
ขั้นแรก ให้เชื่อมต่อ Arduino และตั้งค่าคอนฟิกที่ถูกต้อง:
-
บนเทอร์มินัล Raspberry Pi ของคุณ ให้เรียกใช้
หลาม -m serial.tools.list_ports. นี่จะแสดงรายการพอร์ต USB ทั้งหมดที่รองรับการสื่อสารแบบอนุกรม
-
ตอนนี้เสียบ Arduino ของคุณและรอประมาณ 2 วินาทีเพื่อให้ Raspberry รู้จัก กำลังพิมพ์
หลาม -m serial.tools.list_ports อีกครั้งจะแสดงพอร์ตให้คุณเห็นอีกครั้ง คุณอาจเห็นรายการเพิ่มเติมปรากฏขึ้น - หากเป็นกรณีนี้ รายการใหม่นี้เป็นรายการที่ Arduino ของคุณเชื่อมต่ออยู่ ซึ่งน่าจะเป็น "/dev/ttyUSB0"
-
ลองรันโค้ด python ภายในสภาพแวดล้อมเสมือนของคุณโดยเรียกใช้ python3.7 client.py รอสองสามวินาที (สูงสุดสิบ) - หากคุณพบข้อยกเว้น หมายความว่าเราจะต้องเปลี่ยนค่าสำหรับพอร์ต com ของเราบน raspberry pi หากคุณเห็นว่าโค้ดพิมพ์บรรทัดที่ขึ้นต้นด้วย "Sent following payload:…" จากนั้น คุณก็พร้อมที่จะไปยังขั้นตอนสุดท้ายกับ Grafana เคล็ดลับ: อย่าลืมวิ่ง
หน้าจอ -S python ก่อนที่คุณจะเริ่มไคลเอนต์ python มิฉะนั้น เมื่อคุณสิ้นสุดการเชื่อมต่อกับ raspberry pi คุณจะสูญเสียโปรแกรม python ที่กำลังทำงานอยู่ ในทางเทคนิค คุณไม่จำเป็นต้องใช้ "python" เป็นพารามิเตอร์สุดท้ายอย่างเคร่งครัด แต่ฉันชอบตั้งชื่อเซสชันหน้าจอตามนั้น
-
ในการเปลี่ยนค่าสำหรับพอร์ต COM คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมก่อนรันโค้ด คุณจะต้องลองสิ่งนี้กับทุกค่าที่เป็นไปได้ของเอาต์พุตที่คุณได้รับเมื่อรัน python -m serial.tools.list_ports ตัวอย่างเช่น หากจำนวนผลงานที่ฉันได้รับเป็นสองรายการ และมีดังต่อไปนี้:
- /dev/ttyUSB6
- /dev/acm0
-
คำสั่งที่ฉันเรียกใช้จะเป็น:
PORT="/dev/ttyUSB6" python3.7 client.pyและถ้านั่นไม่ได้ผล ฉันจะรู
PORT="/dev/acm0" python3.7 client.py
เมื่อคุณทำตามขั้นตอนเหล่านี้เสร็จแล้ว โค้ดจะส่งข้อมูลไปยังอินสแตนซ์ฐานข้อมูล influxdb ซึ่งเมื่อเชื่อมต่อกับ Grafana จะช่วยให้เราดูแดชบอร์ดได้
ขั้นตอนที่ 6: การกำหนดค่า Grafana และการดูแดชบอร์ด
เอาล่ะ เรามาถึงช่วงสุดท้ายแล้ว! ตอนนี้เราจะใช้ Grafana เพื่อสร้างแดชบอร์ดอย่างง่าย
- เชื่อมต่อกับอินสแตนซ์ Grafana ของคุณ เนื่องจากคุณทำตามขั้นตอนจากบทความ dzone ต้นฉบับ คุณควรจะสามารถเข้าสู่ระบบด้วยผู้ใช้ที่เป็นผู้ดูแลระบบของคุณได้ ไปข้างหน้าและเข้าสู่ระบบ
- ในบานหน้าต่างด้านซ้าย ให้วางเมาส์เหนือไอคอน "แดชบอร์ด" - สี่เหลี่ยมทั้งสี่ คลิกที่ "จัดการ"
- ในหน้าใหม่ ให้คลิกที่ "แดชบอร์ดใหม่" นอกจากนี้ คลิก "เพิ่มแผงใหม่"
-
ซึ่งจะเปิดเอดิเตอร์ Grafana เราจะสร้างมุมมองแบบง่ายที่แสดงเมตริกเดียว
- ในบานหน้าต่างด้านขวา เปลี่ยนชื่อแผงเป็นสิ่งที่มีความหมาย เช่น "การอ่านในครัว" คุณยังสามารถป้อนคำอธิบายเพิ่มเติมได้อีกด้วย
- ที่ด้านล่างซ้าย "แบบสอบถาม" เราจะเพิ่มอนุกรมเวลาเดียว Grafana โดดเด่นที่นี่ เพราะเราสามารถสร้างคำสั่ง SQL ได้อย่างง่ายดายด้วยอินเทอร์เฟซแบบคลิก ภายใต้ "ค่าเริ่มต้น" เลือก InfluxDB
- ตอนนี้สำหรับการอ่าน "A" - ในส่วนคำสั่ง FROM ให้เลือกการวัด "airtestt" หากคุณดูโค้ดหลามดั้งเดิมในฟังก์ชัน get_values ของ arduinosensor.py คุณจะเห็นว่าเรากำหนดตาราง airtestt นี้ภายในโค้ด
- สำหรับตัวอย่าง ให้เราไปที่ส่วนคำสั่ง "SELECT" และเลือก field(mq4) เดิมแดชบอร์ดของเราจะให้เราเลือก "mean ()" - คลิกที่ตัวเลือกนี้และเลือก "Remove" จากนั้น คลิกที่เครื่องหมายบวก และภายใต้ "การรวม" เลือก "distinct()" ซึ่งจะแสดงจุดเวลาที่เฉพาะเจาะจง เราสามารถเลือกการวัดอื่นๆ ได้ แต่สำหรับตอนนี้ แผงของเราจะแสดงการอ่านที่แตกต่างจาก mq4
- คลิกบันทึกที่มุมขวาบน เสร็จแล้ว!
ในกรณีที่คุณประสบปัญหา คุณสามารถตรวจสอบการตั้งค่าของคุณด้วยการตั้งค่าในภาพหน้าจอที่แนบมา
ขั้นตอนที่ 7: สรุป
ในบทช่วยสอนนี้ คุณสามารถตั้งค่าเครือข่าย MQTT ที่แข็งแกร่งซึ่งประกอบด้วยโหนดเดียวและนายหน้า คุณยังสามารถแสดงภาพข้อมูล IOT ของคุณโดยใช้ Grafana สุดท้ายนี้ คุณสามารถเขียนสถาปัตยกรรมระบบที่เรียบง่ายนี้จาก (หวังว่า) ความสะดวกสบายของเบราว์เซอร์และพีซีของคุณผ่านการใช้การเชื่อมต่อ SSH
มีบางสิ่งที่เราอาจต้องการปรับปรุง
- การอ่านค่าเซ็นเซอร์ในกราฟของเรานั้นไม่ใช่การอ่านค่าเซ็นเซอร์ที่แม่นยำจริง ๆ แต่เป็นแรงดันเอาต์พุตจากเซ็นเซอร์ของเรา พวกเขาต้องได้รับการปรับเทียบ โปรดดูรายละเอียดเพิ่มเติมในบล็อกโพสต์นี้
- การกำหนดค่า Raspberry Pi ของเราสามารถทำให้น้ำหนักเบาขึ้นได้มากโดยใช้บอร์ด ESP8266 ที่เชื่อมต่อกับ Arduino และถอด pi ออกทั้งหมด ดูข้อมูลเบื้องต้นเกี่ยวกับโมดูล ESP8266
- เราอาจต้องการเพิ่มการแจ้งเตือนสำหรับเหตุการณ์เฉพาะ โชคดีที่ Grafana เสนอวิธีการทำเช่นนั้น
ฉันจะปล่อยให้การอ่านเพิ่มเติมเพื่อดึงดูดจินตนาการของคุณกับโลกของ IOT ฉันหวังว่าจะได้พบคุณในคำแนะนำต่อไป!
การอ่านเพิ่มเติม:
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ