Firebase และ Arduino ตอนที่ 2

ในตอนที่ 2 เราจะมาดูภาคการเขียนโปรแกรมในส่วนของ board โดยใช้ซอฟต์แวร์ arduino-1.8.10 เขียน sketch แล้ว upload เข้า board เพื่อใช้งานร่วมกับ Firebase หากบังเอิญ search มาเจอบทความนี้ก่อน ย้อนกับไปอ่าน ตอนที่ 1 ได้ครับ เริ่มต้นเราต้องดาวน์โหลดซอฟต์แวร์ที่จะต้องใช้ ดังรูป รันโปรแกรมที่ดาวน์โหลดมา arduino-1.8.10-windows.exe (ส่วนอีก 2 ไฟล์ที่เป็น .zip แตกไฟล์ออกมา CH341SER_WINDOWS.zip ใช้เพื่อให้ USB port ของ Notebook จำลองเป็น Serial port COM3 ได้ และ firebase-arduino-master.zip จะใช้ในโปรแกรม Arduino ในขั้นตอน Add Libraries) ในไดเรกทอรี libraries จะเห็นว่าเราใช้งาน libraries ใดได้บ้างในการเขียนโปรแกรม และเมื่อเราจะเขียนโปรแกรม จะต้องวางไว้ในไดเรกทอรี ดูตัวอย่าง เอาโค๊ดของ project ชื่อ Firstapp-IoT ได้ที่ link นี้ https://github.com/woonpsu/firstapp-iot เมื่อรันโปรแกรม Arduino ในครั้งแรก ให้ตั้งค่าเพิ่มที่ File > Preferences ตัวอย่าง Arduino board ที่ใช้ ESP8266 ต้องใส่ URL: https://arduino.esp8266.com/stable/package_esp8266com_index.json ถัดไป ตั้งค่าเลือก Board ให้ตรงกับที่เราซื้อมา (ให้ข้อมูลเพิ่มครับ ที่ซื้อมาคือรุ่น บอร์ดทดลอง NodeMCU V2 NodeMCU V2 ESP8266 Development Kit ESP-12F/N) เมื่อเราเขียน Sketch book เสร็จ ไม่ error แล้ว เราจะอัปโหลดใส่ board ในขั้นตอนนี้ เราใช้สาย USB data ต่อ board เข้ากับ USB port ในรูปจะเห็น COM3 หากใช้สาย USB Charger จะไม่เห็น Serial port นะ เมื่อพร้อมก็คลิกปุ่ม upload ต่อไปเราก็เปิดหน้าต่าง Serial Monitor เพื่อดูผลลัพธ์ หรือ debug จะเห็นว่า โปรแกรมมีการใช้คำสั่ง Serial.println(“WiFi connected”); เพื่อ debug ผลลัพธ์เมื่อเราใช้โปรแกรม JavaScript สั่งเปิด LED1 และ LED2 และตั้งสีให้กับหลอดสี เป็น สีเขียว อ้างอิง: อ่านเยอะ ๆ และ search จาก google หลายเพจมาก ๆ ได้รับข้อมูลเรื่องการเชื่อมต่อเน็ต Arduino ไปยัง Wi-Fi 802.1x จากเพื่อนชื่อโป้งทำงานที่ CLIB PSU โดยนักศึกษาฝึกงานเขียนโค๊ดไว้บน github ที่นี่ https://github.com/ton28919/firedoor/blob/main/nodeMCU_WifiEnterprise/nodeMCU_WifiEnterprise.ino โปรแกรม JavaScript ที่เขียนก็ได้จาก Firebase Document ส่วนมาก ต้องขอบคุณเพจนี้ด้วย เป็นเพจแรก ๆ ที่จุดประกายให้ http://www.daydev.com/firebase/web-authentication-with-firebase.html และ https://adamblog.co/firebase-authentication-with-firebaseui/ Firebase UI https://github.com/firebase/firebaseui-web และขอบคุณทุกเพจบนโลกใบนี้ที่เขียนแนะนำโดยไม่หวังสิ่งใดตอบแทน

Read More »

Firebase และ Arduino ตอนที่ 1

บทความนี้ ตอนที่ 1 จะพูดถึง (แจกโค๊ด) Firebase Realtime Database และ ตอนที่ 2 จะพูดถึง Arduino โดยที่ในตอนที่ 1 จะเป็นโปรแกรมให้เห็นว่า นำข้อมูลใส่เข้าใน Firebase Realtime Database ได้อย่างไร แล้วในตอนที่ 2 เราจะโปรแกรม Arduino ให้เชื่อมต่อเน็ตผ่าน Wi-Fi 802.1x แล้วหลอด LED จะถูกเปิด/ปิด หรือ เปลี่ยนสี เมื่อมีการสั่งจากโปรแกรม JavaScript ในตอนที่ 1 ในขั้นตอนการติดตั้ง Firebase สมัครใช้งาน สร้าง Database ลองหาอ่านกันเอาเองนะครับ มันง่าย ๆ ครับ เรามาเริ่มต้นที่มี Database ชื่อว่า Firstapp-IoT ที่ผมสร้างไว้แล้ว ขั้นตอนมาเราจะโปรแกรม JavaScript โดยการเขียนโปรแกรมไว้ใน local folder เครื่องของผมใช้ Windows 10 ผมก็สร้างไว้ที่ C:\myFirebase และก็ไปดาวน์โหลด firebase-tools-instant-win.exe เพื่อใช้ในการทดสอบแบบ localhost ด้วยคำสั่ง firebase serve แล้วทำการทดสอบโปรแกรมผ่านเว็บเบราว์เซอร์ที่ localhost:5000 และเมื่อโปรแกรมพร้อมใช้ก็นำขึ้นไปไว้ใน Firebase hosting ด้วยคำสั่ง firebase deploy –only hosting แล้วก็สามารถใช้โปรแกรมผ่านทางเว็บเบราว์เซอร์ที่ firstapp-iot.web.app รัน firebase-tools-instant-win.exe ในขั้นตอน setup ครั้งแรก เราสร้างไดเรกทอรีชื่อ nodemcu จะมีคำถามว่าจะสร้าง project ใหม่ หรือ ใช้ที่มีอยู่ ผมมีอยู่แล้ว ดังรูป และถัดไป เราจะเขียนโปรแกรมภาษา JavaScript ไว้ที่เรา setup ไว้ ไฟล์แรกที่เราจะเขียนคือ index.html และเมื่อเสร็จเราก็รัน firebase-tools-instant-win.exe กลับเข้ามา และทดสอบโดยคำสั่ง firebase serve และเมื่อโปรแกรมเริ่มใช้งานได้แล้ว ก็นำไปไว้บน Firebase hosting ด้วยคำสั่ง firebase deploy ดังรูป ผลลัพธ์ของโปรแกรม เมื่อเราใส่ email ที่อนุญาต ก็จะเข้าสู่หน้าต่อไปที่จะทดสอบการอัปเดตค่าข้อมูลใน Firebase Realtime Database ของ project ชื่อ Firstapp-IoT ดังรูป เมื่อคลิกที่ SET LED ON ได้ผลลัพธ์แบบนี้ สำหรับเว็บเพจ setled.html เป็นการทดสอบให้เห็นว่า เราสามารถตั้งค่า Firebase authentication ด้วย email แล้วอนุญาตให้แก้ไขข้อมูลใน Firebase Realtime Database ได้ โดยต้องไปตั้งค่า Rules ให้ดี ถัดไป คลิกที่ Goto NodeMCU ESP8266 Project ผมจะสาธิตการควบคุม Arduino NodeMCU ESP8266 ให้เปิด/ปิด LED ตรงนี้เชื่อมต่อผ่านเน็ต Wi-Fi 802.1x ทดสอบคลิก Set LED On และเลือก GREEN และดูผลลัพธ์ที่อุปกรณ์ ดังรูป ถัดไปลองอีกตัวอย่าง คลิก Set LED Off และเลือก BLUE และดูผลลัพธ์ที่อุปกรณ์ ดังรูป จบการทดสอบ จากรูปเราต่อวงจรตามตำราที่เล่าขานกันในอินเทอร์เน็ต ตรงนี้หาอ่านกันเอาเองนะครับ สังเกตเราจะใช้ก้อนถ่านพร้อมราง แต่เราก็สามารถเลือกใช้สายชาร์ตจ่ายไฟได้ ดังรูป ต่อไปมาดูส่วนโปรแกรมกันบ้าง คลิกเข้าไปในไดเรกทอรี public จะเห็นดังรูป แจกโค๊ดให้ครับ เข้าไปที่ github ตาม link นี้ https://github.com/woonpsu/firstapp-iot ถัดไปเรามาดูส่วนที่เราต้องมีใน

Read More »

เรียนรู้ RPA โดยใช้ ui-path

Robotic Process Automation หรือ RPA  คือการนำเอาหุ่นยนต์ (ในที่นี้คือซอฟแวร์หุ่นยนต์) เข้ามาช่วยในการทำงานอย่างไหนอย่างหนึ่ง  ซึ่งคำที่คนส่วนใหญ่ได้ยินกัน คือ Bot นั่นเอง 😊 ซึ่งงานที่เหมาะสมที่จะนำเอาRPA มาช่วยในการทำงานนั้น เป็นงาน Routine ที่ต้องมานั่งทำแบบเดิมๆ ทุกวัน งานที่ต้องทำซ้ำๆ ง่ายๆ ที่มีปริมาณงานเยอะ ซึ่งเป็นงานที่มีขั้นตอนลำดับชัดเจน  เช่น งานคัดลอกข้อมูลจากเว็บ  งานส่งอีเมล์ งานกรอกข้อมูล ในปัจจุบัน RPA ก็มี Tool ด้วยกันหลายๆ ตัว  แต่ที่ผู้เขียนจะใช้ คือ UiPath  ตัวอื่นๆ ก็มี Automation Anywhere , Blue Prism, Work Fusion ซึ่งเป็น Tool ที่ใช้งานได้ง่ายๆ มากๆ ไม่ต้องเขียนโปรแกรม ลากๆ คลิกๆ เลือก อย่างเดียว … ก่อนเพื่อให้เห็นภาพ  จะตั้งโจทย์ในการทำงานเข้ามา  โดยมีโจทย์ว่า  อาจารย์ที่ปรึกษาต้องการส่งเมลไปยังนักศึกษาในที่ปรึกษาทั้งหมด ในคราวเดียวกัน เนื้อหาในเมล แต่ละคนแตกต่างกัน ซึ่งอาจารย์ได้เตรียมข้อมูลไว้ในรูปแบบ Excel ซึ่งจะต้องทำการส่งข้อมูลบ่อยครั้ง ในการติดต่อสื่อสาร ในช่วงโรคระบาดโควิด ซึ่งงานนี้เราจะนำเอา Bot มาช่วยในการดึงข้อมูลจาก Excel แล้วส่งเมลเอง โดยการกดปุ่ม เพียงแค่ คลิกเดียว! ขั้นตอนที่   1   การติดตั้ง UiPath 1.เข้าไปยังเว็บไซต์ของ UiPath  คือ  Automation Platform – Leading RPA Company | UiPath   จากนั้นกดปุ่ม 2. ทำการ Sign-in และทำตามขั้นตอน  จากนั้นมายังหน้าจอดังภาพ กด download ไฟล์โปรแกรม มาติดตั้งลงเครื่องได้เลย 3. ทำการติดตั้งได้เลย    ทำการคลิกปุ่มต่อไปเรื่อยๆ จนมาหยุดหน้าเลือก Version ของโปรแกรม ตามภาพข้าล่างนี้  ให้ทำการเลือก UiPath StudioX ซึ่งจะเป็น Version สำหรับการสร้าง Bot เบื้องต้น ซึ่งไม่ต้องเขียนโปรแกรม  โดย Version นี้จะเน้นการลากวาง คำสั่ง และเลือกคำสั่ง ทำให้ง่าย สำหรับคนที่ไม่ได้เป็น Programmer ส่วน UiPath Studio จะมีการเขียนโปรแกรมคำสั่งเพื่อ รองรับงานที่ซับซ้อนมากยิ่งขึ้น 4. จากนั้นเปิดโปรแกรมได้เลย   เริ่มต้นระบบจะแนะนำ  การใช้งานตามภาพ 5. จากนั้นเริ่มต้น  โปรแกรมจะเลือกให้เราสร้าง Project ก่อน  โดยให้เลือกเป็น Blank Task ให้กำหนดชื่อและที่เก็บไฟล์ และคำอธิบายของงานนี้  จากนั้น กด “Create” ได้เลย 6. โปรแกรม ก็จะแสดงหน้าจอการทำงาน ตามภาพ  โดยในที่นี้ผู้เขียน ขออธิบาย เมนูและการใช้งานเฉพาะในส่วนที่ ผู้เขียนใช้เท่านั้น   (เมนูอื่นอธิบายไม่ถูกเพราะไม่เคยใช้ 555)               6.1 ส่วนที่  1 :   MAIN    เป็นส่วนที่เรานำ คำสั่งหรือสิ่งที่ต้องการให้ bot ทำ มาลากวาง โดยจะเรียง คำสั่ง จากบน ลง ล่าง  (ให้นึกถึงการเขียน flow chart)                6.2 ส่วนที่ 2 : Activities  เป็นส่วนของคำสั่ง ที่โปรแกรมจัดเตรียมมาให้ เช่น การกรอกข้อมูล  การคลิก การเปิด mail การเปิด App เปิด web  เห็นไหมว่า ง่ายมาก ไม่ต้องเขียนโค้ดเลย  โดยอยากได้คำสั่งใดก็เลือก และลากมาวางที่ Main ได้เลย

Read More »

การเข้ารหัสข้อมูลด้วย ORACLE DBMS_CRYPTO

              ข้อมูลที่ส่งผ่านในโลกอินเตอร์เน็ตอาจมีความจำเป็นต้องเข้ารหัสข้อมูลเพื่อความปลอดภัย แม้ว่าระบบการป้องกันจะดีแค่ไหน แต่การปล่อยข้อมูลในรูปแบบที่อ่านได้ (Plain Text) ให้วิ่งผ่านเน็ตเวิร์ค ดูเป็นสิ่งที่ไม่ปลอดภัยเป็นอย่างยิ่ง               ข้อมูลบนระบบจัดการฐานข้อมูล ORACLE มีฟังก์ชันสำหรับการเข้ารหัสข้อมูล (Encrypt) และถอดรหัสข้อมูล (Decrypt) สำหรับข้อความได้ในหลายๆ Algorithm ดังนี้ ENCRYPT_DES Data Encryption Standard. Block cipher. Uses key length of 56 bits. ENCRYPT_3DES_2KEY Data Encryption Standard. Block cipher. Operates on a block 3 times with 2 keys. Effective key length of 112 bits. ENCRYPT_3DES Data Encryption Standard. Block cipher. Operates on a block 3 times. ENCRYPT_AES128 Advanced Encryption Standard. Block cipher. Uses 128-bit key size. ENCRYPT_AES192 Advanced Encryption Standard. Block cipher. Uses 192-bit key size. ENCRYPT_AES256 Advanced Encryption Standard. Block cipher. Uses 256-bit key size. ENCRYPT_RC4 Stream cipher. Uses a secret, randomly generated key unique to each session. สำหรับตัวอย่างในวันนี้จะแสดงการเข้ารหัสข้อมูลด้วย Algorithm DES ซึ่งคีย์จะมีความยาว 56 bits เนื่องจากการเข้ารหัสและถอดรหัสจะใช้งานคู่กัน ดังนั้นเราสามารถเขียนทั้งสองฟังก์ชันไว้ใน Package ดังนี้ END;/ จากคำสั่งการสร้าง Package ข้างต้นเป็นการเข้ารหัสและถอดรหัสโดยใช้ Algorithm แบบ DES การเรียกใช้งานสามารถเรียกผ่านคำสั่งบน SQL Plus ได้ดังภาพ จากการทำงานจะพบว่าเราสามารถเข้ารหัสข้อมูลอย่างง่ายด้วย Algorithm DES ได้ หากต้องการใช้ Algorithm อื่น สามารถเปลี่ยนค่าได้จากที่กำหนดไว้ใน Package ได้ โดยต้องคำนึงถึงขนาดของคีย์ที่เข้ารหัสด้วย เช่น AES ต้องมีขนาดคีย์เป็น 128 bits, 256 bits เป็นต้น

Read More »

ETL ต้องตรวจสอบอะไรบ้างเพื่อความมั่นใจในโอน ย้ายข้อมูล

ETL (Extract, Transform, Load) ประโยชน์ที่สามารถนำไปประยุกต์ใช้ ============================ ETL Tools ตอนนี้มีอยู่หลายค่ายหลายโปรแกรม ทั้งฟรีและขาย สามารถนำมาประยุกร์ใช้งานได้ ตัวอย่างเช่น ========================== ต้องตรวจสอบอะไรบ้างเมื่อท่านต้องทำ ETL 1. Metadata Testing เป็นการทดสอบส่วนประกอบของข้อมูลพวกชนิดของข้อมูล ขนาดและเงื่อนไขต่างๆของข้อมูล2. Data Completeness Testing ความสมบูรณ์ของข้อมูลต้องสุ่มทดสอบข้อมูล เช่น คีย์ที่ใช้เชื่อมข้อมูลระหว่างตารางไม่ควรจะเป็น NULL 3. Data Quality Testing คุณภาพของข้อมูล เช่นข้อมูลชื่อประเทศเดียวกันต้องสะกดเหมือนกันทั้งหมด การหาข้อมูลซ้ำซ่อนแบบไม่ปกติ4. Data Transformation Testing ดักจับ error ระหว่างการถ่ายโอนข้อมูล5. ETL Regression Testing ทดสอบเมื่อมีการเปลี่ยนแปลงกระบวนการในการทำ ETL6. Reference Data Testing การทดสอบกับข้อมูลที่เป็นสากลทั่วไปใช้กัน เช่น ชื่อ ตำบล อำเภอ จังหวัด ควรต้องตรงกันกับข้อมูลของราชการเท่านั้น7. Incremental ETL Testing เป็นการทดสอบโดยการค่อยๆเพิ่มกระบวนการถ่ายโอนข้อมูลเป็นขั้นๆเพื่อหาปัญหาของการถ่ายโอน8. ETL Integration Testing เป็นการทดสอบภาพรวมของการทำงานรวมกันของ module เงื่อนไขต่างๆในการถ่ายโอนข้อมูล9. ETL Performance Testing เป็นการประเมินเรื่องเวลาและปริมาณข้อมูลเพื่อจะได้ทราบถึงระยะเวลาการทำงานที่ควรจะเกิดขึ้นกับข้อมูลปริมาณที่ต้องการ Metadata Testing สิ่งที่ต้องตรวจสอบ การตรวจสอบการเปลี่ยนแปลงของข้อมูลของการทำ ETL แต่ละรอบ 1.Track changes ตรวจสอบ metadata ตามเวลาที่กำหนด ทั้ง Source และ Target และส่วนของการพ้ฒนา 2.Compare table metadata ทั้ง Source และ Target และส่วนของการพ้ฒนา ชื่อของตารางและColumn  ขนาดของ Column 3.Compare column data types 4.ตรวจสอบ Look Up table ต่างๆว่าข้อมูล Update ให้เหมาะสมและครบถ้วนแล้วหรือไม่ Data Completeness Testing Data Quality tests ตรวจสอบคุณภาพของข้อมูล SELECT fst_name, lst_name, mid_name, date_of_birth, count(1) FROM Customer GROUP BY fst_name, lst_name, mid_name HAVING count(1)>1 ในส่วนหัวข้ออื่นๆจะเป็นส่วนการทดสอบที่ขึ้นอยู่กับเครื่องมือที่นำมาใช้งาน การทำงานจริงควรจะหาเครื่องมือที่มีประสิทธิภาพมาใช้งานเพราะจะช่วยประหยัดกำลังไปได้มาก แต่ผู้ดำเนินการควรจะรู้ว่าควรระวังหรือต้องตรวจสอบตรงส่วนไหนเพื่อให้งานออกมาอย่างมีประสิทธิภาพ

Read More »