วันอังคารที่ 19 เมษายน พ.ศ. 2559

[week6]TPIC6B595

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ใช้ I/O จาก arduino น้อยลง
  • ฝึกใช้ TPIC6B595
อุปกรณ์

  • arduino
  • LED
  • switch
  • TPIC6B595
ขั้นตอนการทำ
กดสวิท แล้วไฟติด
  • CODE
  • ต่อสายไฟ


วันจันทร์ที่ 18 เมษายน พ.ศ. 2559

[week5]์ NodeMCU esp8266 Web client

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  •  รับค่าสภาพอากาสจาก openweathermap.org ด้วย HTTP GET
อุปกรณ์

  • esp8266
ขั้นตอนการทำ

  • เปิดการเชื่อมต่อ TCP Client ไปที่ Server api.openweathermap.org ที่ port 80
  •  ส่ง GET (จังหวัด หรือ เมืองที่ต้องการทราบ)

code ขอสภาพอากาศ ขอนแก่น ลงesp8266

เมื่อ อัพโหลด เสร็จ กดแว่นขยายดูข้อมูล

[week5]์ NodeMCU esp8266 Web server Ajax

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ควบคุม การทำงานผ่านเว็ป
  • ดูสถานะ การทำงานผ่านเว็ป
อุปกรณ์

  • esp8266
ขั้นตอนการทำ
     code ลง esp8266 แบบแสดงสถานะเป็น text
     ให้ต่อ LED ที่ D1  (ขาสั้น)
     ลงเสร็จแล้ว ให้ กดแว่นขยาย แล้วดู IP ที่ปรากฎ แล้วนำ ไปใส่ที่ Address ของ browser
     เช่น 192.168.10.5:8000    
     8000 คือ port
     เมื่อเข้าได้ จะมีข้อความ แสดงสถานะของ LED
     port 80 ภาพตัวอย่างด้านล่าง



code ลง esp8266 แบบมีปุ่มควบคุม LED ภาพตัวอย่างด้านล่าง

ต่อ LED ที่ขา D0 port 80


     code ลง esp8266 แบบ วงกลม แสดงสถานะ

     ต่อสวิทย์ ที่ขา D2  ลองกด ปล่อย รูปวงกลมที่หน้าเว็ป จะเปลี่ยนแปลง
     ภาพตัวอย่างด้านล่าง
 
     port 80 ดู IP จากการกกด แว่นขยาย

     code ลง esp8266 server ajax
     ภาพตัวอย่างด้านล่าง
  

     port 5678 กำหนด อยู่ในโค้ด
     ปุ่ม relay คือ สั่ง เปิด ปิด LED ขา D1 D2

[week5]์ NodeMCU esp8266 GPIO

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ฝึกใช้ input output 
อุปกรณ์ที่ใช้

  • esp8266 2.0 +
  • breadboard
  • switch
  • LED
  • wire
ขั้นตอนการทำ

  • เลือก board NodeMCU 1.0 (ESP-12E) 
  • upload speed 9600
  • โหลดโค้ด ลงesp8266 
  • GPIO input
  • ต่อ input ที่ขา D0
  • output ที่ D1
  • LED ที่ใช้ เป็นแบบสามขา 5V GND 5V ตามลำดับ


   

GPIO output

ต่อ output ที่ขา D1
   

วันศุกร์ที่ 15 เมษายน พ.ศ. 2559

[week5] NodeMCU ESP8266 get start

Contact : kantasak.singyabut@gmail.com
เมื่อติดตั้ง arduino IDE เสร็จแล้ว

ไปที่ Menu File >> Preferences

ใส่URL >> ลงใน Addition Board Manager URLs:
ดังนี้ http://arduino.esp8266.com/stable/package_esp8266com_index.json
(สามารถดูข้อมูลเพิ่มเติมหากมีการเปลี่ยนแปลงได้
จาก https://github.com/esp8266/Arduino)

แล้วกด OK

จากนั้นไปที่ Menu Tools >> Board:”xxx” >> Board Manager…

เลือก Type เป็น Contributed ไปที่ ESP8266 และกด Install

เมื่อติดตั้ง ESP8266 เสร็จเรียบร้อยแล้ว ให้ปิดโปรแกรม Arduino IDE ก่อน แล้วจึงเปิดขึ้นมาใหม่

เมื่อเปิดโปรแกรม Arduino IDE ขึ้นมาใหม่ ให้ลองไปที่ Menu Tools >> Board:”xxx” จะพบว่า มี
Menu สำหรับเลือกใช้งาน ESP8266 กับ Arduino IDE ขึ้นมาให้เลือกใช้

จะเลือกใช้ board "NodeMCU 1.0(ESP-12E Module)"

----------------------------------------------------------------------------------------------------------------
code ดู MAC address

ตัวอย่าง code ทดสอบ ว่า upload ได้
     int LED_X = 2; // GPIO2
int LED_Y = 16; // GPIO16 or BUILTIN_LED
void setup() {
pinMode(LED_X, OUTPUT); pinMode(LED_Y, OUTPUT);
}
void loop() {
digitalWrite(LED_X, LOW); digitalWrite(LED_Y, HIGH); delay(200);
digitalWrite(LED_X, HIGH); digitalWrite(LED_Y, LOW); delay(200);
}
----------------------------------------------------------------------------------------------------------------

[week5] NodeMCU ESP8266 TCP Server

Contact : kantasak.singyabut@gmail.com
โหลดโปรแกรม hercules ไปใช้
hercules

เปิดโปรแกรมมาจะเห็น IP ของเรา


ไปที่ TCP client แล้ว ใส่ IP ของ esp8266 และ port ตามที่ code กำหนด แล้วกด connect

แบบนี้จะเป็นการลอง ส่งข้อความไปหา TCP server ของโปรแกรม

โค้ดนี้จะทำให้ esp8266 เป็น server
โหลด code ลง esp8266 เมื่อลงแล้ว ให้ กดรูปแว่นขยาย เพื่อดู IP ของ esp8266 แล้วนำไปใส่ใน ช่องIP ของโปรแกรม hercules ที่ TCP client

#include <ESP8266WiFi.h>
#define SERVER_PORT 8000 //กำหนด Port ใช้งาน
const char* ssid = "dokk"; //กำหนด SSID เน็ตตัวเอง
const char* password = "123456789"; //กำหนด Password
WiFiServer server(SERVER_PORT); //สร้าง object server และกำหนด port
void setup()
{ Serial.begin(115200); //เปิดใช้ Serial
Serial.println("");
Serial.println("");
WiFi.begin(ssid, password); //เชื่อมต่อกับ AP
while (WiFi.status() != WL_CONNECTED) //รอการเชื่อมต่อ
{ delay(500);
Serial.print(".");
}
Serial.println("WiFi connected"); //แสดงข้อความเชื่อมต่อสำเร็จ
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //แสดงหมายเลข IP
server.begin(); //เริ่มต้นทำงาน TCP Server
Serial.println("Server started"); //แสดงข้อความ server เริ่มทำงาน
ESP.wdtDisable(); //ปิด watch dog Timer
}
void loop()
{ WiFiClient client = server.available(); //รอรับ การเชื่อมต่อจาก Client
if (client) //ตรวจเช็คว่ามี Client เชื่อมต่อเข้ามาหรือไม่
{
Serial.println("new client"); //แสดงข้อความว่ามี Client เชื่อมต่อเข้ามา
while (1) //วนรอบตลอด
{ while (client.available()) //ตรวจเช็ตว่ามี Data ส่งมาจาก Client หรือไม่
{ uint8_t data = client.read(); //อ่าน Data จาก Buffer
Serial.write(data); //แสดงผล Data ทาง Serial
}
if (server.hasClient()) //ตรวจเช็คว่ายังมี Client เชื่อมต่ออยู่หรือไม่
{ return; //ถ้าไม่มีให้ออกจาก ลูป ไปเริ่มต้นรอรับ Client ใหม่
}
}
}
}

[week5] NodeMCU ESP8266 TCP Client

Contact : kantasak.singyabut@gmail.com
โหลด hercules มาลง

hercules

วิธีใช้งาน hercules
เปิดโปรแกรมมาจะเห็น IP ของเรา

จากนั้นไปที่ TCP server แล้วกด listen จะมี คำว่า Hello ขึ้น


code นี้จะทำให้ esp8266 เป็น client

#include <ESP8266WiFi.h>
#define SERVER_PORT 8000 //ค่า port ที่ต้องการเชื่อมต่อ
IPAddress server_ip = {192, 168, 8, 10}; //ค่า ip ของ Server (อย่าลืมแก้เป็น IP ของโปรแกรมตัวเอง)
const char* ssid = "dokk"; //ค่าของ SSID (อย่าลืมแก้เป็น ชื่อ SSID ของตัวเอง)
const char* password = "123456789"; //ค่าของ SSID (อย่าลืมแก้เป็น password ของตัวเอง)
WiFiServer server(SERVER_PORT); //สร้าง object server และกำหนด port ที่ต้องการเชื่อมต่อกับ server
WiFiClient client; //สร้าง object client
void setup()
{
Serial.begin(115200); //เปิดใช้ Serial
WiFi.begin(ssid, password); //เชื่อมต่อกับ AP
while (WiFi.status() != WL_CONNECTED) //รอการเชื่อมต่อ
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //แสดงหมายเลข IP
Serial.println("Connect TCP Server");
while (!client.connect(server_ip, SERVER_PORT)) //เชื่อมต่อกับ Server
{
Serial.print(".");
delay(100);
}
Serial.println("Success");
ESP.wdtDisable(); //ปิด watch dog Timer
}
void loop()
{
while (client.available()) //ตรวจเช็ตว่ามี Data ส่งมาจาก Server หรือไม่
{
uint8_t data = client.read(); //อ่าน Data จาก Buffer
Serial.write(data); //แสดงผล Data ทาง Serial
}
client.println("SUUUUUUUUUUUUUUUUUUUUUUUT"); //ส่งค่าที่ได้รับกลับไปยัง Server
delay(1000);
}

วันพุธที่ 13 เมษายน พ.ศ. 2559

[week4] LabView Interface from Arduino via LIFA

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ใช้ LabView ง่ายต่อผู้ใช้ทั่วไป

อุปกรณ์

  • arduino
  • LED
  • wire
ขั้นตอนการทำ
        ลง

  • libraries นำไปลงใน C:\Program Files (x86)\Arduino\libraries
  • เปิด arduino file> example > LiFa_Base >upload ไฟล์ LIFA_Base
  • ปิด Arduino 
  • ไฟล์ Labview
  • เปิด LabView Run 


  • ไฟล์ Labview download ไฟ3ดวงวิ่ง ซ้ายไปขวา





วันพฤหัสบดีที่ 7 เมษายน พ.ศ. 2559

[week3] Labview SensorTempDS18B20 and keepdatain excel

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ฝึกใช้ Labview ยากนะ
  • เก็บข้อมูล temp แต่ละช่วงเวลา
อุปกรณ์ที่ใช้

  • arduino
  • sensor temp DS18B20
  • breadboard
  • R 10k
  • wire
ขั้นตอนการทำ




วงจร


ไฟล์ จะถูกสร้างไว้ที่ D:\Temp

[week3] Labview&ArduinoUseRomwithTick-Tock Shield

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ใช้ labview สะดวกกับผู้ใช้งาน ดูค่าที่อยู่ใน รอมของ arduino
อุปกรณ์ที่ใช้

  • arduino
  • Tick Tock Shield
  • โปรแกรม LabView
ขั้นตอนการทำ


Link download ทั้งสองไฟล์

  • ไฟล์ labview
  • code ลง arduino
  • โหลดโค้ดลง arduino ปิดโปรแกรม
  • เปิด LabView 
  • เลือก port กดปุ่มสีแดงเพื่อรัน แล้วตัวเลขก็จะขึ้น
  • กด up ค่าจะ + กด down ค่าจะลด และค่าจะถูกเก็บไว้ใน Rom ของ Arduino 
  • เสียบไฟเข้ามาใหม่ค่าก็จะยังเท่าเดิม



[week3] LabviewControl LED-OnOff

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม
  • ใช้ labview ง่ายต่อผู้ใช้ ควบคุมการเปิดปิดไฟ หรืออุปกรณ์ใดๆ

อุปกรณ์ที่ใช้
  • arduino
  • LED
  • breadboard
  • wire
ขั้นตอนการทำ


       ต่อขา LED ที่ D11 ถึง D13   (8หลอด)
       เพิ่มเติมเองได้ในส่วนของการตั้งค่าขา output

       เลือก com port แล้วกด ปุ่มสีแดง เพื่อรัน
      *ปิดโปรแกรม Arduino ให้หมดก่อนเปิด Labview

วันอังคารที่ 5 เมษายน พ.ศ. 2559

[week2] ArduidowithTickTockShield

ทำ ทำไม

  • ฝึกใช้ shield
อุปกรณ์ที่ใช้

  • arduino
  • Tick Tock Shield
ขั้นตอนการทำ

  • Link download libraries libraries
  • ให้นำไฟล์ที่แตกไปไว้ใน
  • C:\Program Files (x86)\Arduino\libraries
  • และเมื่อเข้า folder ticktockshield จะต้องเป็นไฟล์ใน folder ห้ามเป็น folder ชื่อ TickTockShield ซ้อนกัน
  • ประกอบ shield เข้ากับ arduino ตัวอย่างจะเป็น arduino Duemilanove



เมื่อลงเสร็จแล้วให้ลอง ใช้ example ของ ticktockshield ที่ชื่อว่า
file > example >
controlLed

measureTemp

characterflow

RunLED
LED วิ่ง ทีละดวง


วันศุกร์ที่ 1 เมษายน พ.ศ. 2559

[week1] arduino readtemp

ทำ ทำไม

  • เพื่ออ่านอุณหภูมิสถานที่ ที่ เซ็นเซอร์อยู่ เซ็นเซอร์ DS18B20
อุปกรณ์ที่ใช้

  • arduino
  • sersor DS18B20
  • breadboard
  • wire
  • R 10k
ขั้นตอนการทำ

  • code ลง arduino


  • libraries
  • ลงที่ C:\Program Files (x86)\Arduino\libraries
  • วงจร




  • เปิด แว่นขยาย ดู จะเห็น อุณหภูมิ

[week1] arduino digital output

ทำ ทำไม

  • ฝึกใช้ digital output ของ arduino
อุปกรณ์ที่ใช้

  • arduino
  • LED
  • breadboard
  • wire
ขั้นตอนการทำ



ในโค้ดจะเขียนให้สามารถต่อสาย output ที่ขา D5 ถึง D12
ในตัวอย่างภาพ จะต่อเพียงสองขา


แบบทดสอบ

  • ทำให้ไฟ 1 ดวงวิ่ง ซ้ายไปขวา ขวาไปซ้าย 

[week1] arduino digital input

ทำ ทำไม

  • ฝึกการใช้ input arduino
อุปกรณ์ที่ใช้

  • arduino
  • switch
ขั้นตอนการทำ

  • ลง Arduino IDE
  • เลือก file > example > digital > digitalinputpullup
  • ต่อสาย input ที่ D2
  • output จะอยู่ที่ LED 13


เมื่อกดปุ่ม ไฟ จะติด
ปล่อยไฟจะดับ

  
แบบฝึก
ลองใช้ LED 7ดวง กดปุ่มแล้วไฟ 7ดวงกะพริบ ปล่อยแล้วไฟLED ติด 1ดวง วิ่ง ซ้ายไปขวา

[week1] arduino analog input

ทำ ทำไม

  • ฝึกใช้ analog input ของ arduino
อุปกรณ์ที่ใช้

  • arduino
  • ตัวต้านทานปรับค่าได้ 5K
  • wire
  • breadboard
ขั้นตอนการทำ

  • ลง Arduino IDE
  • เลือก file > example > analog > analoginput
  • ให้ต่อตัวต้านทานปรับขาได้ ที่ขา A0 กับขากลางของตัวต้านทาน
  • 5V ขาขวา
  • GND ขาซ้าย


ผลการทำงาน LED หลอด 13 จะกระพริบเร็วเมื่อความต้านทานน้อย