depa Teacher Boost camp โครงการพฒั นาทกั ษะแหง่ ศตวรรษที่ 21 เพือ่ คณุ ครู หน้า 50
โดยคาส่ัง serial on data received ถ้าเปิดในโหมด Java Script จะสามารถปรับแต่งค่าข้อมูลที่
ต้องการตรวจสอบ เพื่อให้เกิดเหตุการณ์ได้ สาหรับโมดูลวัดฝุ่นละอองจะมีอักขระ BM ส่งมาก่อนข้อมูลอื่นๆ
เสมอดงั นนั้ ข้อมลู ทีต่ อ้ งการตรวจจับคอื BM มีขั้นตอนในการเรียกใชง้ านดังนี้
1. ส่วนหวั ของ MakeCode ให้เลอื กเปล่ียนเป็นโหมด JavaScript
2. เลือกชุดคาส่ัง Serial
3. ลากชดุ คาสัง่ onDataReceived วางทส่ี ว่ นการเขียนโคด้
4. จ ะ พ บ ชุ ด รู ป แ บ บ ค า สั่ ง ข อ ง onDataReceived ป ร า ก ฎ ข้ึ น
สว่ น serial.delimiters(Delimiters.NewLine)
คอื สว่ นท่เี ราจะปรบั เปล่ยี น
5. แก้ในสว่ นนใ้ี หก้ ลายเปน็ “BM”
โรงเรียนบา้ นสันปา่ สัก อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพัฒนาทกั ษะแห่งศตวรรษที่ 21 เพือ่ คณุ ครู หนา้ 51
6. เม่อื กลบั มาที่ Blocks ตวั กรองในการรอรับค่าจะกลายเปน็ “BM”
โรงเรียนบา้ นสันปา่ สัก อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพฒั นาทกั ษะแหง่ ศตวรรษที่ 21 เพ่อื คณุ ครู หนา้ 52
การกาหนดค่าเพื่อสือ่ สารอนุกรม
1. กาหนดตาแหนง่ ขาพอรต์ ทีใ่ ชเ้ ช่ือมตอ่ ขา Rx (P13) ตอ้ งเชื่อมต่อกบั ขา TxD ส่วนขา Tx (P14) ตอ้ งเช่ือมต่อ
กับขา RxD ของโมดูลวดั ฝุ่นละออง
2. เน่ืองจาก การรับค่าข้อมูลมีจานวนมาก จึงควรจองพื้นที่บัฟเฟอร์เพ่ือรองรับข้อมูลไว้ด้วยในที่นี้จองไว้ 32
ไบต์ (คาส่งั อยใู่ น more)
3. สาหรับการอ่านข้อมูลน้ัน จะใช้คาส่ัง serial read buffer (คาส่ังอยู่ใน more) เพ่ืออ่านข้อมูลท้ัง 32 บิต
มาเก็บไว้ในตวั แปร PM (กลายเปน็ ตัวแปรแบบอาเรย์)
โรงเรยี นบา้ นสันปา่ สกั อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพัฒนาทกั ษะแหง่ ศตวรรษท่ี 21 เพือ่ คุณครู หนา้ 53
การตรวจสอบความถกู ต้องของข้อมูล
เม่ือได้ข้อมูลมาแล้ว จะต้องตรวจสอบข้อมูลก่อนว่ามีความถูกต้องหรือไม่ โดยข้อมูลในไบต์ 30 และ
31 เป็นข้อมูล 16 บิตของผลรวมของข้อมูลไบต์ 0 ถึง 29 เอาไว้ ดังน้ันเพื่อตรวจสอบ จึงต้องเขียนโค้ดเพ่ือนา
ข้อมูลตั้งแต่ไบต์ 0 ถึงไบต์ 29 มารวมกัน โดยวิธีการวนลูปบวกค่าขอ้ มูลทีละไบต์ไปเร่อื ยๆ เก็บผลลัพธไ์ ว้ในตวั
แปร SUM สาหรับการดึงข้อมูลทีละไบต์ เน่ืองจากตัวแปร PM เป็นตัวแปรอาเรย์ สามารถใช้คาส่งั get value
at เพ่ือดึงขอ้ มลู ออกมาทลี ะไบต์ผา่ นตวั ช้ี (index) ของคาส่ัง for ได้
โรงเรยี นบ้านสนั ปา่ สกั อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพฒั นาทักษะแห่งศตวรรษท่ี 21 เพอื่ คณุ ครู หน้า 54
การอ่านค่าฝ่นุ ละออง ท่ี 2.5 ug/m3 แสดงผลที่ 7 Segment
เม่ือนาค่าที่ได้เปรียบเทียบกับค่าผลรวมในตัวแปร temp ถ้าตรงกันแสดงว่าค่าข้อมูลทั้งหมดถูกต้อง
ให้นาค่าผลลัพธ์ ซ่ึงอยู่ในไบต์ 13 (บน) กับไบต์ 14 (ล่าง) มาแสดงท่ีหน้าจอ 7 segment 4 หลัก ผ่านตัวแปร
ช่อื tm ถา้ คา่ ผลลพั ธ์จากการเปรียบเทียบไมเ่ ทา่ กนั ให้แสดงเครือ่ งหมาย X ออกท่ีหน้าจอ LED 5×5
โรงเรียนบ้านสันปา่ สกั อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพัฒนาทกั ษะแหง่ ศตวรรษที่ 21 เพ่ือคณุ ครู หน้า 55
การอา่ นค่าฝุ่นละออง 3 โหมด 1.0 /2.5/10 ug/m3 แสดงผลที่ 7 Segment
คุณสมบัติของโมดูลวัดค่าผุ่นละออง สามารถแสดงค่าได้ท่ีความหนาแน่นของฝุ่นได้ถึง 3 ระดับคือ
PM1.0 ,PM2.5 และ PM10 ดังน้ันเพ่ือให้ เคร่ืองวัดของเราแสดงได้ทั้ง 3 โหมด ให้เขียนโค้ดเพิ่มเติมจาก
ตวั อยา่ งกอ่ นหนา้ น้ี
1. สรา้ งตวั แปร ADDR เพื่อเก็บคา่ ตาแหน่งไบตข์ ้อมูลเริม่ ต้น
2. ใชป้ มุ่ กด A B และ A+B เพ่อื เปน็ ตวั เลือก ระดบั ความหนาแนน่ ของฝนุ่ ละออง
3. ให้หนา้ จอ LED 5×5 แสดงตัวเลขเพือ่ ระบวุ ่าอยู่ในโหมดอา่ นคา่ รูปแบบใด โดยให้
1 แทน PM1.0 เมอื่ กดปุ่ม A
2 แทน PM2.5 เมื่อกดปมุ่ B
3 แทน PM10 เม่อื กดปมุ่ A+B
4. ขณะเร่มิ ตน้ ทางาน ให้แสดงผลในโหมด PM2.5
https://makecode.microbit.org/_EfpLX8AbXeUC
โรงเรยี นบ้านสันปา่ สัก อ.หางดง จ.เชยี งใหม่
depa Teacher Boost camp โครงการพฒั นาทกั ษะแหง่ ศตวรรษท่ี 21 เพอื่ คณุ ครู หนา้ 56
การทางานของโปรแกรม
ส่วนที่เพมิ่ เติมหลักๆ สาหรับโปรแกรมน้คี ือ การใช้ตัวแปร ADDR เป็นตากาหนดตาแหนง่ สาหรับการ
นาค่ามาแสดง แต่เนื่องจากตาแหน่งของข้อมูลมีทั้งไบต์บน และ ล่าง สาหรับไบต์ล่างน้นั จะใช้วิธีบวกค่าขึ้น 1
ค่าแทน เช่น ADDR มีคา่ 12 ไบต์ลา่ งทนี่ ามาบวกคอื ไบต์ 13 (ADDR +1)
ผลการทางาน
เมื่อจ่ายไฟเข้าท่ีตัวบอร์ดคร้ังแรก LED 5×5 จะแสดงเลข 2 ซึ่งหมายถึงโหมดการวัดเป็นค่าความ
หนาแน่น PM2.5 แต่เมื่อกดปุ่ม A ค่าตัวเลขแสดงท่ีหน้าจอจะเปลี่ยน และที่ LED 5×5 ก็จะเปลี่ยนเป็นเลข 1
เพื่อระบุว่าเป็นโหมดการวัด PM1.0 ท้ายสุดทดสอบกดปุ่ม A และ B พร้อมกัน LED 5×5 จะแสดงเลข 3 ค่าที่
วดั จะอย่ใู นโหมด PM10
โรงเรยี นบา้ นสนั ปา่ สัก อ.หางดง จ.เชยี งใหม่
โรงเรยี นบ้านสันปา่ สกั
สานักงานเขตพืน้ ท่กี ารศึกษาประถมศกึ ษาเชียงใหม่ เขต 4
สานกั งานคณะกรรมการการศึกษาขนั้ พืน้ ฐาน
กระทรวงศึกษาธิการ