เครื่องซักผ้าพร้อม Wi-Fi คุ้มไหมที่จะซื้อ? สร้างเรือมหัศจรรย์ราคาประหยัดด้วยการควบคุม WiFi ตาม ESP8266 การควบคุมเครื่องผ่าน wifi
ทุกคนมีแฟชั่นและงานอดิเรกเป็นของตัวเอง ดังนั้นบางครั้งก็เป็นเรื่องดีที่ได้พบคนที่มีความคิดเหมือนกัน ชื่นชมการสะสมแสตมป์หรือทักษะในเกมบางเกม ต่อไปนี้เป็นการรวบรวมวิดีโอต่าง ๆ ที่อุทิศให้กับงานอดิเรกอย่างใดอย่างหนึ่ง ไม่ว่าคุณจะชอบหมากรุก เทนนิส หรือสะสมสัตว์ป่าเปลี่ยวไว้ใต้หลังคาของคุณ คุณจะพบได้ที่นี่ วิดีโอที่ดี- เนื้อหาที่คุณชอบ
ในปัจจุบัน งานอดิเรกอย่างหนึ่งได้รับความนิยมอย่างมากทั้งทางออนไลน์และในชีวิตจริง โดยส่วนใหญ่เข้าถึงได้เฉพาะผู้หญิงเท่านั้น นั่นคือการแต่งหน้าหน้ากล้อง สำหรับผู้ชมทั่วไปดูเหมือนว่าในวิดีโอเหล่านี้สาว ๆ เพียงแค่แต่งหน้าและทำเรื่องใหญ่จากภูเขา แต่ในความเป็นจริงแล้ว ความงามเหล่านี้กำลังแสดงทักษะทางศิลปะซึ่งพวกเขาได้พัฒนามาตลอดหลายปีที่ผ่านมา ในวิดีโอดังกล่าว คุณจะพบเคล็ดลับ เคล็ดลับในชีวิตประจำวัน และยังเน้นประเด็นที่เป็นประโยชน์มากมายที่คุณพลาดไปในชีวิต นางแบบโค้งงอและสไตลิสต์จะบอกคุณว่าควรเลือกอายแชโดว์แบบไหนและควรเลือกชุดไหนให้เหมาะกับทรงผมของคุณ สำหรับผู้หญิงหลายคน สิ่งนี้กลายเป็นงานอดิเรกที่พวกเธอทุ่มเทเกือบทั้งชีวิต
นอกจากการแต่งหน้าแล้ว สาว ๆ หลายคนยังชื่นชอบการช้อปปิ้ง จึงมักอัปโหลดการไปเที่ยวศูนย์การค้าท้องถิ่นบน YouTube เพื่อตุนเสื้อผ้าและเริ่มรีวิวและลองสวม เด็กผู้หญิงเหล่านี้มักจะสะสมชุดต่าง ๆ มากมายที่บ้านและบางคนก็สามารถเปิดร้านของตัวเองและขายเสื้อผ้าเป็นเวลาหลายปี - พวกเขามีชุดที่ซื้อมามากมาย และคอลเลกชันอันกว้างใหญ่ทั้งหมดก็ตกอยู่ที่เลนส์กล้อง พูดตามตรงฉันไม่เข้าใจว่าทำไมผู้หญิงหลายคนถึงดูสิ่งนี้ แต่มีลูกค้าสำหรับเนื้อหาประเภทนี้และมันก็แปลกนิดหน่อย
อย่างไรก็ตาม ไม่เพียงแต่สาวๆ ที่รักแฟชั่นและสไตล์เท่านั้น และยังมีงานอดิเรกที่แตกต่างกันอีกด้วย ผู้ชายยังมีงานอดิเรกที่แตกต่างกันมากมายที่สามารถทำให้ประหลาดใจได้จนถึงแก่นแท้ บางคนเก็บผ้าเช็ดปากจากร้านค้า บางคนชอบเล่นเกมจำลองการเล่นกีฬา (ซึ่งมันบ้าบอมากในตัวเอง) แต่ก็มีคนที่ใช้เวลาทั้งวันเพื่อรบกวนผู้หญิงและสะสมจูบของพวกเขา ในเวลาเดียวกัน พวกเขาต้องการบันทึกการผจญภัยด้วยกล้องวิดีโอ จากนั้นจึงนำวิดีโอไปแสดงต่อสาธารณะ และทำให้ตัวเองเป็นผู้ชายที่ยอดเยี่ยม
ไม่ว่าในกรณีใด ในโลกของเรามีงานอดิเรก กิจกรรม กิจการต่างๆ มากมาย และสิ่งเหล่านี้สามารถดึงดูดบุคคลที่มีกรอบความคิดที่แน่นอนได้เป็นระยะเวลาหนึ่ง และอาจตลอดชีวิตด้วยซ้ำ มีจำนวนมากจนไม่มีประโยชน์ที่จะแสดงรายการเพิ่มเติม ในหน้านี้คุณจะพบกับวิดีโอต่างๆ หลายร้อยรายการและสามารถเป็นเรื่องเกี่ยวกับอะไรก็ได้ ท้ายที่สุดแล้วมีกี่คนมีงานอดิเรกมากมาย แต่ละคนสามารถประดิษฐ์นักฆ่าเวลาเฉพาะสำหรับตนเองได้ บางครั้งคุณอาจประหลาดใจกับสิ่งที่สมองของมนุษย์สามารถทำได้เมื่อมันเบื่อ แต่อย่าแปลกใจถ้างานอดิเรกของคุณเองนั้นแปลกสำหรับใครบางคน
มองดูผู้คนทำในสิ่งที่พวกเขาชื่นชอบ หัวเราะกับความโง่เขลาของสิ่งที่เกิดขึ้น หรือเน้นย้ำกับตัวเองถึงบางสิ่งที่คุณสามารถหาประโยชน์ได้ในชีวิต ที่นี่ ความบันเทิง ข้อมูล และเนื้อหาวิดีโอที่มีสไตล์ส่วนใหญ่จะถูกรวบรวมไว้ที่นี่
รถ RC สามารถเป็นรถ WiFi ได้...?
รถ RC นั้นดี แต่รถ RC ราคาถูกมีระยะการใช้งานที่จำกัด และควบคุมโดยรีโมทคอนโทรลเฉพาะที่ให้มาในชุดเท่านั้น
ฉันซื้อ RC Jeep 4x4 พร้อมระบบกันสะเทือนแบบยืดหยุ่นและยางออฟโรดในราคาประมาณ 30 เหรียญสหรัฐ หลังจากเล่นเครื่องแล้วตัดสินใจว่าจะปรับปรุงให้ดีขึ้นได้ ความช่วยเหลือเกี่ยวกับ Wi-Fiและระบบปฏิบัติการ Android หลังจากใช้เวลาสักพักฉันก็ถอดบอร์ดออกจากเครื่องจนหมด ฉันวัดแรงดันไฟฟ้าบนบอร์ดนี้และพัฒนาระบบควบคุมมอเตอร์ที่ Arduino ช่วยด้วย- ระบบควบคุมแบบเดิมไม่ได้ใช้ PWM ในการควบคุมความเร็ว รถได้รับการออกแบบให้ขับข้ามสิ่งกีดขวางด้วยเกียร์ต่ำมากและส่งผลให้ช้ามาก วงจรของฉันใช้ PWM
ฉันใช้ Arduino มาหลายเดือนแล้ว ฉันยังซื้อ asynclabs WiFi Sheild สำหรับ Duemilanoe Arduino เพื่อทดลองกับ WiFi มันมาพร้อมกับไลบรารี่ที่ติดตั้งใน Arduino IDE ฉันสามารถสร้างโปรแกรมที่ให้คุณควบคุมมอเตอร์และทิศทางการเคลื่อนไหวโดยใช้ WiFi ได้
ด้วยความช่วยเหลือ วิชวลสตูดิโอฉันได้พัฒนาหน้าต่างโปรแกรมที่เชื่อมต่อกับเซิร์ฟเวอร์ของรถยนต์และให้คำสั่งแก่มัน หลังจากพยายามไม่กี่ครั้ง ฉันก็เขียนแอป Android ที่ใช้ตัวตรวจวัดความเร่งในการควบคุมรถ
เครื่องมือและองค์ประกอบนี่คือรายการเครื่องมือและรายการทั่วไปที่ใช้ในโปรเจ็กต์นี้ เอกสารของ Eagle ให้รายละเอียดที่แน่นอน ข้อกำหนดทางเทคนิคส่วนประกอบที่ใช้
มัลติมิเตอร์
หัวแร้ง
ประสาน
ไขควง
โซลูชั่นการแกะสลักกระดาน
ไฟเบอร์กลาสฟอยล์
คีม
อาร์ดูโน่
โล่ WiFi ของ AsyncLabs
ขั้วต่อ RJ45
ตัวขับมอเตอร์ H-Bridge
ตัวเก็บประจุ
การใช้ Eagle ฉันออกแบบวงจรนี้และสร้าง แผงวงจรพิมพ์สำหรับเธอ มันทำหน้าที่เป็นไดรเวอร์มอเตอร์และตัวควบคุมพลังงานสำหรับ Arduino
ซึ่งช่วยให้สามารถใช้แบตเตอรี่มาตรฐาน 7.2V เพื่อจ่ายไฟให้กับมอเตอร์หลักและมอเตอร์บังคับเลี้ยวและ Arduino
วงจรนี้ใช้ไดรเวอร์ H-bridge แบบรวมคู่ SN754410 เพื่อควบคุมมอเตอร์ หมุดควบคุมไดรเวอร์เชื่อมต่อกับสายเคเบิล RJ45 ซึ่งเชื่อมต่อกับ AsyncLabs WiFi Sheild
โล่ Arduinoการใช้ไลบรารี SparkFun ใน Eagle ฉันออกแบบ Arduino Shield ซึ่งจะส่งพินไปยัง WiFi Shield และเชื่อมต่อกับไดรเวอร์มอเตอร์ผ่านขั้วต่อ RJ45 และขั้วต่อสกรู 2 ตัว
pinout ของพิน RJ45 มีความสำคัญมาก ข้อผิดพลาดในการเชื่อมต่ออาจนำไปสู่ผลลัพธ์ที่คาดเดาไม่ได้ และคุณจะต้องทำบอร์ดใหม่
การแกะสลัก PCBหัวข้อนี้ครอบคลุมหลายครั้งแล้ว และฉันจะไม่ลงรายละเอียดเกี่ยวกับเรื่องนี้
ฉันใช้มันและมันเหมาะกับฉัน และด้วยประสบการณ์มันให้ผลลัพธ์ที่ยอดเยี่ยม
Velcro ใช้สำหรับติดบอร์ดเข้ากับเคส ฉันโชคดีเพราะ... รถของฉันมีพื้นที่สำหรับอุปกรณ์อิเล็กทรอนิกส์มากมายใต้โครงท่อ
ฉันลืมถ่ายรูปการเชื่อมต่อระหว่างบอร์ดควบคุมมอเตอร์กับบอร์ดอื่นๆ แต่มันเข้ากันได้ดีและไม่ใช้พื้นที่มากนักในเคส
รหัสของฉันอาจไม่มีประสิทธิภาพเพียงพอ แต่ใช้งานได้
เครื่องพิมพ์ดีด
ฉันสามารถสร้าง CarServer ตามตัวอย่าง SocketServer ที่ฉันได้รับจาก AsynLabs Wifi Sheild
คุณจะต้องป้อนข้อมูลเกี่ยวกับของคุณ เครือข่ายไร้สายไปจนถึงโค้ด Arduino เมื่อเปิดเครื่องแล้ว ให้เวลา 15-45 วินาทีเพื่อสร้างการเชื่อมต่อกับเราเตอร์ ไฟ LED สีแดงบน WiFi Shield หมายความว่าการเชื่อมต่อได้ถูกสร้างขึ้นแล้ว
ฉันสร้างโปรแกรมนี้โดยใช้ C# และ MS Visual Studio 2008 ฉันสร้างหน้าต่างที่สวยงามและสามารถควบคุมรถได้ด้วยลูกศร
ทำไมไม่ควบคุมรถจากโทรศัพท์ของคุณ?
ความคิดนี้เกิดขึ้นกับฉันประมาณหนึ่งสัปดาห์หลังจากซื้อ DroidX ฉันเริ่มทดลองและใช้ในที่สุด ระบบปฏิบัติการ Android- ฉันพบแอปที่คล้ายกันซึ่งใช้มาตรความเร่งในการควบคุม เมื่อดูแอปพลิเคชันเหล่านี้ ฉันก็เขียนเอง
วาง IP และพอร์ตที่ระบุในโค้ด Arduino ถือโทรศัพท์ของคุณในแนวนอน จากนั้นเอียงมันออกจากตัวคุณเพื่อไปข้างหน้าและเอียงเข้าหาตัวเพื่อถอยหลัง ใช้โทรศัพท์ของคุณเป็นพวงมาลัย
นี่เป็นแอป Android หลักแอปแรกของฉัน มันยังมีข้อบกพร่องอยู่บ้าง แต่ส่วนใหญ่ก็ใช้งานได้ดี
ฉันมีช่วงเวลาที่ดีในการสร้างโครงการนี้ ฉันได้รับความรู้และทักษะใหม่ๆ มากมาย และตอนนี้ฉันมีรถ 4x4 ที่สามารถควบคุมได้จากโทรศัพท์ของฉัน
ฉันต้องมีกล้องติดตั้งอยู่ด้านหลังกระจกหน้ารถเพื่อที่จะได้เห็นว่าฉันกำลังขับรถไปที่ไหน เธอควรจะอยู่ด้วย การใช้พลังงานต่ำและยังส่งวิดีโอได้ด้วยตัวเองอีกด้วย (ฉันคิดว่า Arduino สามารถจัดการสิ่งนี้ได้)
รายชื่อธาตุกัมมันตภาพรังสีไดร์เวอร์มอเตอร์ | ||||||
ชิป | SN754410 | 1 | ไปยังสมุดบันทึก | |||
ตัวควบคุมเชิงเส้น | 5 โวลต์ | 1 | ไปยังสมุดบันทึก | |||
ทรานซิสเตอร์แบบไบโพลาร์ | 2N3904 | 1 | ไปยังสมุดบันทึก | |||
ตัวเก็บประจุด้วยไฟฟ้า | 2 | ไปยังสมุดบันทึก | ||||
ตัวเชื่อมต่อ | 2 เอาท์พุท | 7 | ไปยังสมุดบันทึก | |||
ตัวเชื่อมต่อ | 8 พิน | 1 | ไปยังสมุดบันทึก | |||
โล่ Arduino | ||||||
บอร์ดอาร์ดูโน่ | 1 | ไปยังสมุดบันทึก | ||||
ทรานซิสเตอร์แบบไบโพลาร์ | 2N3904 | 1 | ไปยังสมุดบันทึก | |||
ตัวต้านทาน | 1 | ไปยังสมุดบันทึก | ||||
ตัวต้านทานทริมเมอร์ | 1 | ไปยังสมุดบันทึก | ||||
ตัวเชื่อมต่อ | 2 เอาท์พุท | 2 |
คำแนะนำโดยละเอียดเกี่ยวกับวิธีการใช้ ESP8266 เพิ่มกาวและโฟมเล็กน้อย และมอบความสนุกสนานให้กับเด็กๆ (และผู้ใหญ่) อย่างเต็มที่
คู่มือประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:
คำอธิบายของคณะกรรมการ
สมองของเรือคือบอร์ดที่ซื้อจาก Aliexpress บอร์ดพัฒนานี้เป็นวิธีที่สะดวกในการเริ่มต้นใช้งานโมดูล WiFi ESP8266-12
ตัวโมดูลนั้นถูกบัดกรีเข้ากับบอร์ด และพินของโมดูลทั้งหมดจะถูกส่งไปยังขั้วต่อพิน ไฟ LED สีแดงถูกบัดกรีเป็น 6 พินผ่านตัวต้านทานจำกัดกระแส RGB LED ถูกบัดกรีเข้ากับพินอีกสามพิน
นอกจากนี้ยังมีโคลง 3.3 V, ตัวต้านทานการเดินสายไฟของโมดูลเป็นแบบต่อสาย, มีโฟโตรีซีสเตอร์ที่อินพุต ADC และมีจัมเปอร์สำหรับนำโมดูลเข้าสู่โหมดการเขียนโปรแกรม
เอาต์พุต USART จะแสดงแยกกัน และเครื่องหมาย Rx และ Tx จะกลับกัน
ช่องใส่แบตเตอรี่สำหรับแบตเตอรี่ 3 ก้อนถูกบัดกรีเข้ากับกำลังไฟฟ้าของโมดูล และโมดูลนั้นถูกโหลดด้วยเฟิร์มแวร์ทดสอบภายใต้การควบคุมซึ่งเท่าที่ฉันจำได้ว่ามีการสร้างจุดเข้าใช้งานใหม่ ด้วยการเชื่อมต่อกับจุดเข้าใช้งานนี้ คุณสามารถควบคุมไฟ LED บนบอร์ดได้ ถ้ามันเหมือนกับครั้งแรก มันก็เป็นแค่เวทย์มนตร์บางอย่างเท่านั้น
ความเป็นมาของการสร้างเรือ
ในกระบวนการของการศึกษาด้วยตนเองที่ซบเซาในการสร้างบ้านอัจฉริยะ บอร์ดนี้ถูกซื้อเมื่อปีที่แล้ว (ร้านค้าที่ซื้อสินค้าปิดอยู่ในขณะนี้) เมื่อใช้ร่วมกับโมดูลนี้ ฉันจึงนำโมดูล ESP8266-12 เปลือยอีกสองโมดูลมาใช้งานเพื่อใช้งานเทอร์โมมิเตอร์/เครื่องวัดความชื้นสองเครื่อง ซึ่งยังคงทำงานได้สำเร็จ
ต่อไปฉันพยายามเชื่อมต่อกับ MajorDoMo - เปิดและ ระบบฟรีการจัดการ สมาร์ทโฮม- แต่อย่างใดสิ่งนี้ไม่ได้ผลดังนั้นฉันจึงละทิ้งมันไปชั่วคราว
กลางฤดูร้อนฉันก็เจอ ปรากฎว่าสามารถตั้งโปรแกรม esp8266 ได้เหมือน Arduino ทั่วไป!!! และไลบรารี Arduino สำหรับ esp8266 ได้รับการย้ายแล้วในทุกโอกาส
ขั้นตอนใหม่ในการควบคุม esp8266 เชิงคุณภาพได้มาถึงแล้วสำหรับฉัน...
ฉันเล่นกับตัวอย่างห้องสมุดบ่อยครั้งและอยากทำอะไรบางอย่างกับการใช้งานจริง
ฉันตัดสินใจสร้างเรือขับเคลื่อนด้วยตัวเองสำหรับเด็กๆ สำหรับบ่อในชนบทของพวกเขา ไม่ใช่เรือธรรมดา แต่เป็นเรือที่สามารถควบคุมได้จากสมาร์ทโฟนทุกเครื่อง!
วัสดุที่ใช้
เลือกใช้ชิ้นส่วนโฟมโพลีสไตรีนที่เก็บฝุ่นในตู้เสื้อผ้าเป็นวัสดุก่อสร้างของอาคาร
มอเตอร์ที่ใช้คือมอเตอร์สับเปลี่ยนจากเครื่องเล่นดีวีดี เพื่อควบคุมเรือ จึงตัดสินใจใช้ระบบขับเคลื่อนสองเครื่องยนต์ - เราบังคับให้เรือเลี้ยวซ้ายหรือขวาโดยการลดความเร็วของเครื่องยนต์ซ้าย/ขวา
ใบพัดทำจากแผ่นดีบุก
เข็มถัก (เวนคืนจากภรรยาของฉัน) พอดีกับเพลาใบพัดพอดี
ท่อหดด้วยความร้อนที่มีเส้นผ่านศูนย์กลางต่างกันเหมาะอย่างยิ่งสำหรับการเชื่อมต่อที่เชื่อถือได้และยืดหยุ่นระหว่างเพลาใบพัดและมอเตอร์
ตัวปากกาลูกลื่นธรรมดาถูกใช้เป็นลูกปืนเลื่อนสำหรับเพลาใบพัด
กาวมังกรและปืนกาวร้อนก็มีประโยชน์เช่นกัน
เพื่อควบคุมมอเตอร์ พบทรานซิสเตอร์เอฟเฟกต์สนามสองตัวอยู่ในที่ซ่อน ซึ่งบัดกรีออกจากเมนบอร์ดตัวเก่า
แหล่งพลังงานคือแบตเตอรี่ 18650 ที่ซื้อแบบออฟไลน์
ฉันยังจำเป็นต้องมีสวิตช์สลับขนาดเล็กเพื่อจ่ายไฟ ตัวต้านทานหลายตัว และเขียงหั่นขนมเพื่อเชื่อมต่อไฟฟ้าทั้งหมดเข้าด้วยกัน
ทำเรือ
สำหรับการตัดโฟมเข้าไป การแก้ไขอย่างรวดเร็ว ThermoElectroCutter ประกอบขึ้นด้วยแท่งไม้ สกรูยาวสองตัว และลวดเส้นเล็กหนึ่งชิ้น ควรใช้ลวดนิกโครม แต่ฉันไม่มี (และฉันไม่ต้องการทำลายตัวต้านทานแบบลวดพันของโซเวียตเพื่อจุดประสงค์นี้) ดังนั้นฉันจึงใช้ลวดเหล็กเส้นเล็ก
เครื่องชั่วคราวนี้ขับเคลื่อนผ่าน . ทั้งสองถูกซื้อต้องขอบคุณบทวิจารณ์ที่นี่
โดยรวมแล้ว ในภาพนี้ สายตาที่อยากรู้อยากเห็นสามารถพบกับผลิตภัณฑ์ที่เคยรีวิวบน Muska ได้มากถึง 10 รายการ
ด้วยการปรับแรงดันไฟฟ้าที่เอาต์พุตของตัวแปลง DC-DC ในการทดลองจำเป็นต้องสร้างความร้อนของลวด ThermoElectroCutter ซึ่งโฟมจะถูกตัดอย่างง่ายดายและเป็นธรรมชาติ
เป็นผลให้เราได้พลาสติกโฟมมากขึ้นหรือน้อยลงซึ่งสะดวกในการประกอบครั้งต่อไป
ชิ้นส่วนที่ใหญ่ที่สุดสองชิ้นถูกใช้เป็นตัวเรือ โดยติดกาวเข้าด้วยกันด้วยกาวมังกร
ใบพัดผลิตขึ้นในหลายรูปแบบ:
ตัดช่องว่างสี่เหลี่ยมจากดีบุก (ฉันมี 20*20 มม.)
- เชื่อมมุมทแยงกับความเสี่ยงเพื่อหาจุดศูนย์กลาง
- เจาะรูตรงกลาง (เส้นผ่านศูนย์กลาง 3.5 มม.)
- ขันให้แน่นด้วยสกรูและน็อตที่เหมาะสม (M 3*20)
- จับสกรูไว้ในหัวจับดอกสว่านด้วยความเร็วต่ำ วาด (เกา) วงกลมด้วยวัตถุมีคมที่เหมาะสม
- ตัดวงกลมคู่ออก
- ตัดวงกลมตามเส้นทแยงมุมที่มีอยู่ 2/3 ของรัศมีแล้วงอเป็นมุม (30-45 องศา)
จากนั้นเราก็เอาเข็มถัก ตัดท่อหดด้วยความร้อนขนาด 25-30 มม. ที่มีเส้นผ่านศูนย์กลางใหญ่กว่าเข็มถักเล็กน้อย หมุนเข็มถักโดยให้ความร้อนหดตัวบนเปลวไฟเล็กๆ ของเตาแก๊ส (หรือไฟฟ้า) จนกระทั่งท่ออุ่นขึ้นและปิดเข็มถักไว้แน่น
ต่อไป เราจะตัดท่อที่มีเส้นผ่านศูนย์กลางใหญ่กว่านี้ออก... ฯลฯ จนท่อต่อไปสามารถใส่เกียร์เครื่องยนต์ได้ ที.เค. หากใส่เกียร์บนเพลาเครื่องยนต์แน่นเพียงพอ จะส่งแรงบิดไปยังเพลาใบพัดได้ดี
เรานำการหดตัวด้วยความร้อนชิ้นสุดท้ายมาวางบนเพลาใบพัดและเครื่องยนต์ไปพร้อมๆ กัน
หลังจากทำความร้อนการหดตัวของความร้อนแล้ว เราก็จะได้การเชื่อมต่อที่ดี
ได้เวลาติดตั้งเครื่องยนต์ในตัวถังแล้ว
ใช้สว่านเจาะรูสองรูในตัวถังสำหรับเพลาใบพัด จากด้านล่างเราใส่ตลับลูกปืนธรรมดา
เราตั้งค่าเครื่องยนต์ และโดยการหมุนเพลาตามแรงต้านการหมุนน้อยที่สุด เราจะพบตำแหน่งที่เหมาะสมที่สุดสำหรับเครื่องยนต์แต่ละตัว
เรารักษาผลลัพธ์ไว้อย่างไม่เห็นแก่ตัวด้วยกาวร้อน
เราใส่ใบพัดและยึดให้แน่นด้วยกาวร้อน เพื่อการยึดเกาะที่ดีขึ้นกับกาว ปลายเข็มถักจะมีรอยบุบเล็กน้อยด้วยเครื่องตัดลวด และพื้นผิวของสกรูที่อยู่ใกล้ตรงกลางจะมีรอยขีดข่วนจนมีสภาพหยาบ
เราเชื่อมต่อและประสานทุกอย่างตามแผนภาพ
พลังงานจากแบตเตอรี่จะถูกส่งผ่านสวิตช์สลับ จากนั้นไปที่มอเตอร์และไปยังตัวปรับเสถียรภาพเชิงเส้น 3.3 V ขั้วต่อที่สองของมอเตอร์แต่ละตัวเชื่อมต่อผ่านทรานซิสเตอร์เอฟเฟกต์สนามกับแหล่งจ่ายไฟลบ ด้วยการส่งสัญญาณของรอบการทำงานของพัลส์ที่แตกต่างกันจากเอาต์พุตของ ESP8266 ไปยังเกตของทรานซิสเตอร์เอฟเฟกต์สนาม PWM เราจะควบคุมความเร็วในการหมุนของมอเตอร์
แรงดันไฟฟ้าของแหล่งจ่ายยังจ่ายผ่านตัวแบ่งตัวต้านทานไปยังอินพุต ADC ของโมดูล ESP8266 เพื่อตรวจสอบสถานะแบตเตอรี่
ทรานซิสเตอร์กำลังพร้อมตัวต้านทานที่มีผลผูกพัน, สวิตช์ไฟ, โคลง, ตัวแบ่งตัวต้านทานสำหรับการวัดแรงดันไฟฟ้าของแบตเตอรี่ - ทุกอย่างวางอยู่บนเขียงหั่นขนม บอร์ดที่มีโมดูล ESP8266 ขั้วแบตเตอรี่และมอเตอร์ก็ถูกบัดกรีด้วย
อะแดปเตอร์ USB-TTL เชื่อมต่อกับโมดูล
ทุกอย่างจึงพร้อมจะจุดประกายชีวิตลงในเรือที่เกือบจะเสร็จแล้ว...
การเขียนโปรแกรม
วิธีการติดตั้ง Arduino IDE และให้การสนับสนุน ESP8266 นั้นได้อธิบายไว้ค่อนข้างดีในข้างต้น
เพื่อควบคุมเรือ เราจะสร้างจุดเข้าใช้งานบน ESP8266 และตั้งค่าเว็บเซิร์ฟเวอร์ โดยการเชื่อมต่อสมาร์ทโฟนของคุณเข้ากับจุดเข้าใช้งานและพิมพ์ที่อยู่เซิร์ฟเวอร์ (192.168.4.1) ในเบราว์เซอร์ คุณจะเห็นหน้าเว็บพร้อมการควบคุมและการตรวจวัดระยะไกลจากบนเรือของเรา
เพื่อลดภาระบน ESP8266 ลดเวลาตอบสนองของการดำเนินการควบคุมและเพิ่มการโต้ตอบ ฉันจึงตัดสินใจใช้เทคนิคคำขอ AJAX
ตัดตอนมาจากวิกิพีเดีย:
AJAX, Ajax (ˈeɪdʒæks จากภาษาอังกฤษ Asynchronous Javascript และ XML - “ จาวาสคริปต์แบบอะซิงโครนัสและ XML") เป็นแนวทางในการสร้างอินเทอร์เฟซผู้ใช้แบบโต้ตอบสำหรับแอปพลิเคชันเว็บที่เกี่ยวข้องกับการแลกเปลี่ยนข้อมูลเบราว์เซอร์ "เบื้องหลัง" กับเว็บเซิร์ฟเวอร์ ส่งผลให้เมื่ออัปเดตข้อมูลหน้าเว็บจะโหลดไม่เสร็จสมบูรณ์และเว็บแอปพลิเคชันจะเร็วขึ้นและสะดวกยิ่งขึ้น
ในโมเดลแอปพลิเคชันเว็บแบบคลาสสิก:
เบราว์เซอร์สร้างและส่งคำขอไปยังเซิร์ฟเวอร์
ในการตอบสนอง เซิร์ฟเวอร์จะสร้างหน้าเว็บใหม่ทั้งหมดและส่งไปยังเบราว์เซอร์ ฯลฯ จากนั้นเบราว์เซอร์จะโหลดทั้งหน้าใหม่ทั้งหมด
เมื่อใช้ AJAX:
ผู้ใช้เยี่ยมชมหน้าเว็บและคลิกที่องค์ประกอบบางส่วน
สคริปต์ (ใน JavaScript) กำหนดว่าข้อมูลใดที่จำเป็นในการอัปเดตเพจ
เบราว์เซอร์ส่งคำขอที่เกี่ยวข้องไปยังเซิร์ฟเวอร์
เซิร์ฟเวอร์ส่งคืนเฉพาะส่วนของเอกสารที่มีการร้องขอเท่านั้น
สคริปต์ทำการเปลี่ยนแปลงโดยคำนึงถึงข้อมูลที่ได้รับ (ไม่มี รีบูตเต็มรูปแบบหน้า)
หลังจากทรมาน Google มาระยะหนึ่งเพื่อค้นหาการดำเนินการตามความปรารถนาของฉันอย่างเหมาะสม ฉันก็เจอ
ซึ่งฉันยืมรหัสที่เหมาะสม
รหัสเริ่มต้น
#include #include เซิร์ฟเวอร์ ESP8266WebServer(80); const char* ssid="yourSSID"; const char* รหัสผ่าน = "รหัสผ่านของคุณ"; สตริงเว็บไซต์,จาวาสคริปต์,XML; รอนานไม่ได้ลงนาม wait000=0UL,wait001=1000UL; int LED=16;const int ตัวเลื่อนMAX=10; // นี่เป็นการตั้งค่าจำนวนแถบเลื่อนที่คุณต้องการใน SliderVal=(60),ESPval; เป็นโมฆะ buildWebsite())( buildJavascript(); webSite="\n"; webSite+="\n"; webSite+=" นี่คือเว็บไซต์ ESP ... \n"; webSite+="Runtime = \n"; webSite+= " ความแรงของสัญญาณ a= \n"; webSite+= ศิลา ;// ความแรง สัญญาณไวไฟเว็บไซต์+="\n";
\n"; // 1 แถบเลื่อน เว็บไซต์+=" | \n"; เว็บไซต์+=" | \n"; // 1 แถบเลื่อน เว็บไซต์+="
\n"; // 1 แถบเลื่อน เว็บไซต์+=" | \n"; // 2 แถบเลื่อน เว็บไซต์+=" | \n"; // 1 แถบเลื่อน เว็บไซต์+="
\n"; // 1 แถบเลื่อน เว็บไซต์+=" | การแก้ไข = \n"; webSite+="Motors = | \n"; // 1 แถบเลื่อน เว็บไซต์+="
มีคำอธิบายค่อนข้างมากในโค้ด ฉันหวังว่าทุกอย่างชัดเจน
เครื่องยนต์ของเรือถูกควบคุมโดยการเปลี่ยนตำแหน่งของตัวเลื่อนของตัวเลื่อนสามตัวบนหน้า
- สไลเดอร์ตัวแรกมีหน้าที่รับผิดชอบความเร็วในการหมุนของมอเตอร์ (และความเร็วของเรือ ตามลำดับ) หากคุณเปลี่ยนตำแหน่งของแถบเลื่อนของแถบเลื่อนนี้จาก 20 เป็น 100% ค่าของตัวแปร ESPval ที่เกี่ยวข้องกับแถบเลื่อนจะเปลี่ยนไป ค่าตัวแปรถูกเขียนลงในพอร์ต OUT1 และ OUT2 ของ ESP8266 (เอาต์พุตที่ไปที่ประตูควบคุม ทรานซิสเตอร์สนามผล) และความเร็วรอบเครื่องยนต์จะเพิ่มขึ้นจาก 0 เป็นสูงสุด
ในช่วงตำแหน่งของแถบเลื่อนนี้ตั้งแต่ 0 ถึง 20% จะมีการเขียน 0 ไปที่พอร์ตและเครื่องยนต์จะหยุดทำงาน
- แถบเลื่อนตัวที่สองมีหน้าที่ในการเลี้ยว (ตัวแปร ESPval) หากตัวเลื่อนอยู่ในตำแหน่งขวาหรือซ้าย ค่าความเร็วของมอเตอร์ที่เกี่ยวข้องจะลดลง 0.8 (ค่าคงที่ Povorot) เครื่องยนต์จะช้าลงและเรือจะเลี้ยวไปในทิศทางที่ถูกต้อง
- จำเป็นต้องใช้แถบเลื่อนตัวที่สาม (ตัวแปร ESPval และ Trimer) เพื่อแยกแยะความแตกต่างในลักษณะเครื่องยนต์ คุณสามารถชะลอหรือเร่งความเร็วเครื่องยนต์ตัวใดตัวหนึ่งได้ ทั้งนี้ขึ้นอยู่กับตำแหน่งของตัวเลื่อน
น่าเสียดายที่ไม่สามารถใช้งานฟังก์ชันการวัดแรงดันไฟฟ้าของแบตเตอรี่ได้อย่างสมบูรณ์ ในระหว่างขั้นตอนการตั้งค่า อินพุตโมดูล ADC ถูกไฟไหม้ (ฉันคิดว่ามันลัดวงจรไปที่ + แบตเตอรี่)...
การวัดความแรงของสัญญาณ WiFi ใช้งานได้ แต่ต้องมีการสอบเทียบที่แม่นยำยิ่งขึ้น
สำหรับการดีบักเราใช้การเชื่อมต่อกับบ้าน เครือข่าย WiFiและส่งข้อมูลออกทางพอร์ตอนุกรม
ในโค้ดเวอร์ชันที่ใช้งานได้ โมดูลจะเพิ่มจุดเชื่อมต่อแยกต่างหากและไม่จำเป็นต้องใช้เอาต์พุต - บรรทัดของโค้ดที่เกี่ยวข้องจะถูกใส่เครื่องหมายความคิดเห็น
ภาพร่างถูกรวบรวมใน IDE เวอร์ชัน 1.6.12
มีหน่วยความจำว่างเหลืออยู่มากเกินพอที่จะนำความปรารถนาที่ตามมามาไปใช้ในโค้ดได้
หากใครมีการเพิ่มเติม/แก้ไขโค้ดที่สร้างสรรค์ โปรดแสดงความคิดเห็นในความคิดเห็น
การว่ายน้ำ
ขั้นแรกมีการทดสอบการทำงานในบริเวณห้องน้ำ โดยพิจารณาจากผลการปรับปรุงดังต่อไปนี้:
- แบตเตอรี่ AA 4 ก้อนในแหล่งจ่ายไฟถูกแทนที่ด้วยแบตเตอรี่ 18650 จำนวน 2 ก้อนโดยไม่มีเงื่อนไข
- เพิ่มการตัดแต่งเครื่องยนต์ตัวใดตัวหนึ่งให้กับการปรับความเร็วและการหมุน
- ระยะพิทช์ของใบพัดเพิ่มขึ้น
จากนั้นในการเดินทางครั้งต่อไปที่เดชาเรือก็ถูกส่งออกไปแล่นบนน้ำสูงอย่างเคร่งขรึม
การทดสอบภาคสนามแสดงให้เห็นว่าเวอร์ชันถัดไปต้องการ:
- เพิ่มความแรงของสัญญาณของโมดูล WiFi โดยการเพิ่ม เสาอากาศภายนอก
- เพิ่มขนาดเส้นผ่านศูนย์กลางของใบพัด (หรือสั่งใบพัดใน Aliexpress)
- เพิ่มการเบรกของเครื่องยนต์เมื่อเปลี่ยนจาก 20% เป็น 40-50%
- ปรับเปลี่ยนร่างกายให้ไหลเวียนดีขึ้น
- เปลี่ยนมอเตอร์เป็นมอเตอร์ไร้แปรงถ่าน
- ทำพวงมาลัยขับเคลื่อนด้วยเซอร์โว
- ขันสกรูบน FPV
- เพิ่มไฟ LED สำหรับการว่ายน้ำตอนกลางคืน
- ติดตั้งดอกไม้ไฟบนดาดฟ้าแล้วจุดพลุกลางสระน้ำ
- อะไรก็ได้ที่ใจคุณปรารถนา...
แต่การปรับปรุงเหล่านี้อาจจะถูกนำมาใช้ในฤดูกาลใหม่
ดังนั้น ด้วยเวลาและเงินเพียงเล็กน้อย ช่างฝีมือทั่วไปก็สามารถประกอบของเล่นที่ควบคุมด้วยวิทยุของตัวเองได้
หากไม่มีการเปลี่ยนแปลงโปรแกรมอย่างมีนัยสำคัญ คุณสามารถสร้างรถยนต์ที่ควบคุมได้ (หรือรถยนต์หลายคัน) ด้วยวิธีง่ายๆ เดียวกันเพื่อขี่สนุกไปรอบ ๆ อพาร์ทเมนต์ในช่วงเย็นฤดูหนาวที่ยาวนาน
ฉันคงจะดีใจถ้าบทประพันธ์นี้เป็นแรงบันดาลใจให้ทุกคนมีความคิดสร้างสรรค์
วางแผนที่จะซื้อ +87 เพิ่มในรายการโปรด ชอบรีวิว +131 +257ดังนั้นเราจะควบคุมเครื่องยนต์ที่พลิกกลับได้ (หมุนได้ทั้งสองทิศทาง) สองเครื่องยนต์: เครื่องยนต์หลักและพวงมาลัย เราจะจ่ายไฟให้กับพวกมันจากแบตเตอรี่ 3.7 V แต่โดยหลักการแล้วคุณสามารถจ่ายไฟได้สูงสุด 12 V หากคุณประสานแหล่งจ่ายไฟของคอนโทรลเลอร์หรือจัดระเบียบด้วยแบตเตอรี่แยกต่างหาก
ในส่วนกำลัง เราใช้ไดรเวอร์สเต็ปเปอร์มอเตอร์ขนาดเล็กที่ง่ายที่สุด l9110s หรือคุณสามารถใช้ชุดประกอบที่ใช้ L293\8 หรือตัวอื่นที่ทรงพลังพอๆ กันที่คุณพบ โดยทั่วไปแล้วฉันวาดทุกอย่างในภาพ
คุณสามารถซื้อส่วนประกอบสำหรับโครงการใน Aliexpress:
ตัวควบคุม WiFi ที่ใช้คือ NodeMCU 0.9 ESP8266 ที่ฉันชื่นชอบ แต่คุณสามารถใช้ WeMos D1 mini ที่เล็กกว่าได้
สามารถชาร์จแบตเตอรี่ได้ผ่านไมโคร USB หลังจากนั้นจะจ่ายไฟให้กับไดรเวอร์มอเตอร์โดยตรงและควบคุม WiFi ผ่านบูสต์คอนเวอร์เตอร์ 5V
รหัสโปรแกรม:
#รวม
const char* ssid = "ชื่อเครือข่าย Wi-Fi ของคุณ";
รหัสผ่าน const char* = "รหัสผ่านเครือข่ายของคุณ";
int ขึ้น = 2; //จำนวนเอาต์พุตที่ไม่ต่อเนื่อง
int ลง = 14;
int ซ้าย = 4;
int ขวา = 12;
// สร้างอินสแตนซ์ของเซิร์ฟเวอร์
// ระบุพอร์ตที่จะฟังเป็นอาร์กิวเมนต์
เซิร์ฟเวอร์เซิร์ฟเวอร์ WiFi (80);
การตั้งค่าเป็นโมฆะ () (
อนุกรมเริ่มต้น(9600);
ล่าช้า(10);
//กำลังเตรียมเอาท์พุต
pinMode(ขึ้น, เอาท์พุท);
digitalWrite (ขึ้น, 0);
pinMode (ลง, เอาต์พุต);
digitalWrite (ลง, 0);
pinMode (ซ้าย, เอาต์พุต);
digitalWrite (ซ้าย, 0);
pinMode (ขวา, เอาต์พุต);
digitalWrite (ขวา, 0);
// เชื่อมต่อกับเครือข่าย WiFi
อนุกรม.println();
อนุกรม.println();
Serial.print("กำลังเชื่อมต่อกับ ");
Serial.println(ssid);
WiFi.begin(ssid, รหัสผ่าน);
ในขณะที่ (WiFi.status() != WL_CONNECTED) (
ล่าช้า (500);
Serial.print(".");
}
Serial.println("");
Serial.println("เชื่อมต่อ WiFi");
//เริ่มเซิร์ฟเวอร์
เซิร์ฟเวอร์.เริ่มต้น();
Serial.println("เซิร์ฟเวอร์เริ่มทำงาน");
//ส่งออกที่อยู่ IP ไปยังมอนิเตอร์พอร์ต
Serial.println(WiFi.localIP());
}
เป็นโมฆะวน() (
//ตรวจสอบว่าไคลเอนต์เชื่อมต่ออยู่หรือไม่
ไคลเอนต์ WiFiClient = server.available();
ถ้า (!ลูกค้า) (
กลับ;
}
//รอจนกว่าลูกค้าจะส่งข้อมูลบางส่วน
Serial.println("ลูกค้าใหม่");
ในขณะที่(!client.available())(
ล่าช้า(1);
}
//อ่านบรรทัดแรกของคำขอ
String req = client.readStringUntil("\r");
Serial.println(ต้องการ);
ลูกค้า.ฟลัช();
//การประมวลผลคำสั่ง
ถ้า (req.indexOf("/gpio/up") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/down") != -1)(
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 1);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/left") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 1);
digitalWrite (ขวา, 0);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/right") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 1);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 0);
}
อื่น(
Serial.println("คำขอไม่ถูกต้อง");
}
ลูกค้า.ฟลัช();
//เตรียมการตอบรับ
String s = "HTTP/1.1 200 ตกลง\r\nประเภทเนื้อหา: text/html\r\n\r\n\r\n\r\n ";
ส += "
ขึ้น.
";
ส += "
ซ้าย ";
s += "ถูกต้อง
";
ส += "
ลง";
s += "\n";
//ส่งคำตอบให้กับลูกค้า
ลูกค้าพิมพ์(s);
ล่าช้า(1);
Serial.println("ไคลเอนต์ถูกตัดการเชื่อมต่อ");
) โปรแกรมเขียนด้วย Arduino IDE วิธีกำหนดค่า Arduino IDE ให้ทำงานกับคอนโทรลเลอร์ NodeMCU 0.9 ESP8266 ดูลิงค์ หลังจากโหลดโปรแกรมลงในคอนโทรลเลอร์แล้ว มอนิเตอร์พอร์ตสามารถอ่านที่อยู่ IP ที่บอร์ดจะได้รับหลังจากเชื่อมต่อกับเราเตอร์ WiFi ของคุณ ในเบราว์เซอร์คอมพิวเตอร์ของคุณคุณต้อง แถบที่อยู่ป้อนที่อยู่นี้และไปที่หน้าที่โปรแกรมคอนโทรลเลอร์จะสร้าง มันจะมีลักษณะเช่นนี้:
ลง
เมื่อคลิกลิงค์ UP รถจะเคลื่อนไปข้างหน้า 1 วินาทีแล้วหยุด เมื่อกด DOWN รถจะถอยหลัง 1 วินาที LEFT - มอเตอร์หมุนจะหมุนล้อไปทางซ้าย และรถจะขับไปทางซ้าย 1 วินาที ไปทางขวาเช่นเดียวกันเมื่อคุณกด RIGHT
ระบบทั้งหมดนี้ใช้งานได้กับจุดเชื่อมต่อ WiFi ที่กำหนดค่าไว้ (เราเตอร์ WiFi) เท่านั้น แต่ในอนาคตฉันสนใจที่จะเล่นกับคอนโทรลเลอร์ NodeMCU 0.9 ESP8266 ซึ่งจะจัดระเบียบจุดเชื่อมต่อและทำหน้าที่ของเว็บเซิร์ฟเวอร์ด้วยตัวมันเอง นั่นคือเมื่อเข้าถึง IP จากเบราว์เซอร์ เราจะเห็นหน้าเว็บพร้อมการควบคุม การจัดระเบียบการถ่ายโอนข้อมูลจากตัวควบคุมหนึ่งไปยังอีกตัวควบคุมหนึ่งผ่านเครือข่าย WiFi อัตโนมัติก็น่าสนใจเช่นกัน
ฉันเพิ่งตัดสินใจอัพเกรดรถจี๊ปของเล่นที่ควบคุมด้วยวิทยุของลูกชาย ตัวควบคุมวิทยุหยุดทำงานเกือบจะในทันที จากการชันสูตรพลิกศพพบว่า เครื่องยนต์ที่ติดตั้งในรถอ่อนแอเกินไปและงุ่มง่าม ฉันเปลี่ยนมอเตอร์ขับเคลื่อนหลักให้มีขนาดและกำลังที่ใหญ่กว่าทันที ในการทำเช่นนี้ ฉันต้องทำงานเป็นช่างแกะสลักโดยมีเลื่อยวงเดือนติดตั้งอยู่ (ฉันจะจัดสรรพื้นที่ให้เพียงพอได้อย่างไร) แผงรับสัญญาณวิทยุก็ถูกโยนทิ้งไปเช่นกัน
จากนั้นโดยไม่ต้องคิดซ้ำสอง แนวคิดก็ถูกเลือก การควบคุมระยะไกลทำตามตัวอย่างของรถแลนด์โรเวอร์ Mars: ได้รับคำสั่งแล้วรถจี๊ปก็ขับออกไปและหยุด ทั้งหมดเป็นเพราะความไม่แน่นอนที่ลูกชายวัย 2.5 ขวบของฉันจะสามารถควบคุมเครื่องยนต์ด้วยรีโมทคอนโทรลมาตรฐานได้ ฉันแน่ใจว่ามันจะควบคุมการควบคุมได้เป็นเวลานานไม่ว่าพฤติกรรมของเครื่องจะเป็นอย่างไร และหลักการของรถแลนด์โรเวอร์ Mars: ขับไป 20 ซม. แล้วหยุดก็ค่อนข้างเหมาะสม ยิ่งไปกว่านั้น ฉันใฝ่ฝันที่จะลองใช้มันมานานแล้ว อย่างน้อยก็ในรูปแบบที่ง่ายที่สุด ในการใช้งานนี้ เราจะไม่เดินทาง 20 ซม. แต่เป็นเวลา 1 วินาที
ดังนั้นเราจะควบคุมเครื่องยนต์ที่พลิกกลับได้ (หมุนได้ทั้งสองทิศทาง) สองเครื่องยนต์: เครื่องยนต์หลักและพวงมาลัย เราจะจ่ายไฟให้กับพวกมันจากแบตเตอรี่ 3.7 V แต่โดยหลักการแล้วคุณสามารถจ่ายไฟได้สูงสุด 12 V หากคุณประสานแหล่งจ่ายไฟของคอนโทรลเลอร์หรือจัดระเบียบด้วยแบตเตอรี่แยกต่างหาก
ในส่วนของกำลัง เราใช้อันจิ๋วที่ง่ายที่สุดหรืออันทรงพลังพอ ๆ กันที่คุณพบ โดยทั่วไปแล้วฉันวาดทุกอย่างในภาพ
สามารถชาร์จแบตเตอรี่ได้ผ่านไมโคร USB หลังจากนั้นจะจ่ายไฟให้กับไดรเวอร์มอเตอร์โดยตรงและควบคุม WiFi ผ่านทาง
รหัสโปรแกรม:
#รวม
const char* ssid = "ชื่อเครือข่าย Wi-Fi ของคุณ";
รหัสผ่าน const char* = "รหัสผ่านเครือข่ายของคุณ";
int ขึ้น = 2; //จำนวนเอาต์พุตที่ไม่ต่อเนื่อง
int ลง = 14;
int ซ้าย = 4;
int ขวา = 12;
// สร้างอินสแตนซ์ของเซิร์ฟเวอร์
// ระบุพอร์ตที่จะฟังเป็นอาร์กิวเมนต์
เซิร์ฟเวอร์เซิร์ฟเวอร์ WiFi (80);
การตั้งค่าเป็นโมฆะ () (
อนุกรมเริ่มต้น(9600);
ล่าช้า(10);
//กำลังเตรียมเอาท์พุต
pinMode(ขึ้น, เอาท์พุท);
digitalWrite (ขึ้น, 0);
pinMode (ลง, เอาต์พุต);
digitalWrite (ลง, 0);
pinMode (ซ้าย, เอาต์พุต);
digitalWrite (ซ้าย, 0);
pinMode (ขวา, เอาต์พุต);
digitalWrite (ขวา, 0);
// เชื่อมต่อกับเครือข่าย WiFi
อนุกรม.println();
อนุกรม.println();
Serial.print("กำลังเชื่อมต่อกับ ");
Serial.println(ssid);
WiFi.begin(ssid, รหัสผ่าน);
ในขณะที่ (WiFi.status() != WL_CONNECTED) (
ล่าช้า (500);
Serial.print(".");
}
Serial.println("");
Serial.println("เชื่อมต่อ WiFi");
//เริ่มเซิร์ฟเวอร์
เซิร์ฟเวอร์.เริ่มต้น();
Serial.println("เซิร์ฟเวอร์เริ่มทำงาน");
//ส่งออกที่อยู่ IP ไปยังมอนิเตอร์พอร์ต
Serial.println(WiFi.localIP());
}
เป็นโมฆะวน() (
//ตรวจสอบว่าไคลเอนต์เชื่อมต่ออยู่หรือไม่
ไคลเอนต์ WiFiClient = server.available();
ถ้า (!ลูกค้า) (
กลับ;
}
//รอจนกว่าลูกค้าจะส่งข้อมูลบางส่วน
Serial.println("ลูกค้าใหม่");
ในขณะที่(!client.available())(
ล่าช้า(1);
}
//อ่านบรรทัดแรกของคำขอ
String req = client.readStringUntil("\r");
Serial.println(ต้องการ);
ลูกค้า.ฟลัช();
//การประมวลผลคำสั่ง
ถ้า (req.indexOf("/gpio/up") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/down") != -1)(
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 1);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/left") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 1);
digitalWrite (ขวา, 0);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 0);
}
อย่างอื่นถ้า (req.indexOf("/gpio/right") != -1)(
digitalWrite (ขึ้น, 1);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 1);
ล่าช้า (1,000);
digitalWrite (ขึ้น, 0);
digitalWrite (ลง, 0);
digitalWrite (ซ้าย, 0);
digitalWrite (ขวา, 0);
}
อื่น(
Serial.println("คำขอไม่ถูกต้อง");
}
ลูกค้า.ฟลัช();
//เตรียมการตอบรับ
String s = "HTTP/1.1 200 ตกลง\r\nประเภทเนื้อหา: text/html\r\n\r\n\r\n\r\n ";
ส += "
ขึ้น.
";
ส += "
ซ้าย ";
s += "ถูกต้อง
";
ส += "
ลง";
s += "\n";
//ส่งคำตอบให้กับลูกค้า
ลูกค้าพิมพ์(s);
ล่าช้า(1);
Serial.println("ไคลเอนต์ถูกตัดการเชื่อมต่อ");
) โปรแกรมเขียนด้วย Arduino IDE คอนโทรลเลอร์ NodeMCU 0.9 ESP8266 ซึ่งจะจัดระเบียบจุดเข้าใช้งานและทำหน้าที่ของเว็บเซิร์ฟเวอร์นั่นคือเมื่อคุณเข้าถึง IP จากเบราว์เซอร์เราจะเห็นหน้าเว็บพร้อมการควบคุม การจัดระเบียบการถ่ายโอนข้อมูลจากตัวควบคุมหนึ่งไปยังอีกตัวควบคุมหนึ่งผ่านเครือข่าย WiFi อัตโนมัติก็น่าสนใจเช่นกัน