วิธี build hping3 บน Ubuntu

โดยปกติบน Ubuntu คุณสามารถติดตั้ง hping3 ผ่าน repository ได้โดยใช้คำสั่ง apt หรือ apt-get อยู่แล้ว

แต่ถ้าคุณจะ build hping3 เอง อาจจะด้วยเหตุผลอะไรก็แล้วแต่ ให้คุณทำตามขั้นตอนด้านล่างนี้

1. ถ้าคุณยังไม่ได้ติดตั้งชุดเครื่องมือสำหรับ build ให้ติดตั้งก่อน โดยใช้คำสั่งนี้

sudo apt install -y build-essential

2. ติดตั้ง pcap development package

sudo apt install -y libpcap-dev
sudo ln -s /usr/include/pcap/bpf.h /usr/include/net/bpf.h

3. ติดตั้ง TCL development package

sudo apt install -y tcl-dev

4. ดาวน์โหลด source ไฟล์ hping3 จากเว็บไซต์ต้นฉบับ

wget http://www.hping.org/hping3-20051105.tar.gz

5. extract hping3 archive ที่เพิ่งดาวน์โหลดมา

tar xf hping3-20051105.tar.gz

6. ย้ายไปทำงานที่ไดเรกทอรี่ hping3 ที่เพิ่ง extract ออกมา

cd hping3-20051105

7. ถ้าคุณใช้ Ubuntu เวอร์ชั่น 64บิท คุณต้อง Patch ไฟล์ bytesex.h ก่อน

wget -O hping3-bytesex.h-64bit.patch https://git.io/vMsrB
patch bytesex.h hping3-bytesex.h-64bit.patch

8. รันสคริป configure เพื่อสร้าง Makefile ใหม่

./configure

9. build, strip และ ติดตั้ง hping3

make
make strip
sudo make install

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีอัปเกรด PHPMailer สำหรับ WordPress

เงื่อนไขการอัปเกรด

การอัปเกรดด้วยวิธีต่อไปนี้ เป็นวิธีการอัปเกรดด้วย command line บน linux server

วิธีอัปเกรด

ย้ายไปทำงานที่ไดเรกทอรี่ของเว็บไซต์ WordPress ที่ต้องการอัปเกรด

cd /var/www/your-wordpress

ค้นหาไฟล์ที่มีคำว่า “phpmailer.php” อยู่ในชื่อไฟล์

find . -iname *phpmailer.php*

ตรวจสอบเวอร์ชั่น PHPMailer ของไฟล์ที่พบ

grep \$Version ./your-found-file # Result is public $Version = 'x.y.zz';

สำรองไฟล์เอาไว้เผื่ออยากดาวน์เกรดกลับมาเป็นเวอร์ชั่นเดิมทีหลัง

# WordPress Core
cp ./wp-includes/class-phpmailer.php ./wp-includes/class-phpmailer.php.bak
cp ./wp-includes/class-pop3.php ./wp-includes/class-pop3.php.bak
cp ./wp-includes/class-smtp.php ./wp-includes/class-smtp.php.bak

# WordPress Themes and Plugins
cp ./wp-content/plugins/your-plugin/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php.bak
cp ./wp-content/themes/your-theme/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php.bak

ดาวน์โหลด PHPMailer และไฟล์ที่เกี่ยวข้อง เวอร์ชั่นล่าสุดมาพักไว้ที่ไดเรกทอรี่ /tmp

wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.phpmailer.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.pop3.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.smtp.php

เริ่มการอัปเกรดโดยการเขียนทับไฟล์เวอร์ชั่นเก่า ด้วยไฟล์ที่เราดาวน์โหลดมาพักไว้ในไดเรกทอรี่ /tmp

# WordPress Core
cp /tmp/class.phpmailer.php ./wp-includes/class-phpmailer.php
cp /tmp/class.pop3.php ./wp-includes/class-pop3.php
cp /tmp/class.smtp.php ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
cp /tmp/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php
cp /tmp/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php

ตั้งค่าสิทธิ์ของไฟล์ที่เราเพิ่งอัปเกรด เพื่อให้โปรแกรม Web Server เข้าถึงไฟล์ได้อย่างถูกต้อง

# WordPress Core
chown www-data:www-data ./wp-includes/class-phpmailer.php
chown www-data:www-data ./wp-includes/class-pop3.php
chown www-data:www-data ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
chown www-data:www-data ./wp-content/plugins/your-plugin/class.phpmailer.php
chown www-data:www-data ./wp-content/themes/your-theme/class.phpmailer.php

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี save docker image เป็นไฟล์ .tar.gz

เมื่อคุณ save docker image โดยใช้คำสั่ง “docker save” คุณจะได้ไฟล์ออกมาเป็น .tar (tar archive)

