สารบัญ:

ผู้ช่วยส่วนตัว: 9 ขั้นตอน (พร้อมรูปภาพ)
ผู้ช่วยส่วนตัว: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ผู้ช่วยส่วนตัว: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ผู้ช่วยส่วนตัว: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ปิดด่วน! กันเว็บแอบส่อง แอบฟัง แอบรู้ตำแหน่ง บน iPhone และ iPad 2024, กรกฎาคม
Anonim
Image
Image
ผู้ช่วยส่วนตัว
ผู้ช่วยส่วนตัว

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

ฉันตั้งชื่อมันว่าผู้ช่วยส่วนตัว เพราะมันขนาดพกพา คุยกับคุณ และสามารถให้ข้อมูลที่เป็นประโยชน์กับคุณ และ (แน่นอน) ข้อมูลที่ไม่มีประโยชน์ (แต่ยังคงเจ๋ง) เกี่ยวกับสภาพอากาศ เวลาและวันที่ ข้อความ Gmail การเกิดมีชีพและ อัตราการเสียชีวิตและอื่นๆ

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

มันทำงานอย่างไรส่วนประกอบหลักของโครงการนี้คือไมโครคอนโทรลเลอร์และโมดูลเครื่องเล่นเพลง ไมโครคอนโทรลเลอร์ (NodeMCU) ของเราใช้เทคโนโลยี WiFi เพื่อเชื่อมต่อกับจุดเชื่อมต่อด้วยการเชื่อมต่ออินเทอร์เน็ต เพื่อให้สามารถรับข้อมูลที่จำเป็น ประมวลผล และบอกเครื่องเล่นเพลง (DFPlayer Mini) ว่าไฟล์ MP3 ใดควรเล่นเมื่อใด

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

ขั้นตอนที่ 1: อะไหล่ที่จำเป็น

อะไหล่ที่จำเป็น
อะไหล่ที่จำเป็น
  • NodeMCU ESP-12E (อินเทอร์เฟซ USB กับซีเรียล CP2102)
  • DFPlayer มินิ
  • SPST ปุ่มกดชั่วขณะ
  • ลำโพง 8 โอห์ม 2 วัตต์
  • การ์ด Micro SD (คุณจะต้องใช้สองสามกิโลไบต์ ดังนั้นความจุจึงไม่สำคัญ)
  • ถั่วและสลักเกลียว

    • ถั่ว M3 (x6)
    • สลักเกลียว M3 - 23 มม. (x4)
    • สลักเกลียว M3 - 15 มม. (x2)
  • 1N4148 ไดโอดสัญญาณ (x1)
  • ตัวต้านทาน

    • ตัวต้านทาน 1K (x1)
    • ตัวต้านทาน 10K (x2)

ส่วนอื่นๆ:

  • PCB (คุณสามารถสั่งซื้อต้นแบบออนไลน์หรือเยี่ยมชมร้านค้าในพื้นที่)
  • แผ่นอะครีลิคตัดด้วยเลเซอร์

    • แผ่นใสหนา 2 มม.
    • แผ่นความหนา 2.8 มม. สองสีที่แตกต่างกัน (สีส้มและสีเขียว สีแดงและสีเขียว แล้วแต่คุณ และสีไม่สำคัญ)
  • ที่ชาร์จ micro USB ขนาด 1 แอมแปร์ 5 โวลต์ (อย่างน้อย) (สำหรับเปิดเครื่อง)

ขั้นตอนที่ 2: มันทำงานอย่างไร

มันทำงานอย่างไร
มันทำงานอย่างไร
มันทำงานอย่างไร
มันทำงานอย่างไร

ตกลง ฉันต้องการให้ข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของซอฟต์แวร์

ซอฟต์แวร์ประกอบด้วยบริการบางอย่าง แต่ละบริการมีโมดูลของตัวเอง (คุณสามารถพิจารณาบริการเป็นคลาสและโมดูลเป็นวิธีการ) แต่ละโมดูล ถือได้ว่าเป็นวัตถุที่ปฏิบัติการได้ ดังนั้น ซอฟต์แวร์ของเราจึงประกอบด้วยอ็อบเจ็กต์ที่ปฏิบัติการได้

ที่นี่เรามีบริการและบริการย่อยหรือโมดูล:

  • Gmail

    ข้อความที่ยังไม่ได้อ่าน

  • สภาพอากาศ

    • อุณหภูมิปัจจุบัน
    • เงื่อนไขวันนี้
    • วันนี้ต่ำ / สูง
    • สภาพพรุ่งนี้
    • พรุ่งนี้ต่ำ / สูง
    • พยากรณ์ปริมาณน้ำฝน
    • พระอาทิตย์ขึ้น / พระอาทิตย์ตก
  • เวลา

    • เวลาปัจจุบัน
    • วันที่ปัจจุบัน
  • การเกิดและการตาย

    • กำเนิดโลก
    • ความตายของโลก

มีคิวแบบวงกลมที่เก็บโมดูลไว้ เราเรียกมันว่า Operation Queue ฉันบอกว่าแต่ละโมดูลเป็นวัตถุที่ปฏิบัติการได้ ดังนั้น เมื่อคุณกดปุ่มบนอุปกรณ์ มันจะดูที่คิวการทำงาน และดำเนินการโมดูลถัดไป (หรืออ็อบเจ็กต์)

คุณสามารถแก้ไขสมาชิกของคิวดำเนินการได้ในส่วนต่อประสานผู้ใช้บนเว็บที่ฉันจะอธิบายในภายหลัง สำหรับตอนนี้ฉันจะยกตัวอย่างให้คุณ พิจารณาคิวการดำเนินการปัจจุบันดังนี้:

QUEUE (ข้อความที่ยังไม่ได้อ่าน | พยากรณ์ปริมาณน้ำฝน | เวลาปัจจุบัน)

คุณกดปุ่มข้อความที่ยังไม่ได้อ่านควรถูกดำเนินการ

QUEUE (ข้อความที่ยังไม่ได้อ่าน | พยากรณ์ปริมาณน้ำฝน | เวลาปัจจุบัน)

ดังนั้น อุปกรณ์จะใช้ข้อมูลที่รวบรวม (นี่คือจำนวนข้อความที่ยังไม่ได้อ่านซึ่งดึงมาจากฟีด API ของ Google Mail) เพื่อพูดคุยกับคุณ แต่อย่างไร ที่นี่ NodeMCU จะบอกโมดูล MP3 ว่าเมื่อใดควรเล่น MP3 ชิ้นใดเพื่อสร้างประโยคที่มีความหมาย เพื่อให้บรรลุสิ่งนี้ ฉันได้ออกแบบคิว ตัวจับเวลา และอัลกอริธึมที่แตกต่างกัน (ถ้าคุณเป็นผู้ชาย c++ และชอบไมโครคอนโทรลเลอร์ คุณสามารถศึกษาโค้ดด้วยตัวเองได้)

คุณจะได้ยินว่าอุปกรณ์เริ่มพูด: คุณมี 4 ข้อความที่ยังไม่ได้อ่านในกล่องจดหมาย Gmail ของคุณ

คุณกดปุ่มอีกครั้ง โมดูลถัดไปจะเป็น Precipitation Forecast ที่ควรจัดการ

QUEUE (ข้อความที่ยังไม่ได้อ่าน | พยากรณ์ปริมาณน้ำฝน | เวลาปัจจุบัน)

คุณจะได้ยินบางอย่างเช่น: อย่าลืมร่มของคุณ พรุ่งนี้ฝนจะตก และอื่นๆ…อีกสิ่งที่ยอดเยี่ยม: สำหรับบางโมดูล (เช่น การพยากรณ์ปริมาณน้ำฝน) คุณสามารถคาดหวังประโยคสุ่มสำหรับสถานะเดียวกันได้ ตัวอย่างเช่น ถ้าพรุ่งนี้มีฝนและฝนก็ตก ไม่ใช่หิมะ คุณสามารถคาดหวังได้ว่า "พรุ่งนี้อาจมีฝน" "เอาแสงแดดมา พรุ่งนี้ฝนจะตก" "ตุ๊ด ตุ๊ด ดูเหมือนฝนจะตกในวันพรุ่งนี้", หรือ …

เรารับข้อมูลที่แตกต่างกันสำหรับแต่ละบริการได้อย่างไร

  • Gmail

    ข้อความที่ยังไม่ได้อ่านGoogle มี API ที่มีประสิทธิภาพซึ่งคุณสามารถเข้าถึงบริการต่างๆ รวมถึง Gmail แต่เพื่อความปลอดภัย คุณต้องมีวิธีการตรวจสอบสิทธิ์และการอนุญาตที่แตกต่างกัน เช่น OAuth ESP8266 ไม่ได้มีประสิทธิภาพมากในการรันอัลกอริธึมแฮชที่ซับซ้อนต่างกัน ดังนั้นฉันจึงใช้เทคโนโลยีการลงชื่อเข้าใช้ที่เก่ากว่าและเรียบง่ายเพื่อเข้าถึงกล่องจดหมายของ Gmail เป็น Google Atom Feed ที่ RSS Reader สามารถใช้ได้เช่นกัน เราส่งคำขอ HTTP เพื่อเข้าถึงฟีด Gmail และการตอบสนองอยู่ในรูปแบบ XML ดังนั้นเราจึงนับจำนวนข้อความที่ยังไม่ได้อ่านและใช้ในโปรแกรมของเรา

  • Weatherเราใช้ Yahoo Weather API เพื่อรับข้อมูลสภาพอากาศที่แตกต่างกัน เมื่อเร็ว ๆ นี้ เช่นเดียวกับ Google Yahoo ได้เปลี่ยน Weather API ดังนั้น คุณจะต้องใช้มาตรฐาน OAuth เพื่อเข้าถึงข้อมูล น่าเสียดายที่ ESP8266 ไม่สามารถจัดการกับความซับซ้อนได้ ดังนั้นเราจะใช้เคล็ดลับในการแก้ปัญหา แทนที่จะเข้าถึง Yahoo Weather API โดยตรง เราจะส่งคำขอของเราไปยังไฟล์ที่กำหนดเองบนเซิร์ฟเวอร์ ไฟล์ของเรารับข้อมูลจาก Yahoo Weather และส่งข้อมูลมาให้เรา

    • เงื่อนไขในวันพรุ่งนี้ เงื่อนไขในวันพรุ่งนี้จะบอกคุณว่าพรุ่งนี้อุ่นหรือหนาวกว่าวันนี้ หรือมีหากไม่มีการเปลี่ยนแปลงของอุณหภูมิที่สมเหตุสมผล เราเปรียบเทียบ "ต่ำวันนี้ / สูง" กับ "พรุ่งนี้ต่ำ / สูง" เพื่อให้ได้สิ่งนี้ คุณสามารถตรวจสอบว่าฉันเขียนอัลกอริทึมนี้อย่างไรและทำงานอย่างไรในไฟล์ไลบรารีโปรแกรม
    • พยากรณ์ปริมาณน้ำฝนหากคุณตรวจสอบเอกสาร Yahoo Weather คุณจะเห็นตารางรหัสเงื่อนไข ตามที่กล่าวไว้ รหัสเงื่อนไขจะใช้ในการตอบกลับเพื่ออธิบายเงื่อนไขปัจจุบัน เราจะใช้รหัสเงื่อนไขในวันพรุ่งนี้และความหมายเพื่อดูว่าจะมีฝนตกหรือไม่ และจะเป็นฝนหรือหิมะ
  • TimeNTP ย่อมาจาก Network Time Protocol เป็นโปรโตคอลเครือข่ายสำหรับการซิงโครไนซ์นาฬิการะหว่างระบบคอมพิวเตอร์ เนื่องจากเรามีการเข้าถึงอินเทอร์เน็ต เราจะใช้ไคลเอ็นต์ NTP เพื่อรับเวลาจากเซิร์ฟเวอร์ NTP และซิงค์ผ่านตัวจับเวลาภายในของ ESP8266 (เช่นเดียวกับที่คุณใช้กับมิลลิวินาที () หากคุณเป็นผู้ชาย Arduino)
  • การเกิดและการตายเราจะคำนวณจำนวนการเกิดและการตายตั้งแต่ต้นวัน (ขอบคุณไคลเอ็นต์ NTP ทำให้ได้จำนวนวินาทีตั้งแต่เริ่มต้นวันอย่างง่ายดาย) ฉันใช้อัตราการเกิดและตายของโลกจากนิเวศวิทยา

