ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

ประเด็นหลักหรือบทความนี้เกี่ยวกับอะไร

Тเนื่องจากความสนใจของผู้คนแตกต่างกันและผู้คนมีเวลาน้อยจึงสรุปเนื้อหาของบทความโดยสังเขป

Сบทความนี้เป็นภาพรวมของโครงการคอนโทรลเลอร์ที่มีราคาและความสามารถขั้นต่ำ การเขียนโปรแกรมภาพ ผ่านทางเว็บเบราว์เซอร์

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

Рแรงจูงใจ แนวคิด และผลลัพธ์ของการสร้างตัวควบคุมที่ใช้ชิป WiFI ได้รับการพิจารณา ESP8266.

คำเตือน

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

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

ฉันขอเตือนคุณทันทีว่าฉันจะไม่อธิบายว่ามัลติคาสต์ MQTT, WiFi และ UDP คืออะไร และสิ่งอื่น ๆ ที่ไม่เกี่ยวข้องโดยตรงกับหัวข้อนี้ มีลิงค์อยู่ท้ายบทความ

การกำเนิดของความคิดหรือเนื้อเพลงบางอย่าง

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

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

Нโอ้ เนื่องจากฉันสามารถทำงานเฉพาะกับท่อ ถัง และก๊อกได้อย่างเต็มที่ในช่วงวันหยุด ซึ่งยังอีกนานกว่าหกเดือน ทุกอย่างจึงถูกจำกัดอยู่เพียงการพูดคุยในที่ทำงานกับเพื่อนร่วมงาน เพื่อนฝูง และสหายในสภาพแวดล้อมที่ไม่เป็นทางการ

Тหัวข้อของ "ระบบอัตโนมัติขนาดเล็ก" หรืออย่างที่พวกเขามักพูดกันในหมู่ "แฮ็กเกอร์เด็กนักเรียน - ฮิปสเตอร์เหล่านี้" - หัวข้อของ IoT - Internet of Things - ทำให้ฉันสนใจมานานแล้ว นานมาแล้วก่อนที่อินเทอร์เน็ตจะถูกนำมาใช้อย่างแพร่หลาย

Еแม้กระทั่งตอนเป็นเด็ก ฉันอยากให้สิ่งต่างๆ ทำบางสิ่งบางอย่าง "ด้วยตัวเอง" และเป็นการดีที่ฉันสามารถควบคุมพวกมันได้จากระยะไกล แต่ในเวลานั้น (ยุค 80 ต้นยุค 90 ของสหัสวรรษที่ผ่านมา) สิ่งนี้ค่อนข้างยาก อินเทอร์เน็ตไม่สามารถใช้ได้แพร่หลายทุกที่ในโลก เช่นเดียวกับที่ไม่มีโทรศัพท์มือถือ แท็บเล็ต หรือแม้แต่จอ LCD หรือแฟลชไดรฟ์ USB ทุกที่ ดังนั้นเราจึงต้องจำกัดตัวเองอยู่แค่ "สวิตช์ไฟตบมือ" และรีโมทคอนโทรลแบบวิทยุธรรมดา แต่สำหรับสมัยนั้นและยุคนั้นก็ไม่แย่และน่าสนใจ

Нโอ้ สิ่งเหล่านี้คือเรื่องในอดีต ตอนนี้ก็เข้าสู่ศตวรรษที่ 15 แล้ว และทุกคนก็มีสมาร์ทโฟนอยู่ในกระเป๋า มีอินเทอร์เน็ตให้บริการเกือบทุกที่ที่จำเป็นและไม่จำเป็น และฐานของส่วนประกอบอิเล็กทรอนิกส์ที่มีอยู่ในปัจจุบันก็เป็นเช่นนั้น เมื่อ XNUMX ปีที่แล้ว ประชากรโดยเฉลี่ยของโลกไม่เคยฝันถึงมันมาก่อน .

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