docker save image_name > image_name.tar

คำสั่งนี้เป็นแค่คำสั่งที่รวมให้ docker image ซึ่งประกอบไปด้วยไฟล์หลายๆ ไฟล์ออกมาเป็นไฟล์ๆ เดียว แต่ยังไม่ได้ผ่านกระบวนการบีบอัดไฟล์ จึงทำให้ขนาดไฟล์ยังมีขนาดที่ข้อนข้างใหญ่ครับ (แต่ถ้าใครคิดว่าขนาดไฟล์ไม่ใช่ปัญหา ก็ใช้คำสั่งนี้ไปก็ได้ครับ)

วิธี save docker image เป็นไฟล์ .tar.gz

คุณสามารถ save docker image ให้ไฟล์ที่ออกมามีขนาดเล็กลงกว่าเดิมได้ โดยการบีบอัดด้วย gzip โดยใช้คำสั่งด่านล่างนี้ครับ

docker save image_name | gzip > image_name.tar.gz

นอกจากนี้คุณยังสามารถบีบอัดไฟล์ด้วย xz หรือ bzip2 ได้อีกด้วย

เช่น คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.xz

docker save image_name | xz > image_name.tar.xz

หรือ คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.bz2

docker save image_name | bzip2 > image_name.tar.bz2

วิธี load docker image จากไฟล์ .tar.gz

ข้อความจากเว็บไซต์ docker

The tarball may be compressed with gzip, bzip, or xz

หมายความว่า คุณสามารถ load docker image จากไฟล์ที่ถูกบีบอัดด้วย gzip, bzip หรือ xz ก็ย่อมได้

ดังนั้นคุณสามารถใช้คำสั่ง “docker load” แบบธรรมดาๆ ได้เลย โดยไม่จำเป็นต้องใส่ option เพิ่มเติมใดๆ เลย เช่น

docker load -i image_name.tar.gz

หรือ

docker load -i image_name.tar.bz2

หรือ

docker load -i image_name.tar.xz

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Burp Proxy ไม่ Intercept HTTPS บน Firefox

ปัญหา

เมื่อตั้งค่า Burp Proxy บน Firefox แล้วไม่สามารถ Intercept HTTPS ได้ แต่สามารถ Intercept HTTP ได้ปกติ

ปัญหาอาจจะเกิดจากการตั้งค่า Proxy บน Firefox ที่ไม่ถูกต้องครับ โดยที่คุณอาจจะลืมเลือกตัวเลือก “Use this proxy server for all protocols” ครับ

วิธีแก้ไข

  • เข้าไปที่ Edit > Preferences > Advanced > Network > Connection > Settings > Manual proxy configuration > HTTP Proxy
  • เลือกตัวเลือก “Use this proxy server for all protocols”
  • กดปุ่ม OK
firefox-settings-for-burp-proxy

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง mdk3 บน Ubuntu

ถ้าคุณต้องการจะติดตั้ง mdk3 บน Ubuntu คุณจะต้อง build เอง โดยใช้วิธีดังต่อไปนี้

หมายเหตุ : วิธีนี้ทดสอบแล้ว โดยการ build ด้วย GCC 4.8 และติดตั้งบน Ubuntu 14.04

ขั้นตอนการ build mdk3

1. ดาวน์โหลดไฟล์ source ของ mdk3 จากเว็บไซต์ต้นฉบับ

wget http://aspj.aircrack-ng.org/mdk3-v6.tar.bz2

2. extract ไฟล์ archive ที่เพิ่งดาวน์โหลดมา

tar -xf mdk3-v6.tar.bz2

3. ย้ายไปที่งานที่ไดเรกทอรี่ mdk3 ที่เพิ่ง extract ออกมา

cd mdk3-v6

4. แก้ไขไฟล์ชื่อ “Makefile” ในบรรทัดที่ 2 จาก “LINKFLAGS   = –lpthread” ไปเป็น “LINKFLAGS   = –pthread” (ลบตัวเอ็ล “l” ออก) โดยจะใช้ editor ตัวไหนก็ได้แล้วแต่สะดวก เช่น vim, nano หรือ gedit

จาก > LINKFLAGS   = -lpthread
เป็น > LINKFLAGS   = -pthread

5.ใช้คำสั่ง make เพื่อเริ่มกระบวนการ build

make

6.ติดตั้ง mdk3 ลงบนระบบของคุณ (ขั้นตอนนี้ต้องใช้สิทธิ์ root)

sudo make install

เคล็ดลับ

คุณสามารถรวมขั้นตอนที่ 4 และ 5 เข้าด้วยกันโดยใช้คำสั่งต่อไปนี้

