วันเสาร์ที่ 20 ตุลาคม พ.ศ. 2561

Arduino Happy Birthday Song

//Sound frequency note By Yoshioka

float G_LL = 783.991;
float A_L = 880;
float B_L = 987.767;
float C_L = 1046.50;
float D_L = 1174.66;
float E_L = 1318.51;
float F_L = 1396.91;
float G_L = 1567.98;
float A_M = 1760.00;
float B_M = 1975.53;
float C_M = 2093.00;
float D_M = 2349.32;
float E_M = 2637.02;
float F_M = 2793.83;
float G_M = 3135.96;
float A_H = 3520.00;
float B_H = 3951.07;

void happybirthdaysong()
{
  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, A_L, 400);
  delay(400);
  tone(speakerPin, G_LL, 400);
  delay(400);
  tone(speakerPin, C_L, 400);
  delay(400);
  tone(speakerPin, B_L, 800);
  delay(1000); 

  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, A_L, 400);
  delay(400);
  tone(speakerPin, G_LL, 400);
  delay(400);
  tone(speakerPin, D_L, 400);
  delay(400);
  tone(speakerPin, C_L, 800);
  delay(1000); 

  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, G_LL, 200);
  delay(200);
  tone(speakerPin, G_L, 400);
  delay(400);
  tone(speakerPin, E_L, 400);
  delay(400);
  tone(speakerPin, C_L, 400);
  delay(400);
  tone(speakerPin, B_L, 400);
  delay(400);
  tone(speakerPin, A_L, 800);
  delay(1000);

  tone(speakerPin, F_L, 200);
  delay(200);   
  tone(speakerPin, F_L, 200);
  delay(200);     
  tone(speakerPin, E_L, 400);
  delay(400);     
  tone(speakerPin, C_L, 400);
  delay(400);       
  tone(speakerPin, D_L, 600);
  delay(400);       
  tone(speakerPin, C_L, 900);
  delay(1000);         
  }

Arduino Days of Week

void daysofweek()
{
int d    = 6;         //Day     1-31
int m    = 9;       //Month   1-12
int y    = 1982;     //Year    1982

int weekdays  = (d += m < 3 ? y-- : y - 2, 23*m/9 + d + 4 + y/4- y/100 + y/400)%7;
Serial.println(weekdays);
}

วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2561

ฮอตสปอต iPhone ไม่ได้

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

หลายๆ ครั้งที่มีคนถามผมเลยคิดว่าเผื่อจะมีใครติดปัญหาแล้ว Search มาเจอวิธีของผมบ้างอาจจะช่วยท่านได้

1. ตั้งชื่อเครื่อง iPhone ให้แตกต่างจากคนอื่นๆ เขา เช่น iCAT, iDOG, iBIRD, iSAAD เอาว่าที่ไม่ใช่ชื่อตั้งต้นที่เขาตั้งมาให้ก็แล้วกันนะครับ จะได้ไม่ไปเชื่อมเครื่องคนอื่นเขาทำให้สับสนเฉยๆ

2. อันนี้สำคัญ ***ตั้งรหัสผ่านที่ต้องประกอบไปด้วย ตัวอักษรใหญ่ 2 ตัว เล็ก 2 ตัว และก็ตัวเลข รวมกันแล้วให้ครบ 8  ตัว อย่างน้อย หรืออาจจะมีอัขระพิเศษเข้าไปด้วยก็ได้ครับ เช่น HHH$hhh44 หรือ hhh#HHH44 เป็นต้น ทำไมต้องตั้งแบบนี้หรอครับ ผมลองดูแล้ว ถ้าตั้งแบบนี้ จะเห็น ฮอตสปอตของ iPhone เร็วและได้ตลอด แต่ถ้าเปลี่ยนเป็นแบบง่ายๆ เช่น 12345678 แบบนี้ เปิดแล้วไม่ค่อยจะ Search เจอครับ อาจจะเป็นไปได้ว่าเค้าบังคับให้ตั้งรหัสให้คาดเดายากขึ้นถึงจะยอมให้ปล่อย ฮอตสปอตครับ

3. ให้เปิดหน้าแชร์ ฮอตสปอตไว้จนกว่าเครื่องที่เราแชร์จะเชื่อมกับเราได้สำเร็จ

เพียงเท่านี้ผมว่าน่าจะหมดปัญญาที่เป็นข้อสงสัยกับใครหลายคนว่าทำไมแชร์เน็ต iPhone ยากไปได้นะครับ

วันอังคารที่ 18 กันยายน พ.ศ. 2561

ค้นหาข้อมูล MS-Outlook ไม่ได้ (Windows 7 64 bit , Outlook 2016)

ค้นหาข้อมูล MS-Outlook ไม่ได้ (Windows 7 64 bit  , Outlook 2016)

วิธีแรก

1. เปิด Outlook, ไปที่  File > Options > Search > Indexing Options > Modify and เอา Microsoft Outlook ออก
2. ไปที่  File > Account Settings > Account Settings.
3. เลือก  Data Files tab.
4.ไปดูว่า OST file อยู่ที่ไหน เพื่อที่จะไปยัง Folder นั้น
5. ปิด Outlook.
6. ใช้ Explorer ไปเปิด Folder ที่เก็บไฟล์ บางทีอาจจะอยู่ C:\Users\Username\AppData\Local\Microsoft\Outlook.
7. เลือกที่ OST file ใน folder คลิกขวา highlighted file เลือก Properties.
8. คลิกปุ่ม Advanced
9. เลือก Allow this file to have contents indexed ใน file properties option ในกรณีที่ยังไม่ได้เลือกไว้ , แล้วก็กดปุ่ม OK.
10. เปิด Outlook, ไปที่  File > Options > Search > Indexing Options > กลับไป ติ๊กที่ Microsoft Outlook อีกครั้ง แล้วก็ลองค้นหาดูอีกที


วิธีที่ 2

ลองไปดู ค่าใน Registry

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search

PreventIndexingOutlook  [DWORD (32-bit)]  ดูว่าต้องมีค่าเป็น 1 ครับ

ถ้า Windows Search [Key] ไม่มีให้เพิ่ม Key นี้เข้าไปเลย
พร้อมกับเพิ่ม PreventIndexingOutlook [DWORD (32-bit)] แล้วใส่ค่าเป็น 1

วิธีที่ 3
ลองเข้า Outlook ด้วย Safemode
ปุ่ม Windows+R พิมพ์ Outlook /safe
แล้วลองค้นหาดูว่าได้ไหม ถ้าได้ ให้ไปเอา Add-in ออก

วิธีที่ 4
ลองเปลี่ยนหรือสลับ User Profile ดูว่า อีกโปรไฟล์นึงสามารถค้นหาได้หรือไม่ ถ้าได้ อาจจะต้องไปดู Service พวก Windows Search , Indexing ว่า User Profile ที่ Search ไม่ได้ Service Start อยู่หรือไม่ หรือหากไม่รู้จะแก้ยังไงก็บังคับ User ใช้ Profile ใหม่ไปเลย 55


วันอังคารที่ 28 สิงหาคม พ.ศ. 2561

เพิ่มขนาด Drive Raspberry Pi ด้วย Gparted

เนื่องจากเวลาเราทำการสร้าง Micro CD Boot แล้ว บางครั้ง พื้นที่ใช้งานของ Card ไม่เต็ม เช่น Card 32GB แต่เห็นแค่ 10GB อะไรแบบนี้

ถ้าอยากรู้ว่าเต็ม Card ไม่ให้ลองสั่ง

#sudo su df -h
จะเห็นว่า Size ขนาดเท่าไหร่ เช่น 32GB ก็ควรจะเห็น 29 - 30 เป็นอย่างน้อยครับ


เราจึงต้องมี Tools มาช่วยในการเพิ่มหรือเรียกพื้นที่ที่ยังไม่ถูกใช้งานให้เต็ม Card กันครับนั่นคือ Gparted

#sudo su apt-get install gparted

เรียกใช้ก็สั่ง

#sudo su gparted

จะเป็น GUI ให้ปรับขาดได้นะครับ คล้ายๆ Partition Magic ในวินโดว์ เลยครับ

วันอาทิตย์ที่ 26 สิงหาคม พ.ศ. 2561

Arduino Uno : GSM A6 โทรออก เมื่อ PIR Sensor ทำงาน

ผมได้ลองซื้อ GSM Module A6 มาเล่นพึ่งจะได้ใช้จริงวันนี้

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

ข้อดี ไม่เสียค่าเน็ต, ไม่เสียค่าส่ง SMS, ไม่เสียรายเดือน มีแต่ค่ารักษาเบอร์เดือนละ 10 บาทตาม กสทช.

ข้อเสีย เปิดห้องเดินผ่าน PIR เมื่อไหร่โทรหาเมื่อนั้น ไม่รู้ว่าใครผ่าน ดูภาพไม่ได้

char phone_no1[]="089xxxxxxx";
char phone_no2[]="081xxxxxxx";

//By Yoshioka

void setup() {
  Serial.begin(9600);
  delay(200);

  pinMode(2,INPUT);                     \\PIR Sensor
  digitalWrite(2,LOW);

  pinMode(3,OUTPUT);                 \\GSM A6 POWER ON
  digitalWrite(3,LOW);
  delay(2);
  digitalWrite(3,HIGH);
  delay(3000);
  digitalWrite(3,LOW);
  delay(2);
 
  pinMode(4,OUTPUT);                \\Pre +5V Port
  digitalWrite(4,HIGH);                 \\Set +5V Port  เอาไฟไปเลี้ยงหลอด LED

}

void loop() {

  if (digitalRead(2)==HIGH) {
  Serial.println("AT");                         \\เริ่มสั่งงาน GSM
  delay(1000);
  Serial.print("ATD");                         \\คำสั่ง สั่งโทร
  Serial.println(phone_no1);               \\เบอร์ที่เตรียมไว้
  // Serial.println(";");                          \\บางครั้งอาจจ้องใส่  " ; "  ต่อท้ายเบอร์
  delay(13000);                                    \\ให้โทรไป 13 วินาที
  Serial.println("ATH");                       \\คำสั่ง หยุดโทร
  delay(5000);

  Serial.println("AT");                        \\เริ่มสั่งงาน GSM
  delay(1000);
  Serial.print("ATD");                         \\คำสั่ง สั่งโทร
  Serial.println(phone_no2);               \\เบอร์ที่เตรียมไว้
  // Serial.println(";");
  delay(13000);                                   \\ให้โทรไป 13 วินาที
  Serial.println("ATH");                       \\คำสั่ง หยุดโทร
  delay(5000);
  }

}

Arduino Uno Ethernet Shield W5100 (unhandle https : 443) Post ค่าด้วยตัวเองไม่ได้

Arduino Uno Ethernet Shield W5100 (handle https : 443) Post ค่าด้วยตัวเองไม่ได้

ผมได้พยายามหาข้อมูลอยู่ระยะนึง... เพื่อที่จะหาคำตอบว่า ทำไม Arduino Uno ที่ใช้ Ethernet Shield W5100 จึงไม่สามารถ Post ค่าไปยัง Server ของ Line เพื่อจะทำเป็น Line Notify ได้ เหมือน Wemos D1 หรือ ESP8266

ตอนที่ผมเขียนบทความอยู่นี้ ผมก็ยังทำไม่ได้นะ ยังส่งค่าไป Line Server ไม่ได้ แต่ถ้าส่งผ่าน http กับเครื่อง Local Host ปกติ ไม่มีปัญหาสามารถ Post ค่าไปได้

ผมไปเจออยู่ที่หนึ่งที่เค้าบอกว่า Ethernet Shield W5100 นี้ ไม่สามารถ Handle https ได้เนื่องจากมีการเข้ารหัสของข้อมูลต้องใช้เวลา Handle อยู่ระยะนึงซึ่ง W5100 ทำไม่ได้ ทำให้ไม่สามารถ Post ค่าไปยัง Server ที่ใช้ protocol https เหล่านั้นได้

ผมก็เลยมาลองทำกับ http ที่เครื่องตัวเองดู เออ มันได้จริงๆ ตามที่ได้กล่าวไว้ตอนต้น

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

ขอบคุณครับ

แก้ Active Desktop Recovery

เข้าไปแก้ Value ในไฟล์ DeskHtmlVersion  ให้กลายเป็น 0 ไม่ให้แสดงหน้าต่าง Active Desktop Recovery เข้าไปที่  HKEY_CURRENT_USER/Software/Mi...