Пเมื่อดำดิ่งลงไปในโลกมหัศจรรย์ของโปรเจ็กต์สำหรับ ESP8266 ฉันรู้สึกประหลาดใจที่พบว่าแม้จะมีความสามารถที่ยอดเยี่ยมของชิปตัวนี้ แต่โปรเจ็กต์บนนั้นก็ถูกแบ่งออกเป็นสองประเภทโดยมีข้อยกเว้นที่หายาก: เหล่านี้เป็นโปรแกรมดั้งเดิมอย่างยิ่งเช่น "คลิก การสลับจากสมาร์ทโฟนของคุณและดูสถานะอุณหภูมิเซ็นเซอร์ผ่านทางอินเทอร์เน็ต"; หรือล่าม JavaScript หรือ Lua ที่ดีและมั่นคง แต่น่าเสียดายที่พวกมันใช้หน่วยความจำเกือบทั้งหมดและไม่อนุญาตให้คุณทำอะไรร้ายแรง

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

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

Нภาพที่น่าสะพรึงกลัวของจำนวนพารามิเตอร์การตั้งค่า และแม้แต่สิ่งที่มีอิทธิพลต่อกันและกัน ก็ทำให้ฉันสติแตก ฉันตระหนักอีกครั้งว่าคุณไม่สามารถคาดเดาทุกสิ่งได้...

Сฉันจะจองครั้งเดียว: ฉันขี้เกียจ. ขี้เกียจมาก! จริงๆ แล้วฉันขี้เกียจเกินไปที่จะเขียนโปรแกรมใหม่ทุกครั้ง ดังนั้นงานจึงเกิดขึ้น - จะตั้งค่าอัลกอริธึมอย่างรวดเร็วและง่ายดายได้อย่างไรโดยไม่ต้องเขียนโปรแกรม? นอกจากนี้อัลกอริธึมนี้จะค่อนข้างซับซ้อน จะมีพารามิเตอร์มากมาย จะเฉพาะเจาะจงกับกรณีของฉันและไม่เหมาะสมกับผู้อื่น และฉันต้องการทำให้อุปกรณ์เป็นสากลมากขึ้นหรือน้อยลง...

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

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

Иแนวคิดในการกำหนดอัลกอริทึมโดยการวาดเป็นรูปสี่เหลี่ยมไม่ใช่เรื่องใหม่ ระบบดังกล่าวมีย้อนกลับไปในยุค 80; ขณะนี้มีระบบ NodeRed ที่ได้รับความนิยมอย่างมาก ซึ่งเป็นที่รู้จักกันดีสำหรับผู้ที่ได้เข้าร่วมโลกแห่งระบบอัตโนมัติ/IoT ขนาดเล็กแล้ว

Нโอ้ นี่คือปัญหา: ระบบดังกล่าวได้รับการออกแบบมาสำหรับ "พีซีขนาดใหญ่" ที่แย่ที่สุด - บน Raspberry PI แต่ไม่ใช่ใน ESP8266 ซึ่งมี RAM เพียงไม่กี่สิบกิโลไบต์และไม่มีระบบปฏิบัติการ!

Кจะทำอย่างไร? และมีเพียงสองวิธีเท่านั้น: เขียนและวาดโปรแกรมบน "พีซีขนาดใหญ่" หรือแล็ปท็อปจากนั้นถ่ายโอนในรูปแบบใดรูปแบบหนึ่งไปยัง ESP8266 หรือลอง "ยัดสิ่งที่เป็นไปไม่ได้" ลงในคอนโทรลเลอร์ ESP8266 เอง

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

Иปรากฏว่าเป็นไปได้ที่จะนำสิ่งนี้ไปใช้!
ฉันจะไม่ทำให้คุณเบื่อกับรายละเอียดทั้งหมดของการพัฒนาโครงการ ฉันจะพูดเพียงว่าตามคำพูดที่เข้ามาในความคิดและลิ้นของฉันในระหว่างกระบวนการพัฒนามันเป็นไปได้ที่จะเขียนแยกกัน”พจนานุกรมภาษาลามกอนาจารที่ใช้โดยคนงานในอุตสาหกรรมอิเล็กทรอนิกส์" แต่มันจบแล้ว แม่นยำยิ่งขึ้นไม่ใช่ทุกอย่าง แต่เป็นขั้นตอนแรกที่ยากที่สุดเมื่อไม่ชัดเจนว่าความคิดในการใช้ชีวิตของคุณจะอยู่ตรงนั้นหรือเป็นเพียงความเพ้อเจ้อของการขันเกลียวสีเทาในคืนเดือนหงาย