ขั้นตอนที่ 3: ตั้งค่าซอฟต์แวร์

ตั้งค่าซอฟต์แวร์
ตั้งค่าซอฟต์แวร์

เราจะใช้ Arduino IDE เพื่ออัปโหลดโปรแกรมของเราไปยัง NodeMCU คุณสามารถดาวน์โหลดและติดตั้ง Arduino IDE ล่าสุดได้จากเว็บไซต์อย่างเป็นทางการ:

ก่อนเริ่มต้น คุณต้องตั้งค่า Arduino IDE สำหรับ Nodemcu ฉันจะไม่บอกคุณขั้นตอนที่นี่ เพราะมันอาจจะนอกประเด็น แต่คุณสามารถทำตามขั้นตอนและคำอธิบายของคำแนะนำที่ยอดเยี่ยมนี้ได้

โปรแกรมของเรามีการขึ้นต่อกันของห้องสมุด การพึ่งพาซอฟต์แวร์คืออะไร?

การพึ่งพาอาศัยกันเป็นคำศัพท์ทางวิศวกรรมซอฟต์แวร์แบบกว้าง ๆ ที่ใช้ในการอ้างอิงเมื่อซอฟต์แวร์ชิ้นหนึ่งอาศัยซอฟต์แวร์อื่น

นี่คือรายการไลบรารี Arduino ที่คุณต้องมีบนคอมพิวเตอร์ของคุณเพื่อให้สามารถคอมไพล์โปรแกรม Personal Assistant ได้:

  • ArduinoJson
  • DFRobotDFPlayerMini
  • NTPClient

คุณสามารถดาวน์โหลดได้ทีละรายการจากหน้า Github จากนั้นแตกไฟล์ zip ไปยังไดเร็กทอรีไลบรารี Arduino เส้นทางของระบบของคุณคือ:C:\Users [ชื่อผู้ใช้ของคุณ] Documents\Arduino

ฉันเขียนห้องสมุดเพื่อให้โค้ดสะอาดและหลีกเลี่ยงความซับซ้อน ดาวน์โหลดไฟล์ PersonalAssistant-Library.zip และแตกไฟล์ไปยังไดเร็กทอรีไลบรารี Arduino เช่นเดียวกับที่คุณทำกับห้องสมุดสามแห่งก่อนหน้านี้

ไฟล์ YahooWeather.php

เนื่องจาก ESP8266 ไม่มีพลังเพียงพอที่จะดำเนินการอัลกอริทึมแฮช เราจึงไม่สามารถใช้เพื่อส่งคำขอ HTTP ไปยัง Yahoo Weather API โดยตรงได้ โดยอิงตามมาตรฐาน OAuth ดังนั้น เราจะใช้ไฟล์ระหว่างอุปกรณ์ของเรากับ Yahoo Weather API คุณสามารถดาวน์โหลดไฟล์ YahooWeather.zip แตกไฟล์ และวางไฟล์ YahooWeather.php ลงในเว็บเซิร์ฟเวอร์ ตัวอย่างเช่น หากโดเมนของคุณคือ example.com และคุณใส่ไฟล์ในไดเรกทอรี api ปลายทาง api ของคุณจะกลายเป็น example.com/api/YahooWeather.php คุณจะส่งคำขอข้อมูลสภาพอากาศไปยังปลายทางนี้

โปรแกรม Sketch และ FFS (ระบบไฟล์ Flash)

บอร์ด NodeMCU ของคุณมีระบบไฟล์แฟลชขนาด 4 MB สำหรับจัดเก็บข้อมูล เมื่อเรามีแล้วทำไมไม่ใช้มันล่ะ?

จำได้ไหมว่าฉันพูดว่าอุปกรณ์ของเรามีส่วนต่อประสานผู้ใช้สองส่วน? นอกเหนือจากปุ่มกดที่เปล่าเปลี่ยวนั้น อินเทอร์เฟซผู้ใช้ที่สองของเรายังเป็นแอปพลิเคชันบนเว็บที่เรียบง่าย ด้วยแอปพลิเคชันนี้ คุณสามารถจัดการคิวการทำงานโดยเปิด/ปิดแต่ละโมดูล เปลี่ยนการตั้งค่าบริการหรือการกำหนดค่าอุปกรณ์ เช่น การตั้งค่า WiFi SSID และรหัสผ่าน เราจะจัดเก็บไฟล์ทั้งหมดเหล่านี้ไว้ใน NodeMCU Flash File System และเรียกใช้เว็บเซิร์ฟเวอร์ขนาดเล็กเพื่อจัดการคำขอของผู้ใช้จากเว็บเบราว์เซอร์ของพวกเขา

การแก้ไขไฟล์กำหนดค่า

ดาวน์โหลดไฟล์ PersonalAssistant-Sketch.zip และแตกไฟล์ไว้ที่ใดที่หนึ่งในคอมพิวเตอร์ของคุณ เปิดไฟล์ config.json ซึ่งอยู่:

PersonalAssistant/data/config.json

คุณสามารถใช้ตัวแก้ไขข้อความหรือโค้ดใดก็ได้ เช่น notepad, notepad++, Atom เป็นต้น ไฟล์นี้เป็นโครงสร้างข้อมูล json ดังนั้นจึงเป็นคู่คีย์/ค่าที่มนุษย์อ่านได้ และคุณสามารถแก้ไขได้โดยง่าย คุณสามารถเปลี่ยนฟิลด์เหล่านี้:

  • Gmail

    • ชื่อผู้ใช้: ชื่อผู้ใช้ Gmail ของคุณด้วย @gmail.com
    • รหัสผ่าน: รหัสผ่าน Gmail ของคุณ
  • สภาพอากาศ

    • woeid: สถานที่ที่คุณต้องการรับข้อมูลสภาพอากาศ WOEID (Where On Earth IDentifier) คือตัวระบุอ้างอิงที่ Yahoo ใช้สำหรับระบุตำแหน่ง คุณสามารถค้นหาตำแหน่ง WOEID ได้ในลิงค์นี้
    • api: มันคือจุดปลาย API ลิงค์ไปยังไฟล์ yahooweather.php ของคุณ
    • appId, ConsumerKey และ ConsumerSecret: ในการเข้าถึง Yahoo Weather API คุณต้องสร้างโครงการในหน้านักพัฒนาของ Yahoo สิ่งนี้จะให้รหัสผู้บริโภคและข้อมูลลับซึ่งจำเป็นสำหรับการใช้ API ในการเริ่มต้น ไปที่หน้า Yahoo Weather Developer และสร้างแอป
  • เขตเวลา

    เขตเวลา: ป้อนเขตเวลาตามตำแหน่งของคุณ อาจเป็นจำนวนลอยบวกหรือลบ และหน่วยของมันคือชั่วโมง

  • WiFi

    • ssid: SSID ของเครือข่ายของคุณ
    • รหัสผ่าน: รหัสผ่านเครือข่ายของคุณ NodeMCU จะใช้ ssid และรหัสผ่านเพื่อเชื่อมต่อกับเครือข่าย wifi ของคุณ

การอัพโหลดข้อมูล Program Sketch และ FFS

เชื่อมต่อ NodeMCU กับคอมพิวเตอร์ของคุณ โดยใช้สาย micro-USB กับ USB

ตอนนี้เปิดไฟล์ PersonalAssistant.ino ซึ่งอยู่:

PersonalAssistant/PersonalAssistant.ino

ใน Arduino IDE จากเครื่องมือ > บอร์ด ให้เลือก NodeMCU 1.0 (โมดูล ESP-12E) จากเครื่องมือ > พอร์ต ให้เลือกพอร์ตที่ถูกต้อง มันแสดงถึง NodeMCU ของคุณ

ตอนนี้ เลือกเครื่องมือ > ESP8266 Sketch Data Upload ซึ่งจะอัปโหลดเนื้อหาของโฟลเดอร์ข้อมูลไปยัง ESP8266 รอสักครู่จนกว่าจะเสร็จสิ้น จากนั้นเลือก Sketch> อัปโหลด หรือเพียงแค่กดปุ่ม Ctrl + U บนแป้นพิมพ์เพื่อเริ่มการอัปโหลดโปรแกรม รอจนกว่าคุณจะเห็นข้อความ "อัปโหลดเสร็จสิ้น"

ขั้นตอนที่ 4: ตั้งค่า Micro SD Card

เราใช้การ์ด micro SD เพื่อจัดเก็บไฟล์ MP3 NodeMCU เป็นผู้ตัดสินใจว่าควรเล่นไฟล์ใดในเวลาใด และ DFPlayer Mini ช่วยเขาสร้างประโยคที่มีความหมายโดยการถอดรหัสไฟล์ MP3

ฉันใช้ Amazon Polly เพื่อสร้างชิ้นส่วนเสียงที่ฉันต้องการ

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

อย่าลืมว่าอุปกรณ์ของเราไม่ได้ใช้ Amazon Polly API เพื่อพูดแบบไดนามิก เรามีส่วนเสียงออฟไลน์แบบคงที่ และเมื่อนำมารวมกัน เราจึงสร้างประโยคที่แตกต่างกัน

ฉันใช้ไซต์นี้เพื่อสร้างไฟล์ MP3 เอาต์พุตเสียงที่ฉันเลือกคือภาษาอังกฤษแบบสหรัฐอเมริกา / ซัลลี

สิ่งเดียวที่คุณต้องทำคือดาวน์โหลดไฟล์ microSD.zip จากนั้นแตกไฟล์ลงในการ์ด micro SD ประกอบด้วยไฟล์ MP3 ที่จำเป็นทั้งหมด 78 ไฟล์

อาจเป็นเพราะการ์ด Micro SD ของคุณมาพร้อมกับอะแดปเตอร์ คุณสามารถใส่การ์ด Micro SD ลงในอะแดปเตอร์และต่อเข้ากับแล็ปท็อปของคุณ หากคอมพิวเตอร์ของคุณไม่รองรับการอ่านการ์ด คุณควรใช้เครื่องอ่านการ์ดภายนอก

ขั้นตอนที่ 5: การออกแบบแผนผังและการตั้งค่า PCB

การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB
การออกแบบแผนผังและการตั้งค่า PCB

ฉันได้ออกแบบ Schematic และ Board โดยใช้ Autodesk EAGLE ฉันได้รวมทั้งไฟล์ SCH และ BRD ไว้ใน PersonalAssistant-PCB.zip คุณสามารถแก้ไขและ/หรือส่งไปยังผู้ผลิต PCB ในพื้นที่หรือออนไลน์เพื่อสั่งซื้อและรับบอร์ดของคุณได้อย่างง่ายดาย

อีกอย่างที่ต้องพูดถึงคือ ESP8266 ทำงานใน 3.3v ในขณะที่ DFPlayer Mini ทำงานใน 5v เนื่องจากทั้งสองโมดูลจำเป็นต้องพูดคุยกันผ่านอินเทอร์เฟซแบบอนุกรม เราจึงไม่สามารถเชื่อมต่อเอาต์พุต 5v กับอินพุต 3.3v ได้โดยตรง เนื่องจากจะทำให้ ESP8266 ของคุณเสียหาย ดังนั้นเราจะต้องแปลงระดับจาก 5v เป็น 3.3v เราใช้ไดโอดสัญญาณและตัวต้านทาน 10K เพื่อให้เกิดขึ้น

ขั้นตอนที่ 6: ประสานมันขึ้น

ประสานมันขึ้น
ประสานมันขึ้น
ประสานมันขึ้น
ประสานมันขึ้น

การประกอบบอร์ดนั้นค่อนข้างง่าย เนื่องจากคุณมีส่วนประกอบไม่กี่อย่าง ทำตามแผนผังและการออกแบบบอร์ดในขั้นตอนที่ 5 เพื่อวางแต่ละรายการในตำแหน่งที่ถูกต้อง

ฉันเริ่มต้นด้วยการบัดกรีตัวต้านทานและไดโอด เนื่องจากพวกมันมีขนาดเล็ก คุณสามารถตัดหางที่ไม่จำเป็นได้อย่างง่ายดายโดยใช้เครื่องตัดลวด จากบนลงล่าง คุณควรใส่ตัวต้านทาน 1K, 10K และ 10K

คุณไม่จำเป็นต้องบัดกรีหมุด NodeMCU และ DFPlayer Mini ทั้งหมดบน PCB การบัดกรีหมุดด้วยเส้นทางก็เพียงพอแล้ว

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

ขั้นตอนที่ 7: สิ่งที่แนบมา

สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา
สิ่งที่แนบมา

ฉันตัดสินใจออกแบบตู้แฟนซีด้วยวิธีที่สร้างสรรค์ ฉันกังวลเกี่ยวกับรูปร่างแปลก ๆ ของมันในระหว่างการออกแบบ แต่ในตอนท้าย มันก็ไม่ได้แย่ขนาดนั้น อย่างน้อยก็ดูเหมือนแกรนด์เปียโนและรู้สึกดีมากเมื่อถืออยู่ในมือ!

แทนที่จะเป็นรูปทรงลูกบาศก์หกเหลี่ยมแบบคลาสสิกที่มี 6 หน้า ฉันออกแบบกล่องหุ้มแบบหลายชั้น จากล่างขึ้นบน แต่ละชั้นวางลงบนชั้นล่าง (ฉันตั้งชื่อมันว่า L0 ถึง L6 จากล่างขึ้นบน)

สีและความหนา

คุณสามารถใช้สีเสริมสองสีเพื่อสร้างคอนทราสต์ที่เข้มที่สุดได้ เช่น:

  • สีแดงและสีเขียว
  • สีฟ้าและสีส้ม
  • สีเหลืองและสีม่วง
  • สีฟ้าและสีเหลือง

ฉันใช้อะครีลิคใสสำหรับชั้นบนสุด เพื่อให้คุณมองเห็นภายในเครื่องได้

ความหนาของชั้นบนสุด (layer-6) ควรเป็น 2 มม. ความหนาของชั้นอื่น ๆ (layer-0 ถึง layer-5) ควรเป็น 4 มม. ถ้าคุณต้องการใช้อะครีลิคชิลด์ 2.8 มม. เหมือนที่ฉันทำ ไม่มีปัญหา แต่คุณต้องตัดสองชุดจากเลเยอร์-1 และเลเยอร์-3 เพื่อชดเชย

ในการประกอบกล่องหุ้ม ให้เริ่มจากชั้นล่าง (L0) ใส่บอร์ดลงไป ใช้น็อตที่สั้นกว่า แล้วขันให้แน่นโดยใช้น็อต ตอนนี้คุณสามารถติดโบลต์ที่ยาวกว่าสี่ตัวจากด้านล่างของเลเยอร์-0 สิ่งที่เหมือนหอคอย จากนั้นคุณสามารถต่อเชื่อมเลเยอร์อื่น ๆ บนเลเยอร์เหล่านั้นได้อย่างง่ายดาย

หมายเหตุ: คุณสามารถใช้แหวนรองเสริมระหว่างชั้นล่างกับกระดานได้

ฉันได้เพิ่มข้อความข้อมูลสำหรับพอร์ตอุปกรณ์ (พลังงานและการ์ด micro SD) คุณสามารถใช้การแกะสลักด้วยเลเซอร์บนชั้นบนสุด

ฉันได้รวมทั้งรูปแบบไฟล์ CDR และ DXF แล้ว คุณสามารถดาวน์โหลด แก้ไข และใช้สำหรับการตัดด้วยเลเซอร์ได้

ขั้นตอนที่ 8: การเข้าถึงส่วนต่อประสานผู้ใช้บนเว็บ

การเข้าถึงส่วนต่อประสานผู้ใช้บนเว็บ
การเข้าถึงส่วนต่อประสานผู้ใช้บนเว็บ

เพิ่มพลังให้อุปกรณ์

คุณสามารถเปิดเครื่องโดยใช้เครื่องชาร์จ micro USB 5v ต่อไมโคร USB เข้ากับพอร์ตจ่ายไฟของอุปกรณ์ ซึ่งเป็นอินพุตไมโคร USB บน NodeMCU ของคุณ

เข้าถึงส่วนต่อประสานผู้ใช้

คุณจำได้ไหมว่าเราได้อัปโหลดไฟล์บางไฟล์ไปยัง ESP8266 Flash File System? ถึงเวลาที่จะใช้มัน สิ่งที่คุณต้องมีคือที่อยู่ IP ที่กำหนดให้กับ ESP8266 บนเครือข่าย มีหลายวิธีในการค้นหาที่อยู่ IP ฉันจะแสดงรายการบางส่วนที่นี่:

  • ในหน้าการกำหนดค่าเราเตอร์ของคุณ ที่ใดที่หนึ่งใน DHCP Lease List คุณสามารถดูรายการอุปกรณ์ที่มีที่อยู่ IP ของพวกเขาในเครือข่ายของคุณ
  • ใน Microsoft Windows และ macOS คุณสามารถเรียกใช้คำสั่งเช่น arp -a ในเทอร์มินัล
  • ใน Android และ iOS คุณสามารถใช้แอปพลิเคชันเช่น Fing (แอนดรอยด์/ไอโอเอส)
  • ใน Linux คุณสามารถใช้เครื่องมือต่างๆ เช่น Nmap

หลังจากค้นหาที่อยู่ IP แล้ว ให้เปิดโดยใช้เว็บเบราว์เซอร์ของคุณ คุณสามารถจัดการคิวการทำงานโดยเปิด / ปิดโมดูล

ขั้นตอนที่ 9: ความคิดสุดท้าย

โครงการนี้ใช้เวลาและพลังงานมาก คุณสามารถเพิ่มตัวเลือกอื่นๆ ให้กับผู้ช่วยส่วนตัวได้อีกมากมาย ฉันได้ทิ้งบางส่วนไว้สำหรับการพัฒนาในอนาคต บางส่วนเช่น:

  1. เพิ่มบริการและโมดูลเพิ่มเติม เช่น การนับเลข การทอยลูกเต๋า หรือการพลิกเหรียญ
  2. หลังจากเชื่อมต่อกับเครือข่ายแล้ว อุปกรณ์สามารถพูดที่อยู่ IP ได้ คุณสามารถเพิ่มตัวเลือกนี้เพื่อทำให้กระบวนการค้นหาที่อยู่ IP ง่ายขึ้น
  3. การเพิ่มความสามารถในการเปลี่ยนการตั้งค่า WiFi ในแผงควบคุมบนเว็บ
  4. การเพิ่มความสามารถในการเปลี่ยนการตั้งค่าบริการในแผงควบคุมบนเว็บ (แบบฟอร์ม html ของพวกเขาพร้อมแล้ว คุณต้องจัดการคำขอ)
  5. เพิ่มการตอบสนองด้วยเสียงในสถานะต่างๆ ของอุปกรณ์
  6. การเพิ่มหน้าเข้าสู่ระบบสำหรับแผงควบคุมบนเว็บ คุณสามารถทำได้โดยเพิ่ม / เปรียบเทียบคุกกี้ในบรรทัดส่วนหัว

และฉันชอบที่จะทราบความคิดของคุณเกี่ยวกับคำแนะนำนี้:)

แนะนำ: