Codec for P.O.T.S
โทรศัพท์ 2.0: สร้าง Codec P.O.T.S. ที่ทันสมัย
Plain Old Telephone Service (P.O.T.S.) ยังคงเป็นรากฐานสำคัญของประวัติศาสตร์การสื่อสาร แต่โปรโตคอลดั้งเดิมของมัน—เช่น DTMF (Dual-Tone Multi-Frequency)—ก็ยังคงนำเสนอโซลูชันที่มีความน่าเชื่อถือสูงสำหรับการส่งสัญญาณระยะไกล โปรเจกต์นี้ใช้ Espruino Pico และ Codec ที่เขียนด้วย JavaScript แบบกำหนดเอง เพื่อเชื่อมต่อฮาร์ดแวร์อะนาล็อกแบบเก่าเข้ากับหลักการซอฟต์แวร์อุตสาหกรรมสมัยใหม่
ข้อดีของ JavaScript กับ Espruino Pico
แตกต่างจากบอร์ด Arduino ที่ใช้ C++ ทั่วไป Pico รัน Espruino ซึ่งเป็นตัวแปลภาษา JavaScript ที่ถูกปรับให้เบาลงสำหรับไมโครคอนโทรลเลอร์:
- Interpretive Agility: JavaScript ช่วยให้สามารถสร้างต้นแบบได้อย่างรวดเร็วสำหรับตรรกะที่ซับซ้อนที่อ้างอิงสตริงและการสื่อสารแบบ JSON ซึ่งเหมาะอย่างยิ่งสำหรับการ "แปล" สัญญาณปุ่มกดโทรศัพท์ให้เป็นข้อมูลที่ใช้งานง่ายบนเว็บ
- Micro-Software Stacking: โปรเจกต์นี้นำเสนอแนวคิด "Stacking" — การสร้างเลเยอร์ฟังก์ชันการทำงานที่ทำงานแยกกันได้ (drivers, logic, communication) ซึ่งสามารถจัดเรียงใหม่ได้อย่างง่ายดาย นี่คือก้าวไปสู่ Industrial Programming ซึ่งเน้นความยืดหยุ่นของโมดูลมากกว่าโค้ดเบสแบบ "monolithic"
- Low Power Consumption: Pico ได้รับการออกแบบมาเพื่อประสิทธิภาพสูง ทำให้เหมาะสำหรับอุปกรณ์ "Listener" ที่เปิดใช้งานตลอดเวลา ซึ่งซ่อนอยู่ในกล่องรวมสายโทรศัพท์
อินเทอร์เฟซดิจิทัลเป็นอะนาล็อก: การแฮ็ก RJ-45
แม้ว่าโทรศัพท์จะใช้ RJ-11 ที่มีขนาดเล็กกว่า แต่โปรเจกต์นี้ใช้ RJ-45 connector เพื่อเชื่อมต่อกับสายสื่อสารแบบ serial และ analog ที่หลากหลายมากขึ้น:
- DTMF Signal Decoding: ซอฟต์แวร์ต้องระบุคลื่นไซน์สองคลื่นที่เฉพาะเจาะจง ("Low Group" และ "High Group") ซึ่งประกอบกันเป็นแต่ละปุ่มบนแป้นกดโทรศัพท์
- Logic Logic Mapping: ภายใน JavaScript codec อักขระเช่น '*' หรือ '#' สามารถตั้งโปรแกรมให้กระตุ้นการทำงานของซอฟต์แวร์สมัยใหม่ได้ เช่น การรีเซ็ตเซิร์ฟเวอร์ หรือการสอบถามฐานข้อมูล IoT
- Security Obfuscation: ด้วยการย้าย "Software Platform" ไปยัง codec แบบกำหนดเอง แทนที่จะเป็นไลบรารีมาตรฐาน โปรเจกต์นี้รับประกันชั้น "Security through Obscurity" ซึ่งเป็นรูปแบบความปลอดภัยที่สอดคล้องกันในระบบอุตสาหกรรม
จากงานอดิเรกสู่อุตสาหกรรม
โปรเจกต์นี้ออกแบบมาเพื่อ "ยกระดับนักเล่นอดิเรกไปอีกขั้น" โดยลดความพึงพอใจในทันที เพื่อแลกกับ ความสอดคล้อง (Consistency) และความปลอดภัย (Security) มันแสดงให้เห็นว่าวิธีการสื่อสารแบบเก่า เมื่อถูกห่อหุ้มด้วย JavaScript codec ที่ทันสมัย ก็ยังคงสามารถนำเสนอโซลูชันการควบคุมที่แข็งแกร่งและใช้แบนด์วิธต่ำสำหรับโครงสร้างพื้นฐานอัจฉริยะในอนาคตได้
โปรเจกต์นี้แบ่งออกเป็นสามส่วน โดยมีเจตนาที่จะยกระดับนักเล่นอดิเรกไปอีกขั้น ซอฟต์แวร์ส่วนใหญ่ต้องการการพัฒนาในระดับที่สอง อย่างไรก็ตาม แม้ว่าจะลดความพึงพอใจในทันทีลงไปบ้าง แต่ก็ช่วยให้แพลตฟอร์มซอฟต์แวร์มีความปลอดภัยที่สอดคล้องกัน ดังนั้น โปรแกรมจึงนำโทรศัพท์ที่ใช้กันทั่วไปมาปรับให้เป็นโปรเจกต์ซอฟต์แวร์สมัยใหม่
ที่นี่ เราแนะนำแนวคิดของ Stacking ไม่ต้องสงสัยเลยว่ามันเป็นจุดเริ่มต้นของ Industrial Programming ดังนั้นในเชิงแนวคิด เราควรจำกัดให้อยู่ในทิศทางเชิงตรรกะของมัน นี่คือแนวคิดของไมโครซอฟต์แวร์และช่วยให้การรวมระบบง่ายขึ้น
ผมได้เขียนโปรเจกต์นี้ด้วย JavaScript โดยมีเจตนาที่จะเกี่ยวข้องกับการแปลซอฟต์แวร์