make LINKFLAGS=-pthread

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีพิมพ์ตัวหนอนบน Windows

ตัวหนอน และ Grave Accent

มารู้จักกับเครื่องหมายตัวหนอน และ เครื่องหมาย Gave Accent กันก่อนครับ, 2 เครื่องหมายนี้มักถูกสับสน และถูกเรียกชื่อผิดกันอยู่บ่อยๆ เนื่องจากอยู่บนคีย์บอร์ดปุ่มเดียวกัน

เครื่องหมายตัวหนอน หรือ Tilde หน้าตาเป็นแบบนี้ ( ~ )

เครื่องหมายเน้นเสียง หรือ Grave Accent หน้าตาเป็นแบบนี้  ( ` )

tilde and grave accent on the keyboard-circle
ตัวหนอนอยู่ด้านบน, Grave Accent อยู่ด้านล่าง

ปัญหา

ปัญหาการพิมพ์เครื่องหมายตัวหนอนไม่ได้ ส่วนใหญ่มักจะเกิดกับผู้ใช้งานระบบปฏิบัติการ Windows ที่ตั้งให้ปุ่ม Grave Accent เป็นปุ่มสำหรับสับเปลี่ยนภาษาที่จะพิมพ์, ทำให้ปุ่มๆ นี้ ที่มีทั้งเครื่องหมายตัวหนอน และ Grave Accent ในปุ่มเดียวกัน ไม่สามารถถูกใช้เพื่อการพิมพ์ได้ (ก็พิมพ์ไม่ได้นั่นแหละ)

วิธีแก้ไข (แบบแก้ขัด)

ให้กดปุ่ม ALT แล้วตามด้วยเลข Unicode ฐาน 10 ของตัวอักษรนั้นๆ เช่น ตัวหนอน ให้กด ALT แล้วตามด้วย 1-2-6 ตามลำดับ หรือ หากต้องการพิมพ์ Grave Accent ให้กด ALT แล้วตามด้วย 9-6 ตามลำดับ

ดูเลข Unicode ตัวอักษรอื่นๆ ได้ที่ List of Unicode characters

วิธีแก้ไข (แบบถาวร)

การแก้ไขก็แก้ง่ายๆ ครับ แค่ตั้งปุ่มสำหรับสับเปลี่ยนภาษาจากปุ่ม Grave Accent ให้เป็นปุ่มอื่นๆ เช่น Left Alt + Shift เป็นต้น

คำเตือน: วิธีนี้จะทำให้คุณไม่สามารถสับเปลี่ยนภาษาด้วยปุ่ม Grave Accent ได้ คุณต้องเปลี่ยนปุ่มสำหรับสับเปลี่ยนภาษาเป็นปุ่มที่คุณตั้งใหม่แทน เช่น Left Alt + Shift เป็นต้น

วิธีแก้ไขสำหรับ Windows 7

change-input-language-shortcut-key-step1
change-input-language-shortcut-key-step2
change-input-language-shortcut-key-step3
change-input-language-shortcut-key-step4
change-input-language-shortcut-key-step5
change-input-language-shortcut-key-step6
แบ่งปันสิ่งนี้บน

Linux คืออะไร ?

Linux อ่านว่า ลินุกซ์ มีความหมายที่ถูกเข้าใจกันโดยทั่วไปได้ 2 ความหมาย คือ

  1. ลินุกซ์ ซึ่งหมายถึง ระบบปฏิบัติการลินุกซ์ (Linux Operating System)
  2. ลินุกซ์ ซึ่งหมายถึง ลินุกซ์ เคอร์เนิล (Linux Kernel)
Tux.svg
มาสคอต อย่างเป็นทางการของ Linux Kernel ชื่อว่า Tux

เริ่มแรกลินุกซ์ถูกสร้างขึ้นโดย Linus Torvalds โดยใช้ระบบปฏิบัติการ MINIX ซึ่งเป็นระบบปฏิบัติการแบบยูนิกซ์เป็นต้นแบบ โดย Linus Torvalds ไม่ได้พัฒนาลินุกซ์ให้เป็นระบบปฏิบัติการ แต่พัฒนาให้ลินุกซ์เป็นเพียงเคอร์เนิล (Kernel) หรือแก่นของระบบปฏิบัติการ ซึ่งจะเป็นส่วนที่อยู่ระดับล่างสุด และใกล้ชิดกับฮาร์ดแวร์มากที่สุด มีหน้าที่หลักในการติดต่อกับฮาร์ดแวร์ (Hardware) และจัดสรรทรัพยากรของระบบ (Resources Management) เท่านั้น ซึ่งยังไม่เพียงพอต่อการถูกนำไปใช้งานโดยผู้ใช้ทั่วไป

Kernel_Layout.svg
By Bobbo (Own work) [CC BY-SA 3.0 or GFDL], via Wikimedia Commons

ในช่วงเวลาใกล้ๆ กัน Richard Stallman ก็ได้พยายามสร้างระบบปฏิบัติการที่เข้ากันได้กับระบบปฏิบัติการยูนิกซ์ ซึ่งระบบปฏิบัติการนี้ประกอบไปด้วยไลบรารี่, คอมไพเลอร์, โปรแกรมแก้ไขข้อความ, เชลล์ และ Windowing System จะเหลือก็แต่ส่วนที่เป็นเคอร์เนิลซึ่งยังพัฒนาออกมาได้ไม่สมบูรณ์ Richard Stallman จึงได้เอาลินุกซ์ เคอร์เนิลที่พัฒนาโดย Linus Torvalds มาใช้แทน จนทำให้ลินุกซ์ถูกเรียกได้ว่าเป็นระบบปฏิบัติการในที่สุด

Linux Distribution คืออะไร ?

Linux Distribution (อ่านว่า ลินุกซ์ดิสทริบิวชัน) หรือเรียกย่อๆ ว่า Linux Distro (อ่านว่า ลินุกซ์ดิสโทร) คือ ระบบปฏิบัติการลินุกซ์ที่ถูกออกแบบและปรับแต่งเพื่อการแจกจ่าย โดยการนำเอาระบบปฏิบัติการลินุกซ์มาปรับแต่งและเพิ่มซอฟต์แวร์พื้นฐานต่างๆ รวมเข้าไป เช่น เพิ่มส่วนติดต่อผู้ใช้, โปรแกรมจัดการไฟล์, โปรแกรมสำหรับดูหนัง-ฟังเพลง, โปรแกรมเว็บเบราว์เซอร์ เป็นต้น สรุปง่ายๆ ก็คือ ลินุกซ์ดิสโทรเป็นระบบปฏิบัติการลินุกซ์แบบสำเร็จรูป พร้อมใช้งาน เมื่อติดตั้งแล้วแทบจะไม่ต้องปรับแต่งหรือติดตั้งซอฟต์แวร์เพิ่มเลย ใช้งานได้ทันที เช่น Arch Linux, Debian, Ubuntu, Linux Mint, openSUSE, Red Hat และ Fedora เป็นต้น

ระบบปฏิบัติการ Ubuntu 18.04 LTS
ระบบปฏิบัติการ Ubuntu 18.04 LTS

ข้อดีของระบบปฏิบัติการลินุกซ์

  1. เป็นซอฟต์แวร์โอเพนซอร์ส ทำให้เราสามารถปรับแต่งระบบได้อย่างอิสระ
  2. ระบบปฏิบัติการลินุกซ์ส่วนใหญ่ อนุญาตให้คุณใช้งานได้ฟรี ไม่ต้องเสียค่าใช้จ่าย ทำให้ผู้ผลิตฮาร์ดแวร์ที่จำเป็นต้องมีระบบปฏิบัติการส่วนใหญ่นำลินุกซ์ไปใช้ในระบบ เพราะไม่ต้องจ่ายค่าลิขสิทธิ์เพิ่มเติม เช่น เราเตอร์, โทรศัพท์มือถือ, ระบบเครื่องเสียงในรถยนต์ หรือ อุปกรณ์อื่นๆ ที่ใช้ระบบปฏิบัติการ Android เป็นต้น
  3. ไม่ต้องกังวลเรื่องลิขสิทธิ์ เพราะเขาอนุญาตให้คุณใช้งานฟรีภายใต้เงื่อนไขที่ระบุไว้ในสัญญาอนุญาต
  4. ไวรัสคอมพิวเตอร์ส่วนใหญ่ ไม่สามารถทำงานบนระบบปฏิบัติการลินุกซ์ได้ เพราะมาตรการการรักษาความปลอดภัยของลินุกซ์เอง (เช่น ระบบสิทธิ์การใช้งานไฟล์) และเพราะลินุกซ์ยังมีปริมาณผู้ใช้งานที่น้อยมากเมื่อเทียบกับผู้ใช้งานระบบปฏิบัติการวินโดวส์ จนผู้พัฒนาไวรัสคิดว่ายังไม่คุ้มค่าที่จะมาสร้างไวรัสขึ้นมาเพื่อโจมตีผู้ใช้งานลินุกซ์ (คล้ายๆ กับความคิดที่ว่า จะตกปลาก็ตกในบ่อที่มีปลาเยอะๆ หน่อยย่อมให้ผลที่ดีกว่า ใช้เวลาตกปลาเท่ากันแต่จำนวนที่ตกได้ย่อมต่างกัน)
  5. ซอฟต์แวร์บนระบบปฏิบัติการลินุกซ์ส่วนมากได้รับการอัปเดตอยู่ตลอดเวลา ทำให้มั่นใจได้ในเสถียรภาพ ความสามารถ และความปลอดภัย

ข้อเสียของระบบปฏิบัติการลินุกซ์

  • ผู้ผลิตฮาร์ดแวร์ เช่น การ์ดจอ, printer, USB WiFi ไม่ค่อยให้ความสนใจกับไดรเวอร์อุปกรณ์ (device driver) บนลินุกซ์ ทำให้ฮาร์ดแวร์บางตัวไม่สามารถใช้งานได้กับลินุกซ์ หรือถ้าใช้งานได้ก็ไม่เต็มประสิทธิภาพเท่าที่ควร ดังนั้นหากคิดจะใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าฮาร์ดแวร์นั้นๆ สามารถใช้ได้กับลินุกซ์หรือไม่ ถึงแม้ว่าปัจจุบันปัญหาเรื่องไดรเวอร์บนลินุกซ์จะลดลงแล้วก็ตาม
  • ไม่สามารถติดตั้งและใช้งานซอฟต์แวร์หลายๆ ตัวที่ถูกสร้างขึ้นมาสำหรับระบบปฏิบัติการวินโดวส์โดยเฉพาะได้ ดังนั้นหากจะเปลี่ยนมาใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าซอฟต์แวร์ที่จำเป็น ต้องใช้นั้น สามารถใช้ได้บนลินุกซ์หรือไม่ หากซอฟต์แวร์ตัวนั้นใช้งานบนลินุกซ์ไม่ได้ ยังพอมีซอฟต์แวร์ตัวอื่นทดแทนได้ไหม
  • เกมบนระบบปฏิบัติการลินุกซ์ค่อนข้างน้อยเมื่อเทียบกับเกมบนระบบปฏิบัติการวินโดวส์ และหลายๆ เกมกราฟิกไม่สวยเอามากๆ ดังนั้นลินุกซ์จึงเป็นตัวเลือกที่ไม่ดีนักสำหรับผู้ที่ชื่นชอบการเล่นเกม เป็นชีวิตจิตใจ

หมายเหตุ : ลินุกซ์สามารถใช้งานซอฟต์แวร์ของระบบปฏิบัติการวินโดวส์ได้โดยเรียกใช้งานผ่านโปรแกรม Wine (ใช้ได้บางโปรแกรม) หรือ ติดตั้งซอฟต์แวร์ลงบนระบบปฏิบัติการวินโดวส์ที่ถูกติดตั้งไว้บน Virtual Machine เช่น VirtualBox หรือ VMware อีกที (ซึ่งต้องใช้ทรัพยากรของระบบมากพอตัว แน่นอน.. คอมพิวเตอร์เก่าๆ คงหมดสิทธิ์ !)

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอนใช้ Arduino อ่านค่าจากเซ็นเซอร์วัดอุณหภูมิ DHT11

DHT11 เป็นเซ็นเซอร์สำหรับวัดอุณหภูมิและความชื้นในอากาศ ที่มีขนาดเล็ก และราคาถูกมากๆ  เพียงตัวละประมาณ 50 บาท สามารถใช้งานร่วมกับ Arduino ได้ง่ายๆ เพียงแค่จ่ายไฟให้เซ็นเซอร์ และอ่านค่าจาก Arduino โดยใช้ digital pin เพียง 1 pin เท่านั้น

สเปคคร่าวๆ ของ DHT11

  • วัดความชื้นในอากาศ (Humidity) ได้ตั้งแต่ 20-90%RH มีโอกาศคลาดเคลื่อน ±5%RH
  • วัดอุณหภูมิ (Temperature) ได้ตั้งแต่ 0-50 °C มีโอกาศคลาดเคลื่อน ±2 °C
  • ขนาดของตัวเซ็นเซอร์ 1.5 x 1.0 x 0.5 cm
  • ใช้ไฟ DC ที่มีแรงดันไฟตั้งแต่ 3-5.5V

DHT11 pinout

DHT11 มีขาทั้งหมด 4 ขา แต่เราจะใช้จริงเพียงแค่ 3 ขาเท่านั้น คือ ขาที่ 1, 2 และ 4 เพราะ datasheet บอกว่า “ขาที่ 3 เป็น Null หรือก็คือไม่ได้ใช้ประโยชน์นั่นเอง”

DHT11_pinout

การต่อวงจร

การต่อวงจรให้ดูรูปด้านล่างครับ เราจะใช้ 5kΩ pull-up resistor สำหรับการต่อสายระหว่าง Arduino กับ DHT11 ในระยะที่ห่างกันไม่เกิน 20 เมตรนะครับ (อ้างอิงจาก DHT11 datasheet)

โค้ดตัวอย่าง

ดาวน์โหลดไลบรารี Dht11_Library.zip (ต้นฉบับมาจาก GitHub ของ Andy Dalton) จากนั้นติดตั้งไลบรารี แล้วใช้โค้ดด้านล่างนี้ทดสอบได้เลย

จุดเด่นของไลบรารีตัวนี้ คือ ไลบรารีมีขนาดเล็กมากเมื่อเทียบกับไลบรารีตัวอื่นเพราะออกแบบมาให้ใช้ได้กับ DHT11 เท่านั้น (ไลบรารีตัวอื่นอาจรองรับ DHT11, DHT22 และ DHT อื่นๆ ในไลบรารีตัวเดียวกัน)

#include <Dht11.h>

// สร้าง object dht11 และใช้ pin 2 ในการรับส่งข้อมูล (ใช้ pin ไหนก็ได้ที่สามารถรับส่งข้อมูลแบบ digital)
Dht11 _dht11(2);

void setup() {
	Serial.begin(9600);
}

void loop() {
	/*
	 * หมายเหตุ: ไลบรารีตัวนี้ไม่จำเป็นต้องเช็คสถานะการอ่านจากฟังก์ชั่น read() ว่าค่าที่อ่านได้นั้นถูกต้องหรือไม่
	 * เพราะค่าจะอัปเดตเมื่อ checksum ถูกต้องเท่านั้น ดังนั้นค่าที่อ่านได้จะถูกต้องเสมอ
	 */
	_dht11.read(); //อ่านค่าจากเซ็นเซอร์

	// พิมพ์ค่า ความชื้นในอากาศ หน่วยเป็น %RH
	Serial.print("Humidity: ");
	Serial.print(_dht11.getHumidity());
	Serial.print(" \%RH");

	Serial.print(",  "); // เว้นวรรค

	// พิมพ์ค่า อุณหภูมิ หน่วยเป็นองศาเซลเซียส
	Serial.print("Temperature: ");
	Serial.print(_dht11.getTemperature());
	Serial.println(" degree Celsius");

	// หน่วงเวลา 4 วินาที ก่อนอ่านค่าและแสดงผลครั้งถัดไป (ตรงนี้แล้วแต่ว่าต้องการให้อัปเดตค่าใหม่ช้า/เร็วแค่ไหน)
	delay(4000);
}

เมื่อเปิดดู Serial Monitor จะเห็นผลลัพธ์การทำงานดังนี้

DHT11_program_output

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีปิดบัญชีผู้ใช้ Facebook แบบถาวร

บทความนี้เป็นวิธีการปิดบัญชีผู้ใช้ Facebook บนคอมพิวเตอร์ หากใครต้องการวิธีปิดบัญชีผู้ใช้บนมือถือ Android คลิกอ่านได้ที่บทความวิธีปิดบัญชีผู้ใช้ Facebook แบบถาวร บนมือถือ Android

ปกติเวลาเราต้องการจะปิดบัญชีผู้ใช้ Facebook เรามักจะเข้าไปที่ การตั้งค่า > ความปลอดภัย แล้วกด ยกเลิกการใช้งานบัญชีผู้ใช้ของคุณ แต่วิธีนี้จะเป็นแค่การระงับการใช้งานบัญชีผู้ใช้ Facebook แบบชั่วคราวเท่านั้น เมื่อเราลงชื่อเข้าใช้งาน Facebook อีกครั้ง ก็จะเป็นการกระตุ้นให้บัญชีกลับมาเปิดใช้งานได้ปกติอีกครั้งหนึ่ง

แต่ถ้าหากเราต้องการปิดบัญชีผู้ใช้ Facebook แบบถาวร ซึ่งข้อมูลทั้งหมดจะถูกลบ และไม่สามารถกู้คืนได้อีก ให้ทำตามขั้นตอนดังต่อไปนี้ หรือคลิกที่นี่เพื่อดูวิดีโอประกอบท้ายบทความ

1.ให้คลิกลิงค์ด้านล่างนี้

https://www.facebook.com/help/delete_account

2.เมื่อเจอหน้าแบบนี้ ให้กดปุ่ม “ลบบัญชีผู้ใช้ของฉัน”

permanently-delete-facebook-account-1

3.จากนั้นจะมีช่องให้กรอกรหัสผ่านแสดงขึ้นมา ให้คุณกรอกรหัสผ่านที่คุณใช้ล็อคอินลงไป และจะมีช่องให้กรอก CAPTCHA เพื่อยืนยันว่าคุณไม่ใช่โปรแกรมอัตโนมัติ โดยระบบอาจให้คุณกรอกตัวอักษรตามภาพที่แสดงขึ้นมา หรือให้เลือกรูปภาพตามคำอธิบาย เช่น ภาพด้านล่างนี้ ระบบให้เลือกภาพที่เป็นดอกไม้ทั้งหมดเป็นต้น เสร็จแล้วให้กดปุ่ม “ตกลง”

permanently-delete-facebook-account-2

4.จากนั้นจะมีข้อความบอกเราว่า บัญชีผู้ใช้ของคุณจะถูกลบจริงๆ ในอีก 14 วัน โดยมีเงื่อนไขว่า ภายใน 14 วันนี้ ห้ามลงชื่อเข้าใช้งาน Facebook เลยแม้แต่ครั้งเดียว ถ้าทำได้หลังจาก 14 วันไปแล้วบัญชีของคุณก็จะถูกลบจริงๆ แบบไม่มีทางกู้คืนได้ แต่ถ้าภายใน 14 วันนี้เราลงชื่อเข้าใช้ก็จะเป็นการยกเลิกคำขอในการขอลบบัญชีผู้ใช้ครับ ซึ่งถ้าจะยื่นคำขอปิดบัญชีอีกครั้งให้ไปเริ่มทำตั้งแต่ขั้นตอนที่ 1 ใหม่ครับ

permanently-delete-facebook-account-3

YouTube Video – วิธีปิดบัญชีผู้ใช้ Facebook แบบถาวร

แบ่งปันสิ่งนี้บน

Arduino คืออะไร ?

Arduino เป็นภาษาอิตาลี อ่านว่า อาดุอีโน่ (ฟังการออกเสียงได้ที่ท้ายบทความ) ส่วนคนทั่วไปที่ไม่ใช่คนอิตาลีผมว่าออกเสียงว่า อาดุยโน่ ก็พอแล้วครับ, Arduino คือ Open-Source Platform สำหรับการสร้างต้นแบบทางอิเล็กทรอนิกส์ โดยมีจุดมุ่งหมายให้ Arduino Platform เป็น Platform ที่ง่ายต่อการใช้งาน, โดย Arduino Platform ประกอบไปด้วย

1. ส่วนที่เป็นฮาร์ดแวร์ (Hardware)

  • บอร์ดอิเล็กทรอนิกส์ขนาดเล็ก ที่มีไมโครคอนโทรลเลอร์ (MCU) เป็นชิ้นส่วนหลัก ถูกนำมาประกอบร่วมกับอุปกรณ์อิเล็กทรอนิกส์อื่นๆ เพื่อให้ง่ายต่อการใช้งาน หรือที่เรียกกันว่า บอร์ด Arduino, โดยบอร์ด Arduino เองก็มีหลายรุ่นให้เลือกใช้ โดยในแต่ละรุ่นอาจมีความแตกต่างกันในเรื่องของขนาดของบอร์ด หรือสเปค เช่น จำนวนของขารับส่งสัญญาณ, แรงดันไฟที่ใช้, ประสิทธิภาพของ MCU เป็นต้น (สามารถเปรียบเทียบ และดูสเปคคร่าวๆ ของ Arduino แต่ละรุ่นได้ที่ http://www.arduino.cc/en/Products/Compare)
By SparkFun Electronics from Boulder, USA (Arduino Uno – R3) [CC BY 2.0], via Wikimedia Commons

2. ส่วนที่เป็นซอฟต์แวร์ (Software)

  • ภาษา Arduino (ซึ่งจริงๆ แล้วก็คือ ภาษา C/C++) ใช้สำหรับเขียนโปรแกรมควบคุม MCU
  • Arduino IDE เป็นเครื่องมือสำหรับเขียนโปรแกรมด้วยภาษา Arduino, คอมไพล์โปรแกรม (Compile) และอัปโหลดโปรแกรมลงบอร์ด (Upload)
Arduino IDE 1.8.5
Arduino IDE 1.8.5

Arduino ทำอะไรได้ ?

Arduino ถูกใช้ประโยชน์ในลักษณะเดียวกับ MCU คือ ใช้ติดต่อสื่อสารและควบคุมอุปกรณ์ไฟฟ้าอื่นๆ ด้วยการเขียนโปรแกรมให้กับ MCU เพื่อควบคุมการรับส่งสัญญาณทางไฟฟ้าตามเงื่อนไขต่างๆ

ตัวอย่าง การประยุกต์ใช้ Arduino ในชีวิตประจำวัน เช่น ระบบเปิด/ปิดไฟในบ้านอัตโนมัติ, ระบบรดน้ำต้นไม้อัตโนมัติ, ระบบเปิด/ปิดประตูอัตโนมัติ, ระบบเครื่องซักผ้าหยอดเหรียญ หรือ ใช้ควบคุมความเร็ว และทิศทางการหมุนของคุมมอเตอร์ เป็นต้น

Arduino Official Board กับ Compatible Board ต่างกันอย่างไร ?

Arduino เป็นบอร์ดอิเล็กทรอนิกส์ที่ Open-Source ฮาร์ดแวร์ นั่นคือเปิดเผยแบบแปลนในการผลิต ทำให้ใครๆ ก็สามารถผลิต หรือสร้างบอร์ด Arduino ขึ้นมาจำหน่ายได้ (แต่มีข้อแม้ว่าห้ามใช้ชื่อบอร์ดว่า Arduino) ดังนั้นบอร์ด Arduino จึงมีผู้ผลิตออกมาจำหน่ายมากมาย โดยแบ่งประเภทของบอร์ด Arduino จากแหล่งที่มาที่ต่างกันได้เป็น 2 ประเภท ดังนี้

  1. Official Board หรือ บอร์ดที่ผลิตโดยต้นตำรับ ผลิตจากประเทศอิตาลี “บอร์ดจะถูกผลิตด้วยความประณีต สวยงาม อุปกรณ์แต่ละชิ้นได้มาตรฐาน ผ่านการตรวจเช็คความสมบูรณ์ของสินค้าอย่างดีก่อนออกจำหน่าย” (ตรงเครื่องหมายคำพูดนี้ ความรู้สึกส่วนตัวล้วนๆ ครับ)
  2. Compatible Board หรือ บอร์ดที่เข้ากันได้ (ใช้แทน Official Board ได้) ซึ่งไม่ได้ถูกผลิตโดยต้นตำรับ แต่อาจถูกผลิตขึ้นมาตามแบบแปลนแป๊ะๆ หรืออาจผลิตให้ใกล้เคียงกับแบบแปลนจากต้นตำรับ โดยอาจมีการปรับนู่นนิด ปรับนี่หน่อยบ้าง เพื่อลดต้นทุน หรือเพื่อเพิ่มความสามารถ บอร์ดประเภทนี้ส่วนมากผลิตที่จีนครับ คุณภาพใช้ได้ และราคาถูก เหมาะกับการเอามาศึกษาในระดับผู้เริ่มต้น ซึ่งถ้าเทียบราคากันในรุ่น Arduino UNO R3 ราคาของ Official Board จะอยู่ที่ราวๆ 800 บาท ส่วน Compatible Board จะอยู่ที่ราวๆ 200 บาท เท่านั้นเองครับ

สิ่งที่ทำให้ Arduino น่าสนใจ ?

  • Arduino กำลังเป็นที่นิยม และเป็นที่สนใจ สำหรับนักอิเล็กทรอนิกส์ทั้งมือใหม่ และมือเก่า ทำให้เราสามารถหาอ่านคู่มือ วิธีใช้ วิธีแก้ปัญหาต่างๆ ได้ง่ายบนอินเทอร์เน็ต
  • Arduino พร้อมใช้งานทันที เพราะบอร์ด Arduino ติดตั้งอุปกรณ์จำเป็นพื้นฐานมาให้หมดแล้ว (ต่างจาก MCU เปล่าๆ ที่ต้องซื้ออุปกรณ์จำเป็นอื่นๆ มาติดตั้งเพิ่มเติม)
  • Arduino สามารถเขียนโปรแกรมสั่งงานด้วยไวยากรณ์ภาษา C/C++ ซึ่งง่ายสำหรับผู้ที่มีพื้นฐานด้านการเขียนโปรแกรมอยู่บ้างแล้ว แต่สำหรับผู้ที่ไม่เคยเขียนโปรแกรมมาก่อนเลย ก็สามารถเริ่มต้นศึกษา และหาหนังสืออ่านได้ไม่ยาก นอกจากนี้ยังมีไลบรารี (Library) ให้เลือกใช้มากมาย ทำให้การเขียนโปรแกรมทำได้ง่าย และรวดเร็วขึ้นครับ
  • Arduino ราคาไม่แพงเกินไปสำหรับผู้ที่อยากจะเริ่มต้นใช้งาน
  • การอัปโหลดโปรแกรมที่เขียนบนคอมพิวเตอร์ลงไปที่ Arduino ก็ทำได้โดยง่าย แค่ใช้สาย USB ต่อบอร์ด Arduino เข้ากับคอมพิวเตอร์ แล้วอัปโหลดด้วยโปรแกรม Arduino IDE เท่านั้นเองครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน