สารบัญ:

จากไฟฉายสู่เซ็นเซอร์ตรวจจับความเคลื่อนไหวด้วย ESP8266 และ MQTT: 5 ขั้นตอน (พร้อมรูปภาพ)
จากไฟฉายสู่เซ็นเซอร์ตรวจจับความเคลื่อนไหวด้วย ESP8266 และ MQTT: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จากไฟฉายสู่เซ็นเซอร์ตรวจจับความเคลื่อนไหวด้วย ESP8266 และ MQTT: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จากไฟฉายสู่เซ็นเซอร์ตรวจจับความเคลื่อนไหวด้วย ESP8266 และ MQTT: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: PIR เซนเซอร์ตรวจจับการเคลื่อนไหว220V 2024, พฤศจิกายน
Anonim
Image
Image
ไฟ LED ต้องการกระแสไฟที่จำกัด
ไฟ LED ต้องการกระแสไฟที่จำกัด

ในโพสต์นี้ฉันจะนำเสนอรายการด้านล่าง:

  • ไฟ LED ต้องการวงจรกระแสไฟที่ จำกัด
  • วิธีทำไฟฉาย
  • สร้างไฟจากแบตเตอรี่แบบพกพา และหรี่ไฟ LED โดย ESP8266 ผ่าน MQTT

วิดีโอนี้เป็นบทสรุปและคำอธิบายสั้นๆ เกี่ยวกับวิธีการทำงาน

ฉันวางแผนที่จะรวมเซ็นเซอร์ PIR แต่บทช่วยสอนจะค่อนข้างยาวเพื่อให้เซ็นเซอร์ PIR ถูกนำเสนอในส่วนที่สองของหัวข้อนี้

ดังนั้นให้เริ่มต้น

ขั้นตอนที่ 1: ไฟ LED ต้องการกระแสไฟที่จะ จำกัด

สำหรับผู้เริ่มต้น เรื่องนี้ดูแปลกมากเมื่อพิจารณาจากปกติว่าจะเปิดหลอดไส้หรือหลอดฟลูออเรสเซนต์อย่างไร ไม่ต้องกังวล หลอดไฟ LED บนชั้นวางมาพร้อมกับอะแดปเตอร์แปลงไฟ AC เป็น DC และกระแสไฟที่จำกัด แต่จะดีมากถ้าได้ทำอะไรตั้งแต่เริ่มต้น

กุญแจสำคัญในการเปิด LED คือวงจรจำกัดกระแส สิ่งนี้ทำงานเป็นวาล์วสำหรับกระแส ดังนั้นเมื่อแรงดันไฟฟ้าที่ใช้กับ LED ทำให้กลายเป็นสื่อกระแสไฟฟ้า กระแสไฟที่ไหลผ่าน LED จะต้องไม่ใหญ่กว่าที่ควบคุมโดยวงจร ไฟ LED ล้มเหลวมักเกิดจากความร้อนสูงเกินไป ไม่มีวงจรจำกัดกระแสไฟเข้าที่เป็นวิธีที่แน่นอนในการเผาไหม้ไฟ LED ในไม่กี่วินาที อย่างไรก็ตาม การติดชิป LED ที่อยู่บนเฟรมอะลูมิเนียมเป็นฮีทซิงค์จะลดชิป LED และแนะนำโดยทั่วไป

ฉันเกาหัวมากเมื่อเรียนรู้สิ่งนี้ในปี 2558 และยังคงเกาหัวอยู่ (ด้วยเหตุผลที่แตกต่างกัน) ฉันเรียนรู้จากบทช่วยสอนนี้และคำอธิบายที่ชัดเจนของเขาช่วยฉันได้บ้าง

วงจรที่แนบมา เส้นหนาหมายถึงเส้นทางโหลดหลัก และเส้นที่บางกว่าระบุกลไกการควบคุมเพื่อควบคุมกระแสไฟของเส้นทางหลักซึ่งอยู่ที่ประมาณ 150 mA Wikipedia มีบทความสั้น ๆ และเอกสารอ้างอิงบางส่วนแนบมาด้วย การจำกัดกระแสสามารถสร้างได้ด้วยทรานซิสเตอร์โดยแทนที่ MOSFET ด้วยทรานซิสเตอร์โหลดกระแสปานกลาง เช่น BD135, BD139

ขั้นตอนที่ 2: สร้างไฟฉาย

ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย
ทำไฟฉาย

ชิ้นส่วนที่จำเป็น:

  1. N-channel MOSFET (IRF540N $1.62/10 ชิ้น, 30N06, $.1.75/10 ชิ้น)
  2. ทรานซิสเตอร์ NPN (เช่น S8085)
  3. ตัวต้านทาน 3.9 โอห์ม – 2W กระแสจำกัดประมาณ 0.6/3.9 = 153mA
  4. ตัวต้านทาน 100kR (1/4W)
  5. สวิตช์กดล็อค
  6. มี LED 0.5W 8 มม. $3.18/100 ชิ้นที่นี่
  7. แบตเตอรี่ลิเธียม 18660 ฉันกู้บางส่วนของพวกเขาจากธนาคารพลังงาน แบตเตอรี่แล็ปท็อป (4, 6, 8 เซลล์) ทำจากเซลล์ 18650 แต่ระวังของเหล่านั้นด้วย
  8. 1 บูสต์สูงถึงบอร์ด 12V แบบนี้ $0.56
  9. ที่ชาร์จลิเธียม 1 เครื่องเช่นนี้ ราคา $0.30

ความแตกต่างที่สำคัญของวงจรด้านบนคือการใช้แบตเตอรี่ลิเธียม (18660) ที่มีบอร์ดบูสต์อัพแทนอะแดปเตอร์แปลงไฟ 5V จำลอง

รูปสุดท้ายแสดงไฟฉายตัวสุดท้ายและกำลังชาร์จจากแหล่ง micro USB (>1A)

ขั้นตอนที่ 3: อินเทอร์เน็ตของสิ่งต่าง ๆ ด้วยไฟฉายนี้?

Internet of Things ด้วยไฟฉายนี้?
Internet of Things ด้วยไฟฉายนี้?
Internet of Things ด้วยไฟฉายนี้?
Internet of Things ด้วยไฟฉายนี้?
Internet of Things ด้วยไฟฉายนี้?
Internet of Things ด้วยไฟฉายนี้?

ฉันแบ่งส่วนนี้เป็นสามขั้นตอน:

  • เตรียมสมัครสมาชิก (อันนี้)
  • ตั้งค่าเซิร์ฟเวอร์ MQTT (ขั้นตอนถัดไป)
  • และเตรียมผู้จัดพิมพ์ (รายต่อไป)

อะไหล่:

อย่างแรก ใช่ ฉันใช้คำศัพท์นั้น หรือที่เรียกว่า IOTs แต่อันนี้สามารถสร้างการผสมผสานที่ดีของการใช้วงจรในขั้นตอนที่ 2 กับ ESP8266 แล้วควบคุมความเข้มของแสงด้วยวิธี MQTT

ชิ้นส่วนสำหรับวงจรเหมือนกัน ยกเว้น:

  1. แทนที่ 12V boost up ด้วย MT3608 boost up board, $1.92/5 ชิ้น ตัวนี้สามารถเพิ่มแรงดันไฟฟ้าของแบตเตอรี่ 18650 (ประมาณ 3.7V) เป็น 28 V เพียงพอสำหรับจ่ายไฟ 8LEDs (แทน 3)
  2. ตำแหน่งยกเลิกการกดในสวิตช์เชื่อมต่อกับ GPIO 1 หรือ 2 ใน ESP8266 สำหรับสัญญาณ PWM
  3. ESP8266 01, $1.68 ต่ออัน ชอบอันนี้
  4. AMS1117 3.3 V, ตัวควบคุมแรงดันไฟฟ้าสำหรับ ESP8266, ตัวเก็บประจุบางตัว
  5. โมดูล USB สำหรับแฟลช ESP8266 ราคา $0.78/ชิ้น แบบนี้

บ. ลิงก์เหล่านั้นมีไว้เพื่อความสะดวก

การบัดกรีและการอัปโหลด:

  • ประสานชิ้นส่วนเข้าด้วยกันและใช้แผนผังด้านบน วงจรแรงดันไฟ 3.3 ที่สร้างไว้ล่วงหน้าบางวงจรอาจช่วยคุณประหยัดเวลา ($ 1.38/5 ชิ้นเช่นนี้) ฉันสับสนที่จะจำพินเมื่อพลิกบอร์ด PCB และจบลงด้วยตัวควบคุมแรงดันไฟฟ้า AMS1117
  • ต่อไป. ทำการปรับเปลี่ยนเล็กน้อยเช่นในรูปภาพที่สามเพื่อกด GPIO 0 ถึง GND ค้างไว้ จากนั้นแตะ RST Pin ด้วยพิน GND อย่างรวดเร็วเพื่อใส่ ESP8266 ลงในโหมดแฟลช
  • ดาวน์โหลดรหัสที่นี่จาก GitHub ของฉัน และอัปโหลดรหัสไปยัง ESP 8266 โดยใช้ Arduino IDE

ฉันเน้นบรรทัดเพื่อแสดงหัวข้อที่สมาชิกสมัครรับข้อมูล ข้อความใด ๆ ที่โพสต์ในหัวข้อนี้จะถูกส่งต่อไปยังไคลเอนต์อื่น ๆ (สมาชิก) ไปยังหัวข้อนี้ EPS8266 ในวงจรนี้จะฟังข้อความ JSON ที่โพสต์ในหัวข้อและกระจายออกไปหากมีการเปลี่ยนแปลงในช่องที่สาม

* กาลครั้งหนึ่ง ฉันคิดว่าฉันสามารถใส่ตัวต้านทานแบบดึงลง (100k) เพื่อกราวด์ประตูของ MOSFET เมื่อไม่ได้นำเสนอ ESP8266 ใช้งานได้ในกรณีที่ไม่มี ESP8266 แต่ด้วย ESP8266 ตัวต้านทานจะดึง GPIO0 หรือ 2 ไปที่ GND ทำให้เป็นโหมดแฟลชหรือไม่บู๊ต (เมื่อ GPIO2 ต่ำ)) คุณจะเห็นสีเขียวทึบหากสิ่งนี้เกิดขึ้น

ขั้นตอนที่ 4: ตั้งค่าเซิร์ฟเวอร์ MQTT

ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT
ตั้งค่าเซิร์ฟเวอร์ MQTT

MQTT (Message Queuing Telemetry Transport) เป็นโปรโตคอลที่ยุ่งเหยิงตามวิธีการเผยแพร่และสมัครรับข้อมูล อุปกรณ์โฮสต์ข้อความ MQTT เข้าและออกเรียกว่าโบรกเกอร์ เช่นเดียวกับโบรกเกอร์จริง ผู้ให้บริการโฮสต์การแลกเปลี่ยนระหว่างผู้เผยแพร่ (ผู้ขาย) และสมาชิก (ผู้ซื้อ) ไม่มีเงินเปลี่ยนมือเหล่านั้น มีบทเรียนมากมายสำหรับเรื่องนี้

นี่คือบทสรุป Raspberry Pi เป็นอุปกรณ์ยอดนิยมสำหรับสิ่งนี้ เริ่มแรก ติดตั้ง MQTT โดย:

sudo apt-get ติดตั้ง mosquitto mosquitto-clients

ทดสอบว่าเซิร์ฟเวอร์ MQTT ทำงานหรือไม่โดยเปิดสองเทอร์มินัลบน Raspberry หนึ่งพิมพ์บรรทัดแรกและอีกอันสำหรับถัดไป:

mosquitto_sub -h localhost -t "yourtopic"

mosquitto_pub -t "yourtopic" -h localost -m "พูดอะไรหน่อย"

คุณควรเห็น "พูดอะไรบางอย่าง" ปรากฏขึ้นที่เทอร์มินัลแรก วาลาห์! มันได้ผล.

"#" สามารถใช้เพื่อฟังหัวข้อใด ๆ แทนที่ "หัวข้อของคุณ" ด้วย "#"

ตอนนี้คุณไม่ต้องการให้ใครสามารถเผยแพร่หรือสมัครสมาชิกเซิร์ฟเวอร์ MQTT ของคุณได้ คุณควรตั้งรหัสผ่านโดย:

ซีดี ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user สามารถเป็นชื่อผู้ใช้อื่นที่คุณต้องการ ป้อนรหัสผ่านสองครั้ง และอัปเดตไฟล์.conf โดย:

sudo nano /etc/mosquitto/mosquitto.conf

เพิ่มสองบรรทัดนี้:

allow_anonymous เท็จ

password_file /home/pi/pwfile

จากนั้นรีสตาร์ทยุงโดย:

sudo systemctl รีสตาร์ท mosquitto

ทำการทดสอบโดยใส่ชื่อพร้อมรหัสผ่านเช่น:

mosquitto_sub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "ปลอดภัยหรือไม่"

นอกจากนี้ หาก MQTT ปฏิเสธการเชื่อมต่อ ให้ลองทำสิ่งนี้เพื่อนำบริการ MQTT เป็นพื้นหลังของระบบ Linux โดย:

ยุง -d

ฉันพบว่าข้อมูลอ้างอิงเหล่านี้ดีที่จะได้ดู วันนี้ฉันเรียนรู้บางอย่างจากสองคนนี้

  1. อดาฟรุต:
  2. Stees-internet-guide.com

ขั้นตอนที่ 5: เตรียมผู้จัดพิมพ์

เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์
เตรียมสำนักพิมพ์

สำหรับสิ่งนี้ ฉันสร้างแดชบอร์ดอย่างง่ายเพื่อส่งข้อความไปยังเซิร์ฟเวอร์ MQTT ในโหมดสแตนด์ LCD จะแสดงนาฬิกา

อะไหล่:

  1. SSD1306 หน้าจอแสดงผล ชิ้นละ 2.41 เหรียญ
  2. EPS8266 WEMOS D1 Mini ชิ้นละ 2.53 เหรียญ
  3. โพเทนชิออมิเตอร์
  4. สวิตช์เลื่อนแบบ 4 พินหนึ่งตัว
  5. ไฟ LED 3 มม. สองดวง,
  6. ตัวต้านทานบางตัว

การบัดกรี:

นี่คือแผนผังของเทอร์มินัลนี้:

อัปโหลดรหัส:

WEMOS ESP8266 ที่มีตราสินค้านั้นน่าใช้งาน คุณต้องการเพียงไมโคร USB กดปุ่มอัปโหลดบน Arduino IDE แฟลชชิป รหัสอยู่ที่นี่ (GitHub):

หากต้องการเผยแพร่ข้อความ ให้กดสวิตช์เพื่อเปิดไฟ LED สีเขียว (และปิดสีแดง) จากนั้นเลื่อนหมุดขึ้นและปรับ จากนั้นกดปุ่มอีกครั้งเพื่อดันข้อความไปยังเซิร์ฟเวอร์ MQTT แดชบอร์ดสามารถเผยแพร่ข้อความ JSON ถึง 4 แชนเนล

ดูไฮไลท์บนโค้ด (ภาพหน้าจอ) นั่นคือหัวข้อที่แดชบอร์ดส่งข้อความไป และไฟ LED ของเรากระตือรือร้นที่จะเห็นสิ่งใหม่ๆ จากข้อความ JSON

ที่เกี่ยวกับมัน ฉันหวังว่าบทช่วยสอนจะเป็นประโยชน์

แนะนำ: