สารบัญ:

TicTac Super Wifi Analyser, ESP-12, ESP8266: 5 ขั้นตอน (พร้อมรูปภาพ)
TicTac Super Wifi Analyser, ESP-12, ESP8266: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TicTac Super Wifi Analyser, ESP-12, ESP8266: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TicTac Super Wifi Analyser, ESP-12, ESP8266: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Супер анализатор WiFi в коробке TicTac 2024, กรกฎาคม
Anonim
เครื่องวิเคราะห์ TicTac Super Wifi, ESP-12, ESP8266
เครื่องวิเคราะห์ TicTac Super Wifi, ESP-12, ESP8266
เครื่องวิเคราะห์ TicTac Super Wifi, ESP-12, ESP8266
เครื่องวิเคราะห์ TicTac Super Wifi, ESP-12, ESP8266

โปรเจ็กต์นี้สร้างขึ้นจากรหัส moononournation ดั้งเดิมและแนวคิดของการใช้กล่อง TicTac เป็นสิ่งที่แนบมา

อย่างไรก็ตาม แทนที่จะใช้ปุ่มเพื่อเริ่มการอ่าน จะใช้แผงสัมผัสที่มาพร้อมกับจอแสดงผล TFT SPI โค้ดนี้ได้รับการแก้ไขเพื่อให้ควบคุมไฟแบ็คไลท์ LED ได้ดีขึ้นและเพื่อให้จอแสดงผลเข้าสู่โหมดสลีป (เนื่องจากโมดูลการแสดงผลจะต้องใช้พลังงานสำหรับชิปสัมผัส) หน่วยปัจจุบันในการนอนหลับต่ำเพียงพอสำหรับ lipo 1000mah นานหลายปี นอกจากนี้ยังมีการชาร์จแบตเตอรี่และการป้องกันแรงดันไฟต่ำ

ดูขั้นตอนสุดท้ายสำหรับวิดีโอที่ใช้งานได้

อะไหล่:

  • กล่องทิกแทค 48 กรัม
  • ESP12 (ควรเป็น ESP-12F)
  • จอแสดงผล SPI TFT 2.4”
  • โมดูลชาร์จ Lipo
  • ทรานซิสเตอร์ PNP
  • กระแสไฟนิ่งต่ำ 3.3v, ตัวควบคุมแรงดันไฟฟ้า
  • ตัวต้านทานและตัวเก็บประจุที่เกี่ยวข้อง (รายละเอียดในภายหลัง)

ขั้นตอนที่ 1: การพัฒนา

การพัฒนา
การพัฒนา

ฉันคิดว่าฉันจะร่างเส้นทางการพัฒนาสำหรับโครงการนี้ คุณสามารถข้ามส่วนนี้หากต้องการทำสิ่งนี้โดยตรง

นี่เป็นหนึ่งในโครงการ ESP8266 แรกของฉัน ฉันได้รับแนวคิดที่ดีในการใช้กล่อง TicTac เป็นกล่องหุ้มสำหรับตัววิเคราะห์ Wifi และตัดสินใจสร้างมันขึ้นมา ขอขอบคุณ: Portable-WiFi-Analyzer. ฉันตัดสินใจใช้จอแสดงผล 2.4 นิ้วที่ใหญ่ขึ้น ซึ่งมาพร้อมกับแผงสัมผัสและบน PCB ที่มีหมุดซึ่งง่ายต่อการเชื่อมต่อ

เมื่อฉันเริ่มสร้าง ฉันได้สำรวจการจัดเตรียมที่จะให้เสาอากาศ ESP12 ปลอดจากอุปกรณ์อิเล็กทรอนิกส์ ทางเลือกเดียวคือต้องอยู่ภายในหมวก ฉันยังต้องการโมดูลเครื่องชาร์จใต้เครื่องจ่าย คำถามคือจะค้นหา 'ปุ่มเปิด' ได้ที่ไหน? ฉันไม่ต้องการทำรูที่ด้านหลังของเคส ฝาปิดด้านบนจะดีที่สุด - แต่ไม่มีที่ว่างถ้าฉันมีสองโมดูลที่นั่น

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

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

ด้วยแนวคิดที่ชัดเจนนี้ ฉันจึงต่อสายโดยใช้ NodeMcu – และมันก็ไม่ได้ผล! จึงมีงานต้องทำอีกเล็กน้อย ฉันยังตระหนักด้วยว่าฉันไม่สามารถตรวจสอบกระแสไฟสลีปด้วย NodeMcu ได้เนื่องจากชิป USB ออนบอร์ดและตัวควบคุมแรงดันไฟฟ้ากระแสไฟที่นิ่งสูง ฉันยังต้องการระบบสำหรับตั้งโปรแกรม ESP12 อย่างง่ายดาย สิ่งนี้นำไปสู่การสร้างบอร์ด/ระบบการพัฒนา ESP12 ที่สามารถตั้งโปรแกรมได้อย่างง่ายดายเหมือนกับ NodeMCU แต่ใช้โปรแกรมเมอร์ FTDI วิธีนี้จะทำให้ตัวควบคุมและชิป USB แยกออกจากกัน ดู: ESP-12E และ ESP-12F การเขียนโปรแกรมและคณะกรรมการฝ่าวงล้อม

จากนั้นฉันก็ต่อสายโดยใช้บอร์ดใหม่ที่มี ESP-12F และใช้งานได้ การเปลี่ยนแปลงเพียงอย่างเดียวที่ฉันทำคือต้องทำให้ตัวควบคุมแรงดันไฟฟ้าลัดวงจรบนโมดูลการแสดงผล ดังนั้นทั้งหมดจึงถูกขับเคลื่อนที่ 3.3v ฉันเริ่มทำโค้ด mods โดยเฉพาะโค้ดเพื่อวางชิปแสดงผล (ILI9341) เข้าสู่โหมดสลีป เนื่องจากสิ่งนี้และชิปแผงสัมผัสจะต้องได้รับพลังงาน (ในโหมดสลีป) เมื่อโมดูล ESP อยู่ในโหมดสลีปด้วย ฉันตรวจสอบกระแสการนอนหลับแล้ว นี่คือ 90uA ดังนั้นแบตเตอรี่ขนาด 1,000 มิลลิแอมป์จึงใช้งานได้หนึ่งปี การเริ่มต้นที่ดี.

จากนั้นฉันก็ถอดตัวควบคุมแรงดันไฟฟ้าบนโมดูลแสดงผล แค่ยกหมุดกราวด์ก็เพียงพอแล้ว ตอนนี้ระบบสลีปปัจจุบันคือ 32uA ฉันยังต้องเพิ่มตัวควบคุม 3.3v แต่รู้จักอันที่มีกระแสไฟนิ่งเพียง 2uA ตอนนี้เรากำลังดูอายุแบตเตอรี่ 3 ปี!

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

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

คุณอาจสงสัยว่าจะวัด uA ได้อย่างไร ตายง่าย! ใส่ตัวต้านทาน 1k แบบอนุกรมพร้อมขั้วไฟฟ้าบวก ย่อสิ่งนี้ด้วยสายจัมเปอร์เพื่อให้ระบบสามารถทำงานได้ จากนั้น เมื่ออยู่ในโหมดสลีป ให้ถอดสายจัมเปอร์ออกและวัดแรงดันตกคร่อมตัวต้านทาน ด้วยตัวต้านทาน 1k 100mv หมายถึง 100uA หากแรงดันไฟฟ้าตกมากเกินไป ฉันจะใช้ค่าความต้านทานที่ต่ำกว่า ฉันได้ใช้วิธีนี้ในการวัดค่า nA ตัวเลขเดียวโดยใช้ตัวต้านทาน 1 ม. บนระบบอื่นที่มีกระแสไฟสลีปต่ำมาก

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

ภาพ
ภาพ
ภาพ
ภาพ

PCB หรือลวดแข็ง?

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

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

ส่วนรายการ:

  • กล่องทิกแทค 49 กรัม
  • ESP-12F (หรือ ESP-12E) โปรดทราบว่า ESP-12F มีช่วงที่ดีกว่า มิฉะนั้นจะเหมือนกับ ESP-12E
  • จอแสดงผล SPI TFT 2.4” พร้อมไดรเวอร์ ILI9341 และการสัมผัส เช่น TJCTW24024-SPI
  • โมดูลเครื่องชาร์จ – ดูรูปถ่าย
  • พินสตริป 2 มม. (เป็นทางเลือก แต่น่าใช้)
  • ทรานซิสเตอร์ PNP ในรูปแบบ SOT23 ฉันใช้ BCW30 แต่ตัวอื่นที่มีความสามารถมากกว่า 100ma และ DC gain>200 ก็ใช้ได้
  • ตัวควบคุม 3v3 250ma (นาที) ในรูปแบบ SOT23 ฉันใช้ไมโครชิป MCP1703T-33002E/CB คนอื่นจะทำงาน แต่ตรวจสอบกระแสที่นิ่งของพวกเขา (แนะนำน้อยกว่า 30uA)
  • ตัวต้านทาน (ขนาด 0805 ทั้งหมด)
  • 10k 4off
  • 3k3 1 ปิด
  • ตัวเก็บประจุ (ขนาด 0805 ทั้งหมด)
  • 2n2 2 ปิด
  • 0.1u 1 ปิด
  • PCB เป็นไฟล์ WiFiAnalyserArtwork.docx ที่แนบมา
  • แบตเตอรี่ LiPo เซลล์เดียว ความจุ 400-1000mah - ใส่ได้พอดี 400mahr ก็เพียงพอแล้ว

สำหรับตัวเลือกที่ไม่ใช่ PCB ให้ใช้สารตะกั่วที่เทียบเท่า ตัวต้านทาน ¼W และสูงกว่านั้นใช้ได้ และตัวเก็บประจุที่มีแรงดันไฟทำงาน 5v หรือมากกว่า

เมื่อทำ PCB - เจาะรูที่ 0.8 มม. หากคุณมีสายตาที่เฉียบแหลม - รูพินสตริป ESP12 2 มม. สามารถเป็น 0.7 มม. เพื่อการรองรับที่ดีขึ้น

ตำแหน่งส่วนประกอบ:

ภาพ
ภาพ

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

ขั้นตอนที่ 3: การเดินสายไฟ

ก่อนเดินสายจอแสดงผลไปยังแผงวงจร ให้ถอดตัวควบคุม i1 ออกและใส่จุดบัดกรีบน J1 เพื่อแทนที่สิ่งนี้ หลังจากนั้นควรมีลักษณะดังนี้:

ภาพ
ภาพ

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

ตอนนี้การเดินสายสามารถเริ่มต้นได้ โดยเริ่มจากการต่อสายแพกับจอแสดงผล ตัดสายแพ PC ยาวประมาณ 7-8 ซม. แล้วเลือก 10 วิธี ตัด 9 ทางด้านหลัง 10 มม. โดยปล่อยให้ยาวอีกด้านหนึ่งที่ขอบด้านหนึ่งสำหรับพิน T-IRQ ส่วนที่เหลือสามารถขยายออกไปยังตำแหน่งที่จะบัดกรีและตัดแต่งเพิ่มเติมอีกเล็กน้อยตามความจำเป็น

ฉันวางและบัดกรีตะกั่วทีละตัวโดยเริ่มจาก VCC

ภาพ
ภาพ

วาง PCB ในตำแหน่งที่ต้องการสัมพันธ์กับจอแสดงผล จากนั้นให้ตัดสายไฟให้ยาวกว่าที่กำหนด 5 มม. ทีละเส้น และดึงฉนวน 2 มม. ดีบุกที่ปลายและประสานเข้าที่ การเดินสายไฟเป็นดังนี้ (นับหมายเลขพินจาก VCC):

แสดง PCB ความคิดเห็น
1 1 VCC
2 8 GND
3 9 CS
4 5 รีเซ็ต
5 7 กระแสตรง
6 2 เอสดีไอ (MOSI)
7 4 SCK
8 10 นำ
9 3 เอสดีโอ (มิโซะ)
10 6 T_IRQ
ภาพ
ภาพ

ตอนนี้เหลือเพียงเชื่อมต่อแบตเตอรี่และตั้งโปรแกรม ESP12 หากตั้งโปรแกรมในแหล่งกำเนิดให้เชื่อมต่อแบตเตอรี่ทันที หากโปรแกรมปิดบอร์ดให้ต่อแบตเตอรี่หลังจากนั้น

ขั้นตอนที่ 4: การเขียนโปรแกรม

ดาวน์โหลดรหัส ESP8266WiFiAnalMod.ino ไฟล์ที่แนบมา สร้างโฟลเดอร์ชื่อ 'ESP8266WiFiAnalMod' ในโฟลเดอร์สเก็ตช์ Arduino ของคุณและย้ายไฟล์ไปที่นี้

เริ่ม Arduino IDE (ดาวน์โหลดและติดตั้งจาก Arduino.cc หากจำเป็น) และเพิ่มรายละเอียดของบอร์ด ESP หากคุณไม่มี (ดู: Sparkfun)

โหลดโค้ด (ไฟล์>Sketchbook>… ESP8266WiFiAnalMod)

จากนั้นกำหนดรายละเอียดการเขียนโปรแกรม (Tools):

เลือกบอร์ด: โมดูล ESP8266 ทั่วไป

ดูการตั้งค่าที่เหลือด้านล่าง เลือกวิธีการรีเซ็ต: “nodemcu” หากใช้โปรแกรมเมอร์กับไดรฟ์อัตโนมัติของการรีเซ็ตและ GPIO0 หรือตั้งค่าเป็น "ck" หากตั้งโปรแกรมในแหล่งกำเนิดหรือโดยการเชื่อมต่อโดยตรงกับตัวแปลง USB เป็นซีเรียล

หมายเลขพอร์ตมีแนวโน้มที่จะแตกต่างกัน

ภาพ
ภาพ

หากคุณต้องการตั้งโปรแกรมในแหล่งกำเนิด คุณจะต้องบัดกรีสายไฟเข้ากับสวิตช์เพื่อดึง GPIO 0 ให้ต่ำและเชื่อมต่อกับ Tx และ Rx - ดูด้านล่าง:

ตัวเลือกที่ง่ายกว่าคือการใช้บอร์ดเขียนโปรแกรม:ESP-12E และ ESP-12F Programming and Breakout Board

หากการเขียนโปรแกรม in-situ เชื่อมต่อตามด้านล่าง โปรดทราบว่าหากเชื่อมต่อจอแสดงผล รีเซ็ตสามารถเปิดใช้งานได้ด้วยหน้าจอสัมผัส ไม่เช่นนั้น จำเป็นต้องเปลี่ยนจากรีเซ็ตเป็น GND จำเป็นต้องใช้พลังงานกับบอร์ด ดีที่สุดโดยการใช้ 3.7v กับพิน OUT+ และ OUT หากใช้แบตเตอรี่ ต้องรีเซ็ตอุปกรณ์ชาร์จโดยเสียบสาย USB เป็นเวลาสั้นๆ

ภาพ
ภาพ

หากตั้งค่าโหมดการตั้งโปรแกรมด้วยตนเองดึงรีเซ็ตต่ำ (หน้าจอสัมผัส) ให้ดึง GPIO 0 ต่ำและในขณะที่ปล่อยการรีเซ็ตต่ำ ตอนนี้คลิกปุ่มดาวน์โหลด การเขียนโปรแกรมควรดำเนินการต่อ

หากใช้บอร์ดโปรแกรมและบอร์ดฝ่าวงล้อม เพียงแค่แนบตัวแปลงอนุกรม FTDI USB จ่ายไฟ 3.3v ไปที่บอร์ดเขียนโปรแกรมแล้วคลิกดาวน์โหลด

ขั้นตอนที่ 5: การประกอบและการทดสอบขั้นสุดท้าย

ตอนนี้เป็นเวลาที่ดีสำหรับการทดสอบเบื้องต้น หาก ESP12 ถูกตั้งโปรแกรมไว้ในแหล่งกำเนิด ก็ควรจะใช้งานได้ เพียงแค่แตะหน้าจอเบาๆ มันก็จะเริ่มทำงาน หากตั้งโปรแกรมจากตัวเครื่อง - ใส่ ESP12 และต่อสายแบตเตอรี่และควรใช้งานได้

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

จอแสดงผลจะประกบกันอย่างเรียบร้อยระหว่างฝาปิดและด้านล่างของเคส ส่วนที่ยกขึ้นในฐานยึดหน้าจอไว้ด้านข้างกล่องอย่างสวยงาม

ต้องยึดแผงวงจรเข้ากับบอร์ดแสดงผลเพื่อให้พอดีกับฝาปิดและนำเสนอช่องเสียบชาร์จ USB เมื่อเห็นความสัมพันธ์ที่ต้องการระหว่างตำแหน่งของบอร์ดแล้ว ให้ติดเทปกาวสองหน้า (ชนิดหนา 1 มม.) เข้ากับบอร์ดทั้งสอง ซึ่งจะทำให้ระยะห่าง 2 มม. ซึ่งควรหลีกเลี่ยงการสัมผัสทางไฟฟ้า ฉันวางเทปฉนวนหุ้มอุปกรณ์อิเล็กทรอนิกส์ของจอแสดงผลไว้เป็นข้อควรระวัง:

ภาพ
ภาพ

ต่อไปเราต้องเอาฝาด้านบนออกประมาณ 2 มม. ฉันทำให้สิ่งนี้กระชับพอดีกับหน้าจอโดยตัดบิตเพิ่มเติมสำหรับสายริบบิ้นของหน้าจอสัมผัสและตัวยึดพลาสติกหน้าจอ ดูด้านล่าง:

ภาพ
ภาพ
ภาพ
ภาพ

สุดท้ายเราต้องวางแบตเตอรี่และใช้สิ่งนี้เพื่อถือจอแสดงผลไว้ด้านข้างกล่อง ฉันใช้โฟมโพลีสไตรีนชิ้นเก่าแล้วตัดและขัดให้ได้ความหนาตามต้องการ ฉันติดสิ่งนี้กับจอแสดงผล PCB โดยใช้เทปสองหน้าบาง ๆ และใช้เทปขนาดเล็กสองสามชิ้นเพื่อหยุดแบตเตอรี่เลื่อนไปมา

ภาพ
ภาพ

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

และตอนนี้คุณมีอุปกรณ์ที่มีประโยชน์ซึ่งแสดงพลังของระบบ ESP8266 และในกรณีของฉันทำให้ฉันเปลี่ยนช่องสัญญาณ WiFi เนื่องจากตรวจพบอีก 5 รายการในช่องเดียวกัน!

ฉันหวังว่าคุณจะสนุกกับโครงการที่น่ารักนี้

ไมค์

แนะนำ: