สารบัญ:

ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wifi (สัญญาณไฟเหนือ) ด้วย NodeMcu: 6 ขั้นตอน
ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wifi (สัญญาณไฟเหนือ) ด้วย NodeMcu: 6 ขั้นตอน

วีดีโอ: ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wifi (สัญญาณไฟเหนือ) ด้วย NodeMcu: 6 ขั้นตอน

วีดีโอ: ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wifi (สัญญาณไฟเหนือ) ด้วย NodeMcu: 6 ขั้นตอน
วีดีโอ: NodeMCU/ESP8266 on NETPIE Lab6 เชื่อมต่อ NodeMCU กับเครือข่าย WiFi 2024, ธันวาคม
Anonim
ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wi-Fi (สัญญาณไฟเหนือ) ด้วย NodeMcu
ดึงและแสดงข้อมูลจากเว็บไซต์ใดๆ ผ่าน Wi-Fi (สัญญาณไฟเหนือ) ด้วย NodeMcu

แรงจูงใจของฉัน: ฉันได้เห็นคำแนะนำมากมายเกี่ยวกับการตั้งค่า/การใช้ NodeMCU (สร้างจากโมดูล ESP8266) เพื่อสร้างโครงการ IoT (อินเทอร์เน็ตของสิ่งต่างๆ) อย่างไรก็ตาม บทช่วยสอนเหล่านี้น้อยมากที่มีรายละเอียด/ รหัส/ ไดอะแกรมทั้งหมดสำหรับมือใหม่ที่ต้องติดตามตั้งแต่ต้นจนจบ และไม่มีใครทำตามที่ฉันต้องการได้อย่างแน่นอน

สิ่งนี้จะครอบคลุมอะไร: สิ่งนี้จะครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้ (และที่ฉันไม่รู้) รวมถึง:

  1. วัสดุ (สิ่งที่ฉันใช้โดยเฉพาะ)
  2. Arduino, NodeMcu, ESP8266 ต่างกันอย่างไร?
  3. เริ่มต้นใช้งาน NodeMcu

    1. การตั้งค่าซอฟต์แวร์ (Arduino IDE)
    2. ทำให้ไฟ LED กะพริบ
    3. ตัวเลือกสำหรับการเปิดเครื่อง NodeMcu
    4. การเชื่อมต่ออินเทอร์เน็ต
  4. วิธีดึงข้อมูลจากเว็บไซต์

    1. "ชี้" ไปยังข้อมูลที่คุณต้องการในเว็บไซต์
    2. Thingspeak/ ThingHTTP/ APIs (ไม่ต้องกลัว ไม่ต้องเขียนโค้ด)
    3. การเข้าถึงข้อมูลนี้จาก NodeMCU
  5. กำลังแสดงข้อมูล

    1. สิ่งที่ฉันใช้ (วิธีการต่อสายจอแสดงผล 7 ส่วน)
    2. ความคิด / สิ่งที่ฉันจะทำโดยมีเวลามากขึ้น
  6. วิธีสร้างกล่องฉันเดา

การปฏิเสธความรับผิด: ฉันดูวิดีโอมากมายเพื่อเรียนรู้วิธีทำ และโค้ดเกือบทั้งหมดถูกรวมเข้าด้วยกันจากแหล่งอื่น และฉันจำไม่ได้ทั้งหมด แหล่งที่มาหลักของแรงบันดาลใจของ thinghttp คือผู้ชายคนนี้ที่ทำสิ่งเดียวกับที่ฉันอธิบาย แต่ฉันพบว่าการกลั่นกรองสิ่งที่เป็นหน้าจอสัมผัสและสิ่งที่ไม่ทำให้เกิดความสับสน ฉันคิดว่าคำแนะนำนี้สามารถแนะนำเพิ่มเติมเกี่ยวกับ NodeMcu และโครงการ IoT แบบ sorta แทนที่จะเป็นวัตถุเฉพาะ แต่แรงบันดาลใจสำหรับตัวบ่งชี้เฉพาะ (แสงเหนือ) นี้คือคำแนะนำนี้ตั้งแต่ปี 2008 ฉันชอบวิธีที่อธิบายว่า "แย่" ลูกโลกมนุษย์" แสดงข้อมูลแวดล้อม เช่น หุ้น มุมมอง youtube หรือสภาพอากาศโดยไม่ต้องใช้โทรศัพท์หรือวิธีการล่วงล้ำอื่นๆ

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ
วัสดุ
วัสดุ

คุณจะต้องการเหล่านี้:

1. บอร์ด NodeMcu

2. สายเคเบิล micro USB สำหรับอัปโหลดรหัสไปยังบอร์ด และเปิดเครื่องผลิตภัณฑ์ขั้นสุดท้ายหากคุณต้องการ

3. ไฟ LED, สายจัมเปอร์ (ชาย-ชาย, ชาย-หญิง) และเขียงหั่นขนมสำหรับเชื่อมต่อสิ่งต่าง ๆ … นี่เป็นสิ่งที่กำหนด แต่สิ่งที่คุณต้องการ "แสดงผล" (แสดงหรือขึ้นอยู่กับข้อมูล) จะต้องใช้ฮาร์ดแวร์ หากคุณต้องการสร้างบรรยากาศรอบๆ ขึ้นมาใหม่ หรือทำในสิ่งที่ฉันทำจริงๆ การแสดง 7 ส่วนหรือไฟ LED บางดวงก็บอบบางเพียงพอ บอร์ดทดลองเป็นสิ่งจำเป็นสำหรับ "การสร้างต้นแบบ" ก่อนที่คุณจะเชื่อมต่อสิ่งที่ 4 จริง และฉันจะอธิบายว่ามันทำงานอย่างไร/ สิ่งต่าง ๆ เชื่อมต่อกันอย่างไรในส่วนที่เกี่ยวข้อง หากคุณเพิ่งเริ่มต้น ให้ซื้อชุดเริ่มต้น Arduino เพราะมันมีสิ่งเล็กๆ น้อยๆ มากมายในนั้น (รวมถึงทุกสิ่งที่ฉันใช้) รวมทั้ง Arduino uno สำหรับโครงการอื่น

สิ่งที่คุณอาจต้องการ:

