ลิงก์ผู้สนับสนุน
วันอาทิตย์ที่ 16 มิถุนายน พ.ศ. 2556
[How to ] enable,disable remote desktop from command line
Enable: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Disable: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
Enable Remote Assistant: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f
วันเสาร์ที่ 15 มิถุนายน พ.ศ. 2556
[How to] Check last user logon in Windows
สำหรับ วิธีการเช็ควดูรายละเอียดว่า user ในเครื่องนั้น ล็อกออนเข้ามาใช้งานเครื่อง ล่าสุดตอนไหน ใน windows นั้น ให้ใช้คำสั่ง
net user [username]
หรืออีกคำสั่งหนึ่งคือ quser แล้วมองหาตรงเวลา logon time
วันพฤหัสบดีที่ 30 พฤษภาคม พ.ศ. 2556
[How to] disconnect ออกจาก remote desktop
ถ้าเราใช้งาน remote desktop ผ่านบาง app หลังจากปิด app ไปแล้ว แต่ปรากฏว่า session การใช้งานยังค้างไว้อยู่ ถ้าต้องการเช็คว่า มี session id ไหนค้างอยู่บ้าง ให้ใช้คำสั่ง qwinsta หลังจากเจอ user ที่ค้างใช้งานเอาไว้ แล้วต้องการปิด ให้ใช้คำสั่ง rwinsta ตามด้วย หมายเลข id ของแต่ละ session ที่จะปิด
END. ,,:P
วันอังคารที่ 19 มีนาคม พ.ศ. 2556
[Raspberry Pi] ทำเครื่อง รับ ส่ง รหัส morse
หลังจากที่ควบคุมขา GPIO กันได้แล้ว ต่อมา เนื่องจากว่าผมไม่รู้จะทำอะไรกับเจ้าขา GPIO ดี ก็เลยนึกเล่นๆไป ได้เครื่อง รับ-ส่ง รหัสมอสมาครับ
โดยในภาพ (และในสคริป) จะใช้ไฟจากขา #24 แล้วก็จากอีกขาหนึ่งที่มันจ่ายไฟ 3V ได้ เรียกไม่ถูกว่าอะไร 555
GPIO #24 -> ตั้งค่าเป็น output สำหรับจ่ายไฟ จากสคริป
3V -> สำหรับจ่ายไฟ ถ้าเราต้องการกดส่งรหัสมอสเอง
GPIO #23 -> ตั้งค่าเป็น input สำหรับรับรหัสมอส
มาดูที่ฝั่งตัวส่งรหัสมอสกันก่อน
#!/usr/bin/perl
$gpio=24;
$delay=0.25; #Delay of send speed
$pause=1*$delay;
$dot_pause=1*$delay;
$dash_pause=3*$delay;
$character_pause=3*$delay;
$word_pause=7*$delay;
print "\n\n";
print " Message >> ";
chomp($text=
$original_text=$text;
@original_text=split //,$original_text;
$text=~s/ /\//ig;
$text=~s/\./.-.-.- /ig;
$text=~s/,/--..-- /ig;
$text=~s/\?/..-.. /ig;
$text=~s/a/.- /ig;
$text=~s/b/.--- /ig;
$text=~s/c/-.-. /ig;
$text=~s/d/-.. /ig;
$text=~s/e/. /ig;
$text=~s/f/..-. /ig;
$text=~s/g/--. /ig;
$text=~s/h/.... /ig;
$text=~s/i/.. /ig;
$text=~s/j/.--- /ig;
$text=~s/k/-.- /ig;
$text=~s/l/.-.. /ig;
$text=~s/m/-- /ig;
$text=~s/n/-. /ig;
$text=~s/o/--- /ig;
$text=~s/p/.--. /ig;
$text=~s/q/--.- /ig;
$text=~s/r/.-. /ig;
$text=~s/s/... /ig;
$text=~s/t/- /ig;
$text=~s/u/..- /ig;
$text=~s/v/...- /ig;
$text=~s/w/.-- /ig;
$text=~s/x/-..- /ig;
$text=~s/y/-.-- /ig;
$text=~s/z/--.. /ig;
$text=~s/1/.---- /ig;
$text=~s/2/..--- /ig;
$text=~s/3/...-- /ig;
$text=~s/4/....- /ig;
$text=~s/5/..... /ig;
$text=~s/6/-.... /ig;
$text=~s/7/--... /ig;
$text=~s/8/---.. /ig;
$text=~s/9/----. /ig;
$text=~s/0/----- /ig;
print " Sending >> $original_text[0]";
$count_text=1;
foreach (split //,$text) {
if ($_ eq '.') {
system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$pause;
system("echo \"1\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$dot_pause;
}
elsif ($_ eq '-') {
system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$pause;
system("echo \"1\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$dash_pause;
}
elsif ($_ eq ' ') {
system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$character_pause;
print "$original_text[$count_text]";
$count_text++;
}
elsif ($_ eq '/') {
system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
select undef,undef,undef,$word_pause;
print "$original_text[$count_text]";
$count_text++;
}
else { print "\nERROR: $_\n"; exit; }
}
print "\n";
หลักการของมันก็คือ รับตัวอักษรจากเราเข้า แล้วก็แปลงเป็น >> . - 'ช่องว่าง' / << แล้วก็ส่งค่า 0 กับ 1 ออกไปตามจังหวะ พอส่งค่า 1 ออกไปจากขา #24 ไฟ LED ก็จะติด แล้วก็ยังส่งค่าไปที่ขา #23 อีกด้วย(ซึ่งจะเป็นของฝั่งรับสัญญาณ ถ้าต้องการดูแค่ LED กระพริบเป็นสัญญาณ ขา #23 ก็ไม่ต้องใช้)
หรือถ้าเรา จะส่งรหัสมอสเอง อยากได้อารมณ์ของการนั่งกดปุ่มจริงๆ 5555 ก็กดจากสวิตได้เลย เพราะมีไฟจ่ายให้ทาง switch จากแหล่งจ่ายไฟ 3V ตลอดอยู่แล้ว
ทีนี้ มาดูทางฝั่งรับ รหัสมอส
#!/usr/bin/perl
$delay=0.1; #second
$timeout=60; #loop for exit if didnt get any morse code
$text='';
$gpio=23;
print " Geting >> ";
do {
open READ,"cat /sys/class/gpio/gpio$gpio/value |";
$value=;
close READ;
select undef,undef,undef,$delay;
$end=0;
} until ($value == 1);
while (1) {
open READ,"cat /sys/class/gpio/gpio$gpio/value |";
$value=;
close READ;
if ($value == 1) {
print '1';
select undef,undef,undef,$delay;
$text.='1';
$end=0;
}
else {
print ',';
select undef,undef,undef,$delay;
$text.=',';
++$end;
}
if ($end > $timeout) {
print "\n Morse >> ",analys($text);
print "\n Text >> ",convert(analys($text));
print "\n";
exit;
}
}
sub analys {
my $text=$_[0];
# $text=~s/1{3,}/-/g; #For send speed = 0.125
# $text=~s/1{1,2}/./g; #For send speed = 0.125
# $text=~s/,{11,}/ \/ /g; #For send speed = 0.125
# $text=~s/,{4,10}/ /g; #For send speed = 0.125
# $text=~s/,{1,3}//g; #For send speed = 0.125
$text=~s/1{4,}/-/g; #For send speed = 0.25
$text=~s/1{1,3}/./g; #For send speed = 0.25
$text=~s/,{11,}/ \/ /g; #For send speed = 0.25
$text=~s/,{5,10}/ /g; #For send speed = 0.25
$text=~s/,{1,4}//g; #For send speed = 0.25
return " ".$text." ";
}
sub convert {
my $text=$_[0];
$text=~s/ \.- /a/ig;
$text=~s/ \.--- /b/ig;
$text=~s/ -\.-\. /c/ig;
$text=~s/ -\.\. /d/ig;
$text=~s/ \. /e/ig;
$text=~s/ \.\.-\. /f/ig;
$text=~s/ --\. /g/ig;
$text=~s/ \.\.\.\. /h/ig;
$text=~s/ \.\. /i/ig;
$text=~s/ \.--- /j/ig;
$text=~s/ -\.- /k/ig;
$text=~s/ \.-\.\. /l/ig;
$text=~s/ -- /m/ig;
$text=~s/ -\. /n/ig;
$text=~s/ --- /o/ig;
$text=~s/ \.--\. /p/ig;
$text=~s/ --\.- /q/ig;
$text=~s/ \.-\. /r/ig;
$text=~s/ \.\.\. /s/ig;
$text=~s/ - /t/ig;
$text=~s/ \.\.- /u/ig;
$text=~s/ \.\.\.- /v/ig;
$text=~s/ \.-- /w/ig;
$text=~s/ -\.\.- /x/ig;
$text=~s/ -\.-- /y/ig;
$text=~s/ --\.\. /z/ig;
$text=~s/ \.---- /1/ig;
$text=~s/ \.\.--- /2/ig;
$text=~s/ \.\.\.-- /3/ig;
$text=~s/ \.\.\.\.- /4/ig;
$text=~s/ \.\.\.\.\. /5/ig;
$text=~s/ -\.\.\.\. /6/ig;
$text=~s/ --\.\.\. /7/ig;
$text=~s/ ---\.\. /8/ig;
$text=~s/ ----\. /9/ig;
$text=~s/ ----- /0/ig;
$text=~s/ \.-\.-\.- /./ig;
$text=~s/ --\.\.-- /,/ig;
$text=~s/ \.\.-\.\. /?/ig;
$text=~s/ //ig;
$text=~s/\// /ig;
return $text;
}
$delay=0.1; #second
$timeout=60; #loop for exit if didnt get any morse code
$text='';
$gpio=23;
print " Geting >> ";
do {
open READ,"cat /sys/class/gpio/gpio$gpio/value |";
$value=
close READ;
select undef,undef,undef,$delay;
$end=0;
} until ($value == 1);
while (1) {
open READ,"cat /sys/class/gpio/gpio$gpio/value |";
$value=
close READ;
if ($value == 1) {
print '1';
select undef,undef,undef,$delay;
$text.='1';
$end=0;
}
else {
print ',';
select undef,undef,undef,$delay;
$text.=',';
++$end;
}
if ($end > $timeout) {
print "\n Morse >> ",analys($text);
print "\n Text >> ",convert(analys($text));
print "\n";
exit;
}
}
sub analys {
my $text=$_[0];
# $text=~s/1{3,}/-/g; #For send speed = 0.125
# $text=~s/1{1,2}/./g; #For send speed = 0.125
# $text=~s/,{11,}/ \/ /g; #For send speed = 0.125
# $text=~s/,{4,10}/ /g; #For send speed = 0.125
# $text=~s/,{1,3}//g; #For send speed = 0.125
$text=~s/1{4,}/-/g; #For send speed = 0.25
$text=~s/1{1,3}/./g; #For send speed = 0.25
$text=~s/,{11,}/ \/ /g; #For send speed = 0.25
$text=~s/,{5,10}/ /g; #For send speed = 0.25
$text=~s/,{1,4}//g; #For send speed = 0.25
return " ".$text." ";
}
sub convert {
my $text=$_[0];
$text=~s/ \.- /a/ig;
$text=~s/ \.--- /b/ig;
$text=~s/ -\.-\. /c/ig;
$text=~s/ -\.\. /d/ig;
$text=~s/ \. /e/ig;
$text=~s/ \.\.-\. /f/ig;
$text=~s/ --\. /g/ig;
$text=~s/ \.\.\.\. /h/ig;
$text=~s/ \.\. /i/ig;
$text=~s/ \.--- /j/ig;
$text=~s/ -\.- /k/ig;
$text=~s/ \.-\.\. /l/ig;
$text=~s/ -- /m/ig;
$text=~s/ -\. /n/ig;
$text=~s/ --- /o/ig;
$text=~s/ \.--\. /p/ig;
$text=~s/ --\.- /q/ig;
$text=~s/ \.-\. /r/ig;
$text=~s/ \.\.\. /s/ig;
$text=~s/ - /t/ig;
$text=~s/ \.\.- /u/ig;
$text=~s/ \.\.\.- /v/ig;
$text=~s/ \.-- /w/ig;
$text=~s/ -\.\.- /x/ig;
$text=~s/ -\.-- /y/ig;
$text=~s/ --\.\. /z/ig;
$text=~s/ \.---- /1/ig;
$text=~s/ \.\.--- /2/ig;
$text=~s/ \.\.\.-- /3/ig;
$text=~s/ \.\.\.\.- /4/ig;
$text=~s/ \.\.\.\.\. /5/ig;
$text=~s/ -\.\.\.\. /6/ig;
$text=~s/ --\.\.\. /7/ig;
$text=~s/ ---\.\. /8/ig;
$text=~s/ ----\. /9/ig;
$text=~s/ ----- /0/ig;
$text=~s/ \.-\.-\.- /./ig;
$text=~s/ --\.\.-- /,/ig;
$text=~s/ \.\.-\.\. /?/ig;
$text=~s/ //ig;
$text=~s/\// /ig;
return $text;
}
หลักการทำงานคือ หลังจากรันสคริป มันจะรอเรื่อยๆ จนกว่าจะมีไฟจ่ายเข้าทาง #23 มันถึงจะเริ่มทำงาน โดยมันจะนับเวลาที่มีไฟจ่ายเข้า
- ถ้าจ่ายเข้าสั้นๆ ก็นับเป็น . (dot)
- ถ้าจ่ายเข้ายาวๆก็นับเป็น - (dash)
- ถ้าเว้นว่างระยะหนึ่ง แล้วจ่ายไฟเข้าใหม่ ก็นับเป็นสิ้นๆสุดหนึ่งตัวอัก
- ถ้าเว้นว่างยาวอีกหน่อย แล้วจ่ายไฟเข้าใหม่ ก็นับเป็นหนึ่งคำ
- ถ้าเว้นว่างยาวเรื่อยๆ ก็ถือว่าสิ้นสุดการรับส่ง
จบละครับ หลักการง่ายๆ ตอนนี้ยังไม่รู้ว่าทำเสร็จ จะเอาประโยชน์อะไรดี ทำเอาเล่นๆสนุกๆก่อน ใครมีไอเดียวแจ่มๆ ก็มาแชร์กันบ้างนะครับ :P
Download morse-send.pl >> http://pastebin.com/Zi8WKn0L
Download morse-receive.pl >> http://pastebin.com/SidGeJtD
[Raspberry Pi][Perl] ควบคุม GPIO บน RaspberryPi ด้วย perl
อธิบายก่อนนะครับ ว่าอันที่จริง ไม่ใช่ใช้คำสั่ง perl ซักเท่าไหร่ แต่จะใช้ภาษา perl รันคำสั่ง linux ตอนใช้งาน GPIO บน raspberry pi อีกทีนึง ไม่งงนะ = = 55555
สำหรับสคริปนี้ ต้องรันด้วยสิทธิ์ root นะครับ (login ด้วย user root ก่อนรัน หรือใช้คำสั่ง sudo perl file.pl)
print "\n [+]----------------------------------------[+]";
print "\n | GPIO Control by using perl on bash |";
print "\n | Test on Raspbian Wheezy [RPi] |";
print "\n | |";
print "\n | Created by : AssazziN |";
print "\n | Version 1: 11 Mar 2013 |";
print "\n [+]----------------------------------------[+]\n";
print "\n >> type h|help for help\n";
do {
print " >> ";
chomp($input=
if ($input eq 'h' or $input eq 'help') { help(); }
elsif ($input=~/^export (\d{1,2})$/) {
system("echo \"$1\" > /sys/class/gpio/export");
}
elsif ($input=~/^direction (\d{1,2}) (out|in)$/) {
system("echo \"$2\" > /sys/class/gpio/gpio".$1."/direction");
}
elsif ($input=~/^value (\d{1,2}) (1|0)$/) {
system("echo \"$2\" > /sys/class/gpio/gpio".$1."/value");
}
elsif ($input=~/^unexport (\d{1,2})$/) {
system("echo \"$1\" > /sys/class/gpio/unexport");
}
elsif ($input=~/status/i) {
@pin=();
$pin=`find /sys/class/gpio/ gpio*`;
while ($pin=~/sys\/class\/gpio\/gpio(\d{1,2})/g) { push(@pin,$1); }
print " All pins that useabled : @pin\n";
}
elsif ($input eq 'q' or $input eq 'quit' or $input eq 'exit') {}
else { print " $input : command not found\n"; }
} while ($input ne 'q' and $input ne 'quit' and $input ne 'exit');
sub help {
print "\n ** This script requirement ROOT ***\n";
print " > export [GPIO PIN] set gpio pin to useable\n";
print " > direction [GPIO PIN] [out|in] set gpio pin direction\n";
print " > value [GPIO PIN] [1|0] set gpio pin value\n";
print " > unexport [GPIO PIN] set gpio pin to unuseable\n";
print " > status check status of all pin\n";
print " > q quit exit exit script\n\n";
}
Pastebin: [Raspberry Pi] GPIO Control
ส่วนการใช้งานคำสั่งๆจริงๆ แบบไม่ผ่านสคริปนี้ ก็แกะจากโค้ดเอาละกัน ;p
คำสั่งเปิดใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/export
คำสั่งให้ขา gpio #23 เป็นตัว output : sudo echo "out" > /sys/class/gpio/gpio23/direction
คำสั่งให้ขา gpio #23 เป็นตัว input : sudo echo "in" > /sys/class/gpio/gpio23/direction
คำสั่งจ่ายไฟให้ขา gpio #23 : sudo echo "1" > /sys/class/gpio/gpio23/value
คำสั่งหยุดจ่ายไฟให้ขา gpio #23 : sudo echo "0" > /sys/class/gpio/gpio23/value
คำสั่งอ่านค่าสถานะของขา gpio #23 : cat /sys/class/gpio/gpio23/value
คำสั่งเลิกใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/unexport
วันจันทร์ที่ 11 มีนาคม พ.ศ. 2556
[Raspberry Pi] การเปิดใช้งาน ftp ด้วย vsftpd
สำหรับการเปิดใช้งาน ftp บน raspberry pi รู้สึกว่าจะมีให้เลือกใช้บริการหลายเจ้านะ แต่อันที่จริงคือ ผมรู้จักแต่ vsftpd 5555 ;p เห็นว่าตัวนี้ได้รับความนิยมเยอะด้วย ถึงมีปัญหาอะไร ก็จะมีเพื่อนช่วยแก้ให้เยอะด้วย จริงมั้ยหละ ? :)
เอาละครับ มาถึงเวลาลองกันละ
1. ตามสเตปเลย sudo apt-get install vsftpd
2. แล้วก็ไปตั้งค่ากันก่อน sudo nano /etc/vsftpd.conf
2.1 แก้ตรงบรรทัด anonymous_enable=YES ให้เป็น anonymous_enable=NO (เพื่อป้องกันไม่ให้ใครก็ได้ล็อกอินเข้ามาแบบไม่ใส่ user ไม่ใส่ pass)
2.2 แก้ตรง #local_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ทุก user ใน /etc/passwd ล็อกอินเข้ามาได้)
2.3 แก้ตรง #write_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ user ที่ล็อกอินเข้ามา สามารถเขียนไฟล์ได้)
(2.3) หรือบ้างคน อาจจะเพิ่มบรรทัด force_dot_files=YES เข้าไปบรรทัดสุดท้ายของไฟล์ด้วยก็ได้ เพื่อให้โปรแกรม ftp แสดงไฟล์ .htaccess
2.4 ถ้าต้องการแก้ไข default ที่อยู่ของแต่ละ user สมมติว่า เรา ftp เข้าไปด้วย user ชื่อ www-data แล้วที่อยู่ปกติจะอยุ่ที่ /home/pi เราต้องการให้อยู่ที่ /var/www ให้แก้ที่ไฟล์ /etc/passwd หรือใช้คำสั่ง sudo -d /var/www www-data
3. ตั้งค่าเรียบร้อย ก็เปิดใช้งานเลย sudo service vsftpd restart
4. สามารถล็อกอินใช้งานจาก programs ftp ทั่วไปได้แล้ว
Ref : http://spalinux.com/2011/09/install_configure_vsftpd_ftp_server
http://www.voip4share.com/centos-the-community-enterprise-operating-system-f55/vsftpd-ftp-server-centos-t1162.html
http://www.itmanage.info/technology/linux/vsftp_config_read_only.html
วันอาทิตย์ที่ 10 มีนาคม พ.ศ. 2556
[Raspberry Pi] การใช้ vnc เพื่อ remote จากคอมไป raspberyy pi
สำหรับจะทำให้ Raspberry Pi เป็นเครื่อง vnc server ต้องติดตั้งตัว tightvncserver ก่อนครับ
sudo apt-get install tightvncserver ต่อมาถ้าจะสร้าง 'หน้าต่าง' (ไม่รู้ว่าจะเรียกว่าอะไร 5555) ที่จะให้รีโมตเข้ามา กำหนดค่ายังงี้ครับ >> vncserver -geometry 1366x768 :N ตรง N อันนี้ใส่เป็นตัวเลขนะครับ เลขอะไรก็ได้ ประมาณว่า เป็นหมายเลขของ 'หน้าต่าง' ที่เราใช้งาน ปกติมันจะตั้งค่าละเอียดกว่านี้อยู่หรอก แต่หลักผมก็ใช้เท่านั้นแหละ อยากจะรู้การใช้งานแบบละเอียด ก็ vncserver --help เลย
สำหรับทางเครื่อง PC ,NB ที่จะ remote เข้าไป ถ้าเป็น windows ผมแนะนำโปรแกร ultra vnc viewer นะครับ จากที่ลองมาใช้งานได้ง่ายดี วิธีใช้งานก็แค่ ใส่หมายเลข ip ของ rPi ตามด้วย :N เหมือนในภาพเลย
สมัครสมาชิก:
บทความ (Atom)