Пฉันจะแบ่งปันผลลัพธ์ของสิ่งที่ออกมาและได้ชื่อ "ผู้ควบคุมชิโอไทนี่".

แล้วเกิดอะไรขึ้น?

ส่วนฮาร์ดแวร์ ตัวควบคุม ShIoTiny เป็นมาตรฐานและเรียบง่าย: อินพุต 22 ช่องที่ออกแบบมาสำหรับเซ็นเซอร์ประเภท "สัมผัสแห้ง" (ปุ่ม สวิตช์กก และยังเป็นเซ็นเซอร์ระดับน้ำในถังด้วย) อินพุต ADC หนึ่งช่อง อินพุตหนึ่งช่องสำหรับเชื่อมต่อเซ็นเซอร์อุณหภูมิและความชื้นของ ประเภท DHT220 หรือคล้ายกัน และสุดท้ายมีเอาต์พุตสามเอาต์พุตในรูปแบบของสวิตช์รีเลย์สำหรับไฟ 1 โวลต์ 10 แอมแปร์ รีเลย์บอกว่า 10A แต่ฉันเป็นคนสัจนิยมและจะไม่อนุญาตให้ใช้ 1Amps ผ่านบอร์ด และเพื่อควบคุมสตาร์ทเตอร์ของปั๊ม 5Amp ก็เพียงพอแล้ว ทั้งหมดนี้ใช้พลังงานจากแหล่งพลังงานที่มีแรงดันไฟฟ้า 9 ถึง XNUMX โวลต์

Чพูดตามตรงฉันได้เพิ่มเซ็นเซอร์อุณหภูมิแบบนั้น แต่ใน ADC ฉันหวังว่าจะวัดแรงดันไฟฟ้าของเครือข่ายจ่ายไฟ ใครจะรู้?

Рแน่นอนว่าอินพุตทั้งหมดยกเว้นอินพุตสำหรับเชื่อมต่อ DHT22 ได้รับการปกป้องโดยตัวต้านทานและไดโอด: ฉันไม่ต้องการเผา ESP8266 และไดโอดและตัวต้านทานมีราคาเพียงไม่กี่ kopeck

Фото สามารถดูผลิตภัณฑ์สำเร็จรูปได้ที่ตอนต้นของบทความ ฉันสั่งบอร์ดเหล่านี้หลายอัน - จะเกิดอะไรขึ้นถ้าฉันเผามันหรือต้องตัดขาราง?
แต่โชคดีที่ฉันไม่จำเป็นต้องทำ

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

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

Вแทนที่จะเป็นเซ็นเซอร์ระดับจะมีปุ่ม Input1..3 แทนที่จะเป็นสตาร์ทเตอร์จะมีไฟ LED เชื่อมต่อกับรีเลย์ Relay1..3 ตัวต้านทานปรับค่าได้บน ADC เพื่อจำลองแรงดันไฟฟ้าขาเข้า
Кเมื่อรีเลย์ดับ ไฟ LED สีแดงจะสว่างขึ้น และเมื่อเปิดอยู่จะเป็นสีเขียว ดังนั้นฉันจึงแก้ไขมันบนโต๊ะ

Кนอกจากนี้ ยังมีขั้วต่อสายไฟที่ด้านซ้ายของบอร์ด และปุ่มบริการสองปุ่มทางด้านขวา: รีเซ็ตและ AP มีสวิตช์ DIP ที่เปลี่ยนอุปกรณ์เป็นโหมดการเขียนโปรแกรม นอกจากนี้ยังมีตัวเชื่อมต่อการเขียนโปรแกรม ESP8266 ผ่านอะแดปเตอร์ USB-UART อีกด้วย

คำอธิบายบางประการเกี่ยวกับปุ่มต่างๆ อะไร รีเซ็ต - และมันก็ชัดเจน และนี่คือปุ่ม AP จำเป็นต้องแปล ชิโอไทนี่ เพื่อเปิดโหมดจุดเข้าใช้งาน (โหมดการกำหนดค่าหรือโหมดการกำหนดค่า) เหตุใดจึงจำเป็น? ตัวอย่างเช่น คุณทำให้การตั้งค่าเครือข่ายของคุณเลอะเทอะและต้องการเปลี่ยนแปลง กดปุ่ม AP สักครู่ (จนกระทั่งไฟ LED สีฟ้าสวยงามสว่างขึ้น) จากนั้น หยิบสมาร์ทโฟนหรือแล็ปท็อปของคุณ เปิด WiFi และเห็นจุดเชื่อมต่อแบบเปิดที่นั่นชื่อ esp_8266_xxxx แล้วเชื่อมต่อเข้ากับมัน จากนั้นไปที่เบราว์เซอร์ของสมาร์ทโฟนหรือแล็ปท็อปของคุณแล้วพิมพ์แถบที่อยู่: 192.168.4.1 หากทุกอย่างเป็นไปตามลำดับ คุณจะถูกนำไปที่หน้าตัวควบคุม ShIoTiny และสามารถกำหนดค่าได้อีกครั้ง

Кอย่างที่เราเห็นแล้วว่าฮาร์ดแวร์นั้นไม่มีอะไรซับซ้อน ดังนั้นโอ้ ส่วนซอฟต์แวร์.

Вฉันจะอธิบายลักษณะเฉพาะทั้งหมดของการใช้งาน แต่ในภายหลัง สักวันหนึ่ง. และวันนี้ฉันจะพิจารณาซอฟต์แวร์เฉพาะ "จากภายนอก" เท่านั้นนั่นคือจากมุมมองของผู้ใช้ - ตัวฉันเองหรือคนอื่นที่เสี่ยงต่อการใช้งานฝีมือของฉัน (มีสตั๊นต์แมนเช่นกัน)

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

Иดังนั้นเราจึงไปที่หน้าตัวควบคุม เราเห็นอะไร? และเราจะเห็นแท็บ "การควบคุมและสถานะ" ซึ่งแสดงสถานะปัจจุบันของอุปกรณ์ที่ใช้: อินพุต, เอาต์พุต, ADC, DHT22 นอกจากนี้จะแสดงพารามิเตอร์การเชื่อมต่อกับจุดเข้าใช้งาน (หากเรากำลังทำงานในโหมดสถานี WiFi) พารามิเตอร์จุดเข้าใช้งาน (หากเรากำลังทำงานในโหมดจุดเข้าใช้งาน WiFi) หรือทั้งสองอย่าง นอกจากนี้ พารามิเตอร์การเชื่อมต่อกับโบรกเกอร์ MQTT จะแสดงขึ้นหากใช้โปรโตคอล MQTT

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

Кอย่างที่เราเห็นไม่มีอะไรพิเศษหรือน่าสนใจ ไม่มีอะไรให้คลิกเลย! แม้ว่า... ยังมีอีกสองแท็บ! การกำหนดการตั้งค่าเครือข่าย ระบบเครือข่าย และโปรแกรมแก้ไขวงจรโปรแกรม เอลวาด.

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

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

Пให้เราแสดงรายการโหมดการทำงานเหล่านี้โดยย่อ

โหมดกำหนดค่า — โหมดการกำหนดค่า นี่คือโหมดจุดเข้าใช้งานแบบเปิดซึ่งมีที่อยู่คงที่ 192.168.4.1 และชื่อ esp_8266_xxxx

โหมดสถานี — โหมดของสถานี WiFi ที่เชื่อมต่อกับจุดเข้าใช้งานของคุณ

โหมด AP — โหมดจุดเข้าใช้งานแบบปิด คุณตั้งชื่อและรหัสผ่านด้วยตัวเอง

โหมด AP+สถานี - นี่คือการเปิดใช้งานโหมด AP + โหมดสถานีพร้อมกัน

โหมดเดียว — ทำงานโดยไม่ต้องเชื่อมต่อเครือข่ายเลย ผู้ควบคุมผู้โดดเดี่ยวแบกรับส่วนแบ่งอันหนักหน่วงของเขา...

В โหมดใดก็ได้ยกเว้น "โหมดการกำหนดค่า"คุณสามารถบล็อกเว็บเพจได้โดยทำเครื่องหมายที่ช่อง "ล็อคเว็บในโหมดสถานี". นี่เป็นเหตุผลด้านความปลอดภัย

Нการตั้งค่า MQTT นั้นชัดเจน: เซิร์ฟเวอร์ พอร์ต รหัสผ่าน การเชื่อมต่อแบบเปิด หรือโดย SSL. ฉันจะไม่ลงรายละเอียดที่นี่

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

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

Тโดยแตะที่แท็บ เอลวาดเราจะเห็นสิ่งต่อไปนี้ แน่นอนว่าหากอุปกรณ์ไม่มีวงจรโหลด สนามวงจรจะว่างเปล่า

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

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

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

Еนอกจากนี้ยังมีการปรับขนาด (SHIFT+ล้อเมาส์) ขออภัย ไม่สามารถคัดลอกองค์ประกอบและกลุ่มขององค์ประกอบได้ แต่สิ่งนี้ไม่ได้รบกวนฉันมากนัก

Кนอกจากนี้ ด้วยเหตุผลด้านตรรกะ อินพุตของโหนดสามารถเชื่อมต่อกับเอาต์พุตเดียวของโหนดอื่นได้เท่านั้น แต่เอาต์พุตของโหนดจะมีอินพุตหลายโหนดจากโหนดอื่นๆ ทางเข้าจะอยู่ทางด้านซ้ายของโหนดเสมอ ทางออกจะอยู่ทางขวาเสมอ

Кเรามีความสามารถอะไรบ้างในการใช้อัลกอริทึม?
Вความเป็นไปได้ค่อนข้างกว้างขวาง จานสีประกอบด้วยโหนดที่แสดงถึงฮาร์ดแวร์คอนโทรลเลอร์ทั้งหมด ชิโอไทนี่: อินพุต, รีเลย์, ADC, DHT11/22

Дมีโหนดตรรกะและเลขคณิตสำหรับการประมวลผลข้อมูล

Чเพื่อให้เราสามารถทำงานกับอุปกรณ์ผ่านทางอินเทอร์เน็ตได้ มีโหนดสำหรับการสมัครและเผยแพร่พารามิเตอร์บนโบรกเกอร์ MQTT

Еหากเราต้องการให้ตัวควบคุม ShIoTiny หลายตัวแลกเปลี่ยนข้อมูลระหว่างกัน เราสามารถใช้โหนดสำหรับส่งและรับพารามิเตอร์โดยใช้โปรโตคอล UDP multicast

Кนอกจากนี้ยังมีโหนดจับเวลา โหนดควบคุมการประมวลผลเหตุการณ์

Пฉันจะยกตัวอย่างให้คุณฟัง ตัวอย่างเช่น คุณต้องการให้เผยแพร่ข้อมูลอุณหภูมิและความชื้นไปยังเซิร์ฟเวอร์ MQTT ทุก ๆ 30 นาทีหรือไม่ ไม่มีอะไรจะง่ายไปกว่านี้อีกแล้ว มาวาดแบบนี้กัน

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

Жปุ่ม meme “อัปโหลด” ทั้งหมด!
Еหากคุณได้กำหนดค่าการเชื่อมต่อกับโบรกเกอร์ MQTT อย่างถูกต้องบนแท็บเครือข่าย แค่นั้นเอง!
Кทุกครึ่งชั่วโมง อุณหภูมิจะประกาศบนนายหน้าภายใต้หัวข้อ /T และความชื้น - ภายใต้หัวข้อ /H หรือถ้าคุณตั้งชื่อหัวข้อของคุณเองก็ให้อยู่ด้านล่าง
Зคำถามที่ชัดเจนคือ ทำไม 18000 ถึง 30 นาที? เพราะเวลาทั้งหมดวัดกันเป็นสิบวินาที

Тตอนนี้คุณต้องการเพิ่มความสามารถในการเปิดรีเลย์ Relay1 ผ่านทางอินเทอร์เน็ตให้กับโครงร่างนี้และแม้กระทั่งในช่วงเวลาหนึ่งหรือไม่? ไม่มีปัญหา. มาวาดรูปให้สมบูรณ์แบบนี้

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

Оห้าคลิกปุ่ม "อัปโหลด" ทั้งหมด! ตอนนี้ นอกเหนือจากข้อเท็จจริงที่ว่าอุณหภูมิและความชื้นจะถูกเผยแพร่บนโบรกเกอร์ MQTT ทุก ๆ ครึ่งชั่วโมง ยังสามารถเปิดรีเลย์ Relay1 ได้อีกด้วย ใช่ ไม่ใช่แค่เปิดเครื่อง แต่เป็นเวลา 10 นาทีพอดี คุณสามารถเปิดใช้งานรีเลย์ได้โดยการเผยแพร่หัวข้อ /r1cmd โดยตั้งค่าเป็น 1 และสถานะที่แท้จริงของรีเลย์จะถูกเผยแพร่ในหัวข้อ /r1status

Вคุณไม่เพียงต้องการเปิดเครื่อง แต่ยังปิดรีเลย์ก่อนกำหนดด้วยหรือไม่? ใช่สิ่งที่คุณพูด รูปภาพด้านล่างแสดงวิธีการทำเช่นนี้!

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

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

Кอย่างไรก็ตาม การเน้นการเชื่อมต่อด้วยสีต่างๆ ไม่ใช่ "Photoshop" แต่เป็นหนึ่งในฟังก์ชันของโปรแกรมแก้ไข คุณสามารถระบายสีการเชื่อมต่อได้ตามที่คุณต้องการเพื่อไม่ให้สับสน

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

ShioTiny: ระบบอัตโนมัติขนาดเล็ก, Internet of Things หรือ “หกเดือนก่อนวันหยุด”

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

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

บินในครีม

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

Вประการแรก บางครั้งข้อผิดพลาดจะปรากฏขึ้นเมื่อย้ายองค์ประกอบในกลุ่ม แต่ก็ไม่ได้รบกวนการทำงานมากนัก มี "คุณลักษณะ" มากกว่า "ข้อบกพร่อง"

Иประการที่สองภายใต้เงื่อนไขบางประการหลังจากโหลดวงจรลงในอุปกรณ์โดยใช้ปุ่ม "อัปโหลด" วงจรจะรีบูต สิ่งนี้ไม่รบกวนชีวิต แต่จำเป็นต้องอัปเดตหน้าตัวแก้ไข

ข้อสรุป

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

Нโอ้ ในความคิดของฉัน ปริมาณของบทความเกินขีดจำกัดที่สมเหตุสมผลทั้งหมด ดังนั้นฉันจะจบวันนี้
Пฉันขอบอกว่าเหลือเวลาเพียงไม่กี่สัปดาห์ก่อนวันหยุดพักร้อน และฉันค่อนข้างพร้อมที่จะเปลี่ยนจากการดีบักคอนโทรลเลอร์ที่โต๊ะเป็นการดีบัก "ในภาคสนาม"
Еหากใครสนใจแนวคิดหรือรายละเอียดการพัฒนาของฉัน โปรดเขียนถึงฉัน: [ป้องกันอีเมล]

Вฉันยินดีเสมอที่ได้รับความคิดเห็นและคำวิจารณ์หากเกี่ยวข้องแน่นอน

Жยินดีรับข้อเสนอแนะความคิดเห็นและข้อเสนอแนะของคุณ

ลิงค์ ข้อมูลอ้างอิง และพัสดุ

ESP8266
อินเตอร์เน็ตไร้สาย
MQTT
UDP มัลติคาสต์

ตามคำร้องขอของคนงาน

Вฉันกำลังโพสต์เอกสารดิบและเฟิร์มแวร์ (ไบนารี่)

https://github.com/shiotiny/ShIoTinyBin

เฟิร์มแวร์: https://github.com/shiotiny/ShIoTinyBin/blob/master/bin/esp-07-shiotiny.bin

การขับขี่: https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/esp-07-shiotiny.png

คำอธิบายของส่วนประกอบและคำอธิบายโดยย่อ: https://github.com/shiotiny/ShIoTinyBin/blob/master/doc/ShIoT-esp8266-nodes.pdf

คำแนะนำ "วิธีการเย็บ" อยู่ที่นั่น

ที่มา: will.com

เพิ่มความคิดเห็น