4. โมดูลจ่ายไฟแบบเขียงหั่นขนม (ถ้าคุณต้องการจ่ายไฟให้กับ NodeMcu ด้วยอะแดปเตอร์ไฟมาตรฐาน… ฉันจะไม่ทำเช่นนี้เพราะคุณสามารถจ่ายไฟด้วย micro USB ซึ่งสะดวกกว่ามาก หากคุณต้องการทำโครงการของคุณ ไร้สายโดยสมบูรณ์ แน่นอนว่าคุณต้องมีแบตเตอรี่ แต่ฉันจะพูดถึงในส่วนพลังงาน

5. ไม้สน 1/4 สำหรับกล่อง lil' (ถ้าคุณต้องการ)

6. แผ่นไม้อัดบางส่วนเพื่อปิดกล่องของคุณและ/หรือทำหน้าที่เป็นตัวกระจายสัญญาณสำหรับ LED หรือจอแสดงผลของคุณ

7. Super (CA) และ/หรือกาวติดไม้ 5. และ 6

ขั้นตอนที่ 2: โหนด MCU คืออะไร

โหนด MCU คืออะไร?
โหนด MCU คืออะไร?
โหนด MCU คืออะไร?
โหนด MCU คืออะไร?

หากคุณเป็นมือใหม่จริงๆ กับอุปกรณ์อิเล็กทรอนิกส์อย่างฉัน คุณอาจสงสัยว่าบอร์ด Arduino และบอร์ด NodeMcu ต่างกันอย่างไร และบางทีคุณอาจเคยได้ยินเกี่ยวกับ ESP8266 ด้วย… อะไรคือความแตกต่างระหว่างสิ่งเหล่านี้?!?

นี่ไม่ใช่เทคนิค แต่นี่คือสิ่งที่คุณต้องรู้

Arduino มีความสามารถในการอ่านอินพุตจากชุดพิน "ทำสิ่งต่างๆ" โดยใช้อินพุตเหล่านี้ แล้วส่งออกไปยังชุดพิน โดยพื้นฐานแล้วเป็นคอมพิวเตอร์ขนาดเล็ก Arduino สร้างบอร์ดต่างๆ มากมาย และ "เกราะ" จำนวนมากที่เสียบเข้ากับบอร์ดเพื่อทำสิ่งอื่นเพิ่มเติม ผลิตภัณฑ์ที่พวกเขาขายในปัจจุบันซึ่งเชื่อมต่ออินเทอร์เน็ตมีราคาแพงมากและไม่มีชุมชนติดตามมากนัก รหัสถูกเขียนและอัปโหลดไปยังบอร์ดจากซอฟต์แวร์ "Arduino IDE" ซึ่งรองรับ C และ C++ พร้อมการจัดรูปแบบพิเศษอื่นๆ คุณไม่จำเป็นต้องรู้วิธีตั้งโปรแกรม C หรือ C++ ให้กับโปรแกรม เนื่องจากมีโค้ดดังกล่าว โค้ดที่มีอยู่มากมายมหาศาลที่มีอยู่ทางออนไลน์ แต่ความคุ้นเคยกับการเขียนโปรแกรมบางอย่าง (โดยเฉพาะสิ่งต่างๆ เช่น while และ for loops การประกาศตัวแปรและขอบเขต ฯลฯ) จะช่วยให้เข้าใจได้รวดเร็วขึ้น Arduino IDE ยังมีตำแหน่งเดียวสำหรับดาวน์โหลดไลบรารีที่จำเป็นสำหรับบอร์ดต่างๆ (เพิ่มเติมในภายหลังในการตั้งค่า NodeMcu)

ESP8266 เป็นโมดูล WiFi ราคาถูกมากซึ่งโดยทั่วไปแล้วทำให้ Arduino Shields ที่เปิดใช้งานอินเทอร์เน็ตล้าสมัย (แม้ว่าคุณจะยังคงเห็นบอร์ด Arduino ที่มี wifi ในตัว) ชุมชน DIY รอบๆ ESP8266 นั้นใหญ่มากจนเกือบจะเป็นทางเลือกเดียวที่สมเหตุสมผลสำหรับการสร้างอุปกรณ์ที่เปิดใช้งานอินเทอร์เน็ต มักใช้ร่วมกับบอร์ด Arduino ผ่านพินอนุกรม (Rx และ Tx) แม้ว่าฉันจะเดาว่าบางคนใช้พวกมัน "แบบสแตนด์อโลน" แต่เนื่องจากไมโครชิปมีขนาดเล็กและเชื่อมต่อได้ยาก (โดยทั่วไปมี 6 พิน: 2 สำหรับซีเรียล (พูดคุยกับสิ่งต่าง ๆ), 2 สำหรับพลังงาน (กราวด์และ VCC) และ 2 GPIO (เอาต์พุตอินพุตเอนกประสงค์) บวกกับทำงานบน 3.3V และ 5V จะทำลายมัน) ซึ่งถูกแทนที่อย่างรวดเร็วโดย…

NodeMcu ซึ่งเป็นบอร์ดพัฒนาโอเพ่นซอร์สเช่นเดียวกับ Arduino ยกเว้นด้วยการสร้างบน ESP8266 คุณสามารถเห็น ESP8266 ที่สร้างขึ้นในบอร์ด NodeMcu ที่วงกลมอยู่ในรูปภาพที่ฉันแนบ บอร์ดนี้เป็นมิตรกับโปรแกรมและอินเทอร์เฟซอย่างสมบูรณ์แบบ และโดยทั่วไปแล้วจะเทียบได้กับ Arduino nano มีพินอีกมากมาย และสามารถตั้งโปรแกรมผ่าน USB ได้โดยตรงจากคอมพิวเตอร์ของคุณ โดยไม่ต้องผ่านบอร์ดอื่น นอกจากนี้ แม้ว่าบอร์ดจะยังใช้งานได้ในทางเทคนิคบนลอจิก 3.3V มากกว่าลอจิก 5V แต่ก็มีชิปในตัวเพื่อจัดการแรงดันไฟฟ้านี้ จึงสามารถจ่ายไฟได้เหมือนกับ Arduino ไม่ว่าจะโดย USB หรือโดยพิน VCC (แรงดันไฟเข้า). โดยพื้นฐานแล้ว สำหรับ IoT ใดๆ ก็ตาม NodeMcu เป็นบอร์ดเดี่ยวที่ดีและใช้งานง่าย และเปิดใช้งาน WiFi ได้… แม้ว่าจะเป็นตัวเลือกที่ดีสำหรับโปรเจ็กต์ที่ไม่ใช่ wifi เช่นกัน ในทางเทคนิค ภาษา "นอกกรอบ" ของ NodeMcu คือ LUA แต่หลังจากการตั้งค่า 1 ครั้งภายใน Arduino IDE คุณจะสามารถตั้งโปรแกรมได้เหมือนกับที่คุณทำกับ Arduino อื่นๆ

ขั้นตอนที่ 3: เริ่มต้นใช้งาน NodeMcu

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

1. การตั้งค่าซอฟต์แวร์ (Arduino IDE)

  • ดาวน์โหลด Arduino IDE จากลิงค์ด้านบน และเลือก "เพียงดาวน์โหลด" หากคุณไม่สามารถบริจาคได้
  • เปิดซอฟต์แวร์ Arduino IDE
  • ภายใต้ File -> Preferences, Additional Boards Manager URLs ให้วางลิงก์ต่อไปนี้ "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json"
  • ภายใต้เครื่องมือ -> บอร์ด -> ตัวจัดการบอร์ด (ที่ด้านบน) ให้เลื่อนลงไปด้านล่างหรือค้นหา ESP8266 แล้วคลิกติดตั้ง
  • คุณอาจต้องรีสตาร์ท Arduino IDE เพื่อให้สิ่งนี้ปรากฏขึ้น แต่ตอนนี้คลิก Tools->Board และเลือกบอร์ดที่คุณได้รับเช่นโมดูล NodeMcu 1.0 ESP12-E
  • คุณอาจไม่จำเป็นต้องทำขั้นตอนนี้ แต่เชื่อมต่อ usb เข้ากับคอมพิวเตอร์ของคุณจาก NodeMcu (ไฟจะกะพริบ) แล้วไปที่ Control Panel->Device Manager -> Ports -> จากนั้นจดบันทึกพอร์ต COM ที่มีป้ายกำกับ "Silicone Labs …" นี่คือพอร์ต COM ที่ NodeMcu กำลังใช้
  • กลับไปที่ Arduino IDE และไปที่ Tools-> Port: และตรวจสอบให้แน่ใจว่าได้เลือกพอร์ตนี้แล้ว
  • ทุกอย่างควรจะดี แต่ให้แน่ใจว่าภายใต้เครื่องมือ ขนาดแฟลชคือ 4 (อย่ากังวลกับ SPIFFS อะไรก็ตามที่เลือกไว้ก็ดี) และความเร็วในการอัปโหลดคือ 115200 ฉันเดาว่า… NodeMcu ใช้อัตราบอดของจริง ๆ แล้ว 9600 เพื่อถ่ายทอดข้อมูลกลับไปยังมอนิเตอร์แบบอนุกรม (หากคุณไม่รู้ว่าสิ่งนี้หมายความว่าอย่างไร ไม่ต้องกังวล มันจะแสดงขึ้นในตัวอย่าง) แต่ถ้าในโค้ดแล้วในมอนิเตอร์ คุณได้ 9600, ดี.

2. ทำให้ไฟ LED กะพริบ

นี่เป็นเหมือน "Hello World" (เช่น baby $h1t) ของการเขียนโปรแกรม แต่มันช่วยให้คุณรู้ว่าทุกอย่างดีกับบอร์ด และจะช่วยให้คุณคุ้นเคยกับ Arduino IDE สิ่งนี้ไม่ได้แสดงให้เห็นถึงความสามารถ WiFi ของบอร์ด (เราทำในตัวอย่างถัดไป) เพียงตรวจสอบให้แน่ใจว่าเชื่อมต่อแล้วและสามารถทำงานได้ ฯลฯ

  • เปิด arduino IDE แล้วเสียบ NodeMcu ของคุณ
  • ก่อนดำเนินการใดๆ โปรดสังเกตว่ามีเฟรมเวิร์กสำหรับโค้ดพื้นฐานที่สุดที่คุณสามารถเขียนไปยัง Arduino ของคุณได้ โดยมีลูป setup() ที่ทำงานเพียงครั้งเดียว และอีกลูป () จะทำงานอย่างต่อเนื่องตลอดไป โค้ดสุดท้ายของเราจะจัดโครงสร้างแบบนี้ โดยมีการเพิ่มบางสิ่งด้านบน และฟังก์ชันที่กำหนดไว้ที่ด้านล่าง
  • ไฟล์->ตัวอย่าง-> (ภายใต้ส่วน NodeMcu 1.0) ESP8266 ->Blink
  • นี่จะเป็นการเปิดรหัสบางส่วนในหน้าต่าง รู้สึกอิสระที่จะบันทึกไว้ที่ไหนสักแห่ง
  • ในโค้ดนี้ ลูป setup() มีคำจำกัดความของ LED ในตัวบนบอร์ดเป็นเอาต์พุต และลูปจะส่งเอาต์พุตสูงและต่ำไปยัง LED นี้ โปรดทราบว่าสำหรับ LED ที่ติดมากับบอร์ด (เท่านั้น! นี่ไม่ใช่กรณีทั่วไป) เอาต์พุต "ต่ำ" (0 โวลต์) จะทำให้ไฟเปิดขึ้น เนื่องจากเป็นค่าเริ่มต้น และ "สูง" (3.3V ใน กรณีนี้ฉันเดา) ปิด
  • หากทุกอย่างได้รับการตั้งค่าอย่างถูกต้องตามที่ระบุไว้ข้างต้น คุณควรจะสามารถคลิก "ยืนยัน" (เครื่องหมายถูกในวงกลมที่มุมบนซ้ายมือ) เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด (อันนี้จะไม่มีตั้งแต่คุณไม่ได้) ไม่ได้เขียน แต่ความประสงค์ของคุณ!) และเมื่อทุกอย่างดีแล้ว "อัปโหลด" ที่อยู่ข้างๆ
  • เมื่อคุณคลิกอัปโหลด คุณจะเห็นสิ่งที่กำลังอ่านอยู่ในพื้นที่สีดำที่ด้านล่าง และจุด/ % กรอกข้อมูลครบถ้วน
  • ไม่ต้องกังวลว่ามันจะใช้หน่วยความจำถึง 33% … ซึ่งโดยพื้นฐานแล้วเป็นจำนวน "คงที่" ซึ่งใช้โดยโค้ดที่ง่ายที่สุด สิ่งที่ฉันเขียนใช้พื้นที่เพียง 1% เท่านั้น
  • คุณจะเห็นไฟ LED บนกระดานเริ่มกะพริบ (ซึ่งอาจทำมาบ้างแล้ว) ดังนั้นอย่าลังเลที่จะเปลี่ยนจำนวนหนึ่งในพันของวินาที (มิลลิวินาที) ในส่วนการหน่วงเวลาของสคริปต์ หากนี่เป็นครั้งแรกที่คุณเคยตั้งโปรแกรม การดูไฟ LED กะพริบที่ความถี่ที่ต่างกันเล็กน้อยอาจเป็นเรื่องที่น่าตื่นเต้นจริงๆ

3. ตัวเลือกสำหรับการเปิดเครื่อง NodeMcu

ฉันไม่แน่ใจว่าทำไมฉันถึงไม่เข้าใจสิ่งนี้ในตอนแรก แต่รหัสที่คุณอัปโหลดไปยังบอร์ดจะอยู่ที่นั่น และจะทำงานตลอดไปและตลอดไป ตราบใดที่/ ตราบใดที่มีการจ่ายพลังงานให้กับมัน ตัวอย่างเช่น หลังจากทำตามขั้นตอนที่ 2 เสร็จแล้ว หากคุณต้องถอดปลั๊กออกจากคอมพิวเตอร์ แล้วเปิดเครื่องที่อื่น เครื่องจะเริ่มกะพริบอีกครั้ง วิธีที่ง่ายที่สุดในการจ่ายไฟให้กับ NodeMcu คือเพียงแค่เสียบไมโคร USB เข้ากับมัน จากนั้นเสียบเข้ากับแท่นชาร์จแบบเดียวกับที่คุณใช้กับมือถือของคุณในผนัง (บล็อก 5V 1A หรืออะไรก็ได้) อย่าลังเลที่จะดูคำแนะนำอื่น ๆ ของฉันสำหรับข้อมูลเกี่ยวกับวิธีการจ่ายไฟให้กับสิ่งต่าง ๆ ขั้วของแจ็ค DC ฯลฯ แต่ส่วนสำคัญคือคุณสามารถใช้แอมแปร์ใดก็ได้ที่คุณต้องการตราบใดที่มันเพียงพอที่จะจ่ายไฟให้กับทุกสิ่ง (1A มากกว่า มากเกินพอสำหรับบอร์ดนี้และไฟ LED ที่คุณใช้ เป็นต้น) แต่แรงดันไฟฟ้าต้องอยู่ในช่วงที่แคบมากเพื่อให้ทุกอย่างทำงานได้อย่างถูกต้อง บน NodeMcu คุณสามารถใช้แหล่งจ่ายไฟที่มีแรงดันไฟฟ้าตั้งแต่ 3.3V ถึง 20V ได้อย่างปลอดภัย เนื่องจากมีตัวควบคุมบนบอร์ดที่จะลดแรงดันไฟลง (นี่เป็นคุณสมบัติที่ดี) ด้วยค่าแอมแปร์ การข้ามผ่านก็โอเคเนื่องจากบอร์ดจะวาดสิ่งที่ต้องการ แต่ด้วยแรงดันไฟฟ้า โดยทั่วไปแล้วจะปลอดภัยกว่าถ้าใช้แรงดันไฟฟ้าที่ใกล้เคียงที่สุด โดยไม่ต้องผ่านค่า # ที่ต้องการ ดังนั้นจึงต้องทำงานน้อยลง/ สิ้นเปลืองพลังงาน การลดแรงดันไฟลง หากคุณต้องการใช้แบตเตอรีหรือต้องการใช้แจ็คไฟ DC (บางทีคุณสามารถมีสายยาวได้) พินที่จะใช้คือพินกราวด์ VIN ที่อยู่ติดกัน

4. การเชื่อมต่อกับอินเทอร์เน็ต

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

เปิดไฟล์รหัส Arduino ชื่อ "Wifi_connect" แล้วเปลี่ยน SSID และรหัสผ่านเป็นของคุณเอง จากนั้นไป

  • โปรดสังเกตว่าเหนือลูปมี #include ซึ่งกำลังบอกให้ Arduino รวมไลบรารีที่เต็มไปด้วยสิ่ง WiFi สำหรับ ESP8266 โดยพื้นฐานแล้วมันเป็นกลุ่มของยูทิลิตี้และสิ่งต่าง ๆ ที่รวมเข้าด้วยกัน และให้คุณทำบางสิ่งที่ค่อนข้างง่าย โดยใช้สิ่งที่เขียนไว้ล่วงหน้าที่มีอยู่ในไลบรารี ตัวอย่างเช่น หากคุณซื้อโล่หรือเพิ่มบอร์ด อาจมีไลบรารีที่เกี่ยวข้องเพื่อให้คุณสามารถเชื่อมต่อกับมันได้ง่ายขึ้น
  • เครื่องมือ->การตรวจสอบแบบอนุกรม
  • ตรวจสอบให้แน่ใจว่าจอภาพอนุกรมถูกตั้งค่าให้อ่านที่ 9600 หากความเร็วไม่ถูกต้อง จอภาพอนุกรมจะคายปัญหาที่อ่านไม่ออก จึงเป็นสัญญาณที่ดีว่าจอภาพอนุกรมของคุณไม่ได้อยู่ที่อัตราเดียวกับที่กำหนดไว้ในอนุกรม ในรหัส
  • คลิกตรวจสอบและเรียกใช้ และดูจอภาพอนุกรมเมื่อเสร็จสิ้น… มันจะบอกรายละเอียดมากมายเกี่ยวกับการเชื่อมต่อหากใช้งานได้ และแสดงให้เห็นว่า ESP8266 ใน NodeMcu สามารถเชื่อมต่อกับ WiFi ของคุณได้! มันไม่ได้ทำอะไรเลย แต่ถ้าคุณไปและเสียบบอร์ดนี้เข้ากับผนังที่ไหนสักแห่ง คุณสามารถรอ 30 วินาทีและค่อนข้างมั่นใจว่ามันสร้างการเชื่อมต่อกับอินเทอร์เน็ตซึ่งน่าจะน่าตื่นเต้นเช่นกัน
  • ในการทดสอบตัวเอง ให้ลองรวมรหัส "bllink" และรหัส "wifi_connect" เข้าด้วยกันเพื่อให้ไฟ LED ในตัวเปิดขึ้น หรือกะพริบเมื่อเชื่อมต่อกับอินเทอร์เน็ตแล้ว นี่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้!

หากคุณทำสิ่งที่กล่าวมาทั้งหมดแล้ว ยินดีด้วย! คุณได้แสดงให้เห็นว่าคุณสามารถอัปโหลดรหัสไปยัง NodeMCU และ NodeMcu สามารถเชื่อมต่อกับ WiFi ของคุณได้ เราจะใช้วิธีการเชื่อมต่อกับ WiFi ที่แตกต่างกันเล็กน้อย โดยใช้ไลบรารี MultiWifi แทนที่จะเป็นไลบรารี Wifi แบบเก่า เนื่องจากช่วยให้คุณสามารถเพิ่มรายการ WiFi ได้อย่างง่ายดายและพยายามเชื่อมต่อกับสิ่งที่ทำได้

ขั้นตอนที่ 4: วิธีดึงข้อมูลจากเว็บไซต์

วิธีดึงข้อมูลจากเว็บไซต์
วิธีดึงข้อมูลจากเว็บไซต์

ข้อมูลในเว็บไซต์ถูกจัดเก็บในลักษณะที่น่ากลัวมาก การกรองสิ่งนี้ลงในสิ่งที่คุณต้องการหรือ "การแยกวิเคราะห์" เพราะมันน่ากลัวพอๆ กัน และการพยายามทำสิ่งนี้โดยปราศจากความรู้ที่สำคัญเกี่ยวกับ HTML อาจเป็นเรื่องที่น่ากลัว… ดังนั้นเป้าหมายคือการดึงข้อมูลที่คุณต้องการจากที่ที่น่ากลัวไปไว้ใน สถานที่ที่บริสุทธิ์และมีความสุขมาก การทำงานหมายถึงการเปลี่ยนจาก URL ที่แสดงทั้งเว็บไซต์ ไปยัง URL ที่แสดงข้อมูลเพียงชิ้นเดียวที่คุณต้องการ

1. "ชี้" ไปที่ข้อมูลที่คุณต้องการในเว็บไซต์

ไปที่เว็บไซต์ที่คุณสนใจ เช่น ที่นี่

www.timeanddate.com/worldclock/canada/edmonton

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

นั่นคือสิ่งที่ข้อมูลอาศัยอยู่ บางครั้งก็มี ID ที่อ้างอิงโดยบางครั้งมันก็เขียนไว้ตรงๆ แล้วเราจะแยกข้อมูลนี้ได้อย่างไร

2. Thingspeak/ ThingHTTP/ APIs (ไม่ต้องกลัว ไม่ต้องเขียนโค้ด)

ฉันจะไม่พูดถึงด้วยซ้ำว่า API คืออะไรและคุณสร้างมันขึ้นมาได้อย่างไร แต่คุณสามารถจินตนาการได้ว่าเป็นการเชื่อมต่อหรือการส่งข้อมูลที่แท้จริงระหว่างคุณ (คำขอของคุณ) และสิ่งที่คุณร้องขออยู่ที่ไหน การเปรียบเทียบแบบคลาสสิกคือพนักงานเสิร์ฟในร้านอาหาร ในการดำเนินการนี้โดยไม่ต้องเขียนโค้ด คุณจะใช้บริการฟรีที่เรียกว่า "ThingSpeak" และแอปพลิเคชัน "ThingHTTP" โดยเฉพาะ เพียงสร้างบัญชีแล้วไปที่แอพและไปที่ด้านล่าง, thinghttp และสร้างมันขึ้นมา

สิ่งเดียวที่คุณต้องทำคือคัดลอกและวาง URL ของเว็บไซต์ เช่น เว็บไซต์วันที่และเวลาด้านบน จากนั้นเลื่อนลงมาที่ช่องสุดท้าย "Parse String" นี่คือเส้นทางไปยังข้อมูลที่คุณต้องการ

ฉันเดาว่าเส้นทางนี้สามารถกำหนดได้สองสามวิธี แต่วิธีที่ง่ายที่สุดและวิธีเดียวที่ฉันรู้คือการคลิกขวาที่ข้อมูลนั้นตามที่อธิบายไว้ข้างต้น ตรวจสอบมัน จากนั้นคลิกขวาที่บรรทัดที่เน้นที่ตรงกับข้อมูลนั้นใน โปรแกรมดู HTML และไปที่เส้นทาง Copy-> x ดังแสดงในภาพที่แนบมา

เมื่อคุณทำเสร็จแล้ว ให้ลองไปที่ URL ที่สร้างขึ้นสำหรับคุณ และดูว่ามีข้อมูลที่คุณต้องการในทางใดทางหนึ่งที่อย่างน้อยสามารถใช้งานได้ ตัวอย่างเช่น ของฉันบอกว่าอุณหภูมิเป็น "XX F" แทนที่จะเป็นจำนวนองศาเซลเซียส แต่หน่วยและ F ที่ส่วนท้ายสามารถเปลี่ยนได้อย่างง่ายดายภายในโค้ด เป็นเรื่องปกติอย่างยิ่งที่จะได้รับข้อผิดพลาดที่ไม่สามารถแยกวิเคราะห์ได้ หากเป็นกรณีนี้ ให้ลองลบส่วนหัวบางส่วนภายใน xpath ดูว่าคุณสามารถหาข้อมูลที่อื่นได้หรือไม่ หรือปรึกษาฟอรัมที่อาจระบุส่วนที่ "เสียหาย" ของสตริงการแยกวิเคราะห์ของคุณได้ วิธีนี้ใช้ไม่ได้กับเว็บไซต์ที่ไม่ได้โหลดข้อมูลที่ต้องการลงในเว็บไซต์ แต่ (ตัวเอง) ดึงจากแหล่งภายนอกบางแห่งซึ่งต้องใช้เวลาโหลดเล็กน้อย อย่างไรก็ตาม วิธีนี้น่าจะใช้ได้ผลดีกับสิ่งต่างๆ เช่นเนื้อหา YouTube สภาพอากาศ ฯลฯ

3. การเข้าถึงข้อมูลนี้จาก NodeMCU

ฉันพิมพ์ไปมากแล้ว ดังนั้นโปรดดูโค้ดที่แนบมาซึ่งมีความคิดเห็นมากมาย และขณะนี้ได้รับการตั้งค่าให้อ่านในโอกาสที่แสงเหนือสำหรับ Edmonton AB, Canada (เท่านั้น!) การปรับแต่งครั้งแรกที่คุณต้องทำคือเพียงแค่เปลี่ยน URL (อันที่จริงเฉพาะส่วนคีย์ API 16 หลักของ URL) เป็นไฟล์ของคุณเองhttp

สิ่งที่สองที่คุณต้องปรับแต่งคือในลูป () โดยที่ "value" จริงถูกนำเข้าและจัดเก็บเป็นตัวแปร "yourvalue" ซึ่งเป็นสตริง (ข้อความ) สามารถใช้ได้ในทุกรูปแบบที่คุณต้องการจากที่นั่น ฉันลบสัญลักษณ์เปอร์เซ็นต์ออก แยกตัวเลข 2 หลักของ % เป็น 2 ตัวแปร (เช่น 14% เป็น 1, 4) และให้แต่ละส่วนเก็บเป็นจำนวนเต็ม แต่ด้วยการค้นหาหรือความคิดเห็นอย่างรวดเร็วของ Google ที่นี่ คุณน่าจะทำได้ เพื่อแยกตัวเลขที่คุณต้องการจากสตริงที่สร้างของ thinghttp คุณต้องใช้ตัวเลขเพื่อทำสิ่งต่างๆ เช่น ตัดสินใจว่าตัวเลขนั้นใหญ่หรือเล็ก หรือหารลงตัวพอที่จะเปิดหรือปิดหรือแสดงผล โค้ดที่เหลือจากจุดนั้น รวมทั้งฟังก์ชันที่ด้านล่างชื่อ sevenseg() ใช้สำหรับแสดงตัวเลข 2 ตัว

อย่าลังเลที่จะถามคำถามเกี่ยวกับโค้ด หรือวิธีที่คุณจะแยกหรือแสดงสิ่งของที่คุณต้องการ หรือวิธีที่คุณอาจใช้ตัวเลขเหล่านี้ เช่น การแบ่งสเปกตรัมของ LED rgb และการจับคู่ค่าต่างๆ กับสีต่างๆ

ขั้นตอนที่ 5: การแสดงข้อมูล

การแสดงข้อมูล
การแสดงข้อมูล

1. สิ่งที่ฉันใช้ (วิธีการต่อสายจอแสดงผล 7 ส่วน)

ฉันได้รับไดอะแกรมที่แนบมา / ติดตามการเดินสายที่อธิบายโดยคำแนะนำอื่น ๆ นี้

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

คำอธิบายทั้งหมดต่อไปนี้จะสัมพันธ์กับไดอะแกรมที่แนบมา: เขียงหั่นขนมสามารถแบ่งออกเป็น 2 ส่วนตามแนวนอน โดยแต่ละส่วนมี 2 ส่วนที่แตกต่างกัน: แถวแนวนอน - และ + ที่ขยายความยาวของเขียงหั่นขนม (ใช้สำหรับกำลัง) และคอลัมน์แนวตั้ง ซึ่งมีเลขและประกอบด้วยจุด 5 จุดต่อคอลัมน์ที่ใช้สำหรับทำเครื่องหมายการเชื่อมต่อ จากนั้นมีช่องว่างเล็กน้อย แล้วลักษณะเดียวกันเหล่านี้ก็เพิ่มเป็นสองเท่าในอีกด้านหนึ่งของเส้นแบ่งจินตภาพนั้น จุดทั้งหมดในแถวแนวนอน + เชื่อมต่อกัน และจุดแนวนอน - แถวทั้งหมดเชื่อมต่อกัน วิธีนี้ช่วยให้คุณเสียบปลั๊กไฟที่ปลายด้านหนึ่งของเขียงหั่นขนม จากนั้นสามารถเสียบสิ่งของต่างๆ กับจุดใดก็ได้ตามเครื่องหมาย + เพื่อนำไฟออก เช่นเดียวกับแถบไฟแบบยาวสำหรับเต้ารับ เช่นเดียวกับแถว - ซึ่งใช้สำหรับกราวด์สิ่งของ สำหรับคอลัมน์ที่มีหมายเลข แต่ละจุดในคอลัมน์ที่มีหมายเลขจะเชื่อมต่อกับจุดอื่นๆ อีก 4 จุด โปรดทราบว่าจุดห้าจุดในคอลัมน์ไม่ได้เชื่อมต่อกับจุดห้าที่อยู่ตรงข้ามกับเส้นกึ่งกลางจินตภาพ เขียงหั่นขนมสามารถตัดตามยาวได้และจะไม่มีการตัดการเชื่อมต่อทางไฟฟ้า

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

  1. กราวด์พินจาก NodeMcu เสียบเข้ากับคอลัมน์ 2
  2. ลวดจากคอลัมน์ 2 ถึงแถวพลังงานแนวนอน -ve (กำหนดโดยกราวด์การประชุม)
  3. จากแถวกราวด์ (หมายเลขคอลัมน์ไม่เกี่ยวข้องเนื่องจากเชื่อมต่อทั้งแถว) ถึงคอลัมน์ 22 ผ่านตัวต้านทาน
  4. ลงในพิน "กราวด์" บนจอแสดงผล 7 ส่วนซึ่งเสียบเข้ากับคอลัมน์ 22

จุดประสงค์ของตัวต้านทานในไดอะแกรมนั้นโดยพื้นฐานแล้วเพื่อ "ดูดซับ" พลังงานส่วนเกินที่ส่งออกไปยัง LED ซึ่งทำงานเพื่อทำให้จอแสดงผลมืดลง คุณจะเห็นว่าเมื่อ "1" สว่างขึ้นเทียบกับ "8" ตัวเลข 1 จะสว่างกว่ามาก เนื่องจากไฟ LED ติดสว่างน้อยกว่า ยิ่งคุณใช้ LED ที่มีความสว่างน้อยเท่าใด ก็ยิ่งมีอายุการใช้งานนานขึ้นเท่านั้น ดังนั้นจำเป็นต้องมีตัวต้านทาน ไดอะแกรมส่วนใหญ่สำหรับการแสดงผล 7 ส่วนจริง ๆ แล้วแสดงว่ามีตัวต้านทานแบบอนุกรมกับแต่ละส่วนแต่ละส่วน แต่ดูเหมือนว่าจะใช้ได้ดี ฉันใช้ตัวต้านทาน 1K โอห์ม

พึงระวังให้มากว่าหมุดใดตรงกับหมุดใดบนจอแสดงผล เนื่องจากหมุดเหล่านี้ถูกจับคู่ไว้ในโค้ด

2. ความคิด / สิ่งที่ฉันจะทำโดยมีเวลามากขึ้น

นี่คือจุดที่ฉันหยุดโดยพื้นฐานแล้ว แต่คุณสามารถเลือกสิ่งอื่น ๆ ที่จะส่งออกตามมูลค่าของข้อมูลของคุณเช่น:

  • rgb LED ที่เปลี่ยนสีตามค่าหรือครอบคลุมการไล่ระดับสีจากสีเขียวเป็นสีแดงเช่น
  • จอแสดงผล LED เต็มรูปแบบ
  • ตรรกะเปิด/ปิด สูง/ต่ำ จริง/เท็จ LED ที่เพิ่งเปิดหรือปิดเพื่อบ่งชี้บางอย่าง
  • มอเตอร์ที่หมุนตามเวลาที่กำหนดของวัน เช่น วาล์วในระบบรดน้ำหรือปล่อยขนมให้สุนัขของคุณ… ฉันแน่ใจว่ามีวิธีที่มีประสิทธิภาพมากกว่าการแปลเวลาผ่าน wifi แต่นี่เป็นทางเลือก!

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

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

การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง
การสร้างกล่อง

การเชื่อมต่อทั้งหมดที่ทำผ่านเขียงหั่นขนมสามารถทำอย่างถาวรได้โดยการบัดกรีสายไฟโดยตรงระหว่างบอร์ดและเอาต์พุต (เช่น LED) หรือโดยการใช้เขียงหั่นขนมที่เล็กกว่ามาก หรือ PCB เพื่อเชื่อมต่อกับมาตราส่วนที่สามารถใส่ได้ โครงการของคุณ ฉันเลือกใช้เขียงหั่นขนมขนาดเล็กที่มาในชุดที่ฉันเชื่อมโยง และเพียงต้องการประสานตัวต้านทานเข้ากับปลายสาย… ไม่แข็งแรงมาก แต่ใช้งานได้!

ฉันตัดไม้สนขนาด 1/4" x 3.5" จำนวน 4 ชิ้นที่ 3.5" (ด้านข้าง) และอีกอันที่ 4" (ด้านบน) แล้วเอาไม้เสียบเข้าด้วยกันและติดเข้าด้วยกัน ทำให้แน่ใจว่าใบหน้าทั้งหมดเป็นรูปสี่เหลี่ยมจัตุรัส ให้มากที่สุดเท่าที่จะเป็นไปได้เพื่อให้แต่ละใบหน้ามีความแดงมากที่สุด ก่อนติดกาวด้านหน้าหรือด้านหลัง ฉันบากพื้นที่สำหรับจอแสดงผลและบอร์ดให้ยื่นออกมามากพอที่จะมองเห็น/เสียบตามลำดับ บอร์ดทดลองเล็กๆ ที่ฉันได้ติดเทปกาวไว้ด้านหลังเพื่อให้สามารถติดเข้ากับผนังด้านใดด้านหนึ่งได้ และส่วนแสดงผล 7 ส่วนสามารถยึดเข้าที่โดยวางชิ้นส่วนลงบนเทปกาวก่อน แล้ววางจอแสดงผลบนเทปนี้ แล้วโรยผงฟูทับ/ลงในช่องว่างทั้งหมด จากนั้นฉันก็เทกาว CA (ซุปเปอร์) ลงในช่องว่าง ซึ่งเมื่อสัมผัสกับเบกกิ้งโซดา จะแข็งตัวทันทีเพื่อยึดจอแสดงผลเข้าที่ แล้วล้างออกด้วยด้านหน้าของชิ้นส่วนด้านหน้า เทปปิดกล่องมีไว้เพื่อป้องกันไม่ให้กาวซึมผ่านระหว่างจอแสดงผลกับพื้นผิวที่คว่ำหน้า และปิดบังเมื่อแห้ง

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

แนะนำ: