Posted on

กราฟข้อมูล COVID-19 ดึงจาก API ของกรมควบคุมโรค

ทางกรมควบคุมโรค กระทรวงสาธารณสุข ออก API เกี่ยวกับ Covid-19 ให้สามารถเข้าไปดึงข้อมูลมาพัฒนาต่อได้ ดูรายละเอียดได้จากลิ้งนี้ https://covid19.th-stat.com/th/api เลยลองเขียน PHP ดึงค่ามาลงในกราฟดูหน่อย ดูกราฟได้ที่นี่ https://covid19.myschool.in.th/ ใครอยากเอาไปเล่นต่อ ไปเอาโค้ดได้ที่นี่ครับhttps://github.com/sujanepanjan/Covid-19-Graph

Posted on

PHP ฟังชั่นแปลงตัวเลขจำนวนเงินเป็นตัวอักษร

พักเรื่อง IOT มาเขียน PHP กันบ้างดีกว่า สำหรับวันนี้จะแนะนำ ฟังชั่น PHP สำหรับ แปลงตัวเลขจำนวนเงินเป็นตัวอักษร  เหมาะสำหรับคนที่กำลังทำ Project เกี่ยวกับเรื่อง เงินๆ ทอง ๆ เช่น ในใบเสร็จรับเงิน ใบแจ้งชำระ มาใช้ฟังชั่นนี้ได้เลย เพราะมันจะแปลงค่าตัวเลข (เงิน) ใ้ห้เป็นข้อความโดยอัตโนมัติ ลองดูโค้ดได้จาก https://github.com/sujanepanjan/PHP-Thaibaht

Posted on

ทำไฟ built-in LED ให้กระพริบ ด้วย ESP8285

ตัวบอร์ด ESP8285 จะมี built-in LED  ที่เชื่อมต่ออยู่กับขา Digital Pin 16 ดังนั้น Post นี้เราจึงมาลองทำไฟกระพริบ (Blink) โดยไม่ต้องต่ออุปกรณ์เพิ่มเติมอะไรเลย

มาดูตัวอย่างโค้ดกัน (อย่าลืมกดปุ่ม FLASH ตอนที่ทำการอัพโหลด)

int MYLED = 16;

void setup() {
  pinMode(MYLED, OUTPUT);
}


void loop() {
  digitalWrite(MYLED, HIGH);   
  delay(500);                      
  digitalWrite(MYLED, LOW);    
  delay(300);                   
}

ไม่ยากใช่มั้ยละ ถ้าทำได้แล้วลอง ปรับค่า delay ให้ เร็วหรือช้าลง ตามความต้องการดูนะครับ

Posted on

ESP8285 ทำการ Query ข้อมูลจาก Mysql Database

สวัสดีครับ บทความนี้จะมาแนะนำการ Query ข้อมูลจาก MySQL Database มีวัตถุประสงค์คือการให้ บอร์ด ESP8285 สามารถทำการ Select ข้อมูลจากฐานข้อมูล MySQL ตามเงื่อนไขที่กำหนด ซึ่งค่าที่ได้สามารถนำไปแสดงผลหรือใช้งานต่อ เช่นการทำระบบทาบบัตร RFID เพื่อการยืนยันตัวตนว่าบัตรที่ทาบนั้นมีอยู่ในระบบหรือไม่ หรือการทำระบบเช็คยอดเงินคงเหลือในบัตร เมื่อผู้ใช้งานนำบัตรเงินสดมาทาบกับเครื่องอ่านก็ให้ทำการตรวจสอบยอดเงินคงเหลือจากฐานข้อมูล เพื่อแจ้งแก่ผู้ใช้งานต่อไป

หมายเหตุ: ในบทความนี้จะเป็นการติดต่อกันระหว่าง NodeMCU ESP8285 กับ Mysql Server โดยตรง โดยไม่ใช่การส่งข้อมูลหรือเรียกข้อมูลด้วยไฟล์ PHP แต่อย่างใด

ก่อนการเริ่ม เรามาตรวจสอบสิ่งที่ต้องมีกันก่อน

  • บอร์ด ESP8285
  • Library MySQL_Connector_Arduino
  • ฐานข้อมูล MySQL สามารถจำลองสร้างแบบ local host หรือหากใช้งานจริงๆ ก็สั่งซื้อ Cloud Hosting จาก www.plathong.net ได้นะครับ (เนียนขายของ)
ติดตั้ง MySQL_Connector_Arduino

เมื่อทุกอย่างพร้อมก็มาเริ่มดูโค้ดไปทีละส่วนกันเลยครับ เริ่มจากส่วนแรกคือการตั้งค่า WiFi และ ข้อมูลการเชื่อมต่อ MySQL Server

โค้ดส่วนถัดไปจะเป็น void setup ซึ่งจะเป็นการเชื่อมต่อ WIFI และการ Connect ไปยัง MySQL Server นั่นเอง

สำหรับโค้ดในส่วนของ Loop นั้นจะเป็นการ Query ตามเงื่อนไข “SELECT * FROM DBName.TableName WHERE id = ‘5’ ” ซึ่งค่าที่ได้คือชื่อเมืองที่มี id=5 นั่นเอง (สำหรับบทความนี้เป็นขั้นตอนการ Query แบบพื้นฐานที่สุด) ในตัวอย่างจะให้ทำการ Query วนลูปไปทุกๆ 10 วินาที

สามารถคัดลอกโค้ดทั้งหมดได้ที่นี่ครับ หรือ https://github.com/sujanepanjan/Arduino-Query-MySQL

#include <ESP8266WiFi.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

const char* ssid     = "WIFI-SSID";
const char* password = "WIFI-PASSWORD";

byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress server_addr(192,168,1,100);  // IP ของ MySQL server
char dbuser[] = "DB-USERNAME";         // MySQL username
char dbpassword[] = "DB-PASSWORD";       // MySQL password

// SELECT query (เงื่อนไขในการ Query ข้อมูล)
char query[] = "SELECT * FROM DBName.TableName WHERE id = '5' ";  //กำหนดชื่อฐานข้อมูลและชื่อตาราง  DBName.TableName

WiFiClient client;    
MySQL_Connection conn((Client *)&client);

void setup() {
  Serial.begin(115200);
  delay(10);

  // Connect to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
    }

  Serial.println("");
  Serial.print("WiFi connected to ");
  Serial.print("IP : ");
  Serial.println(WiFi.localIP());
  Serial.println("Your device is now online to internet.");
  Serial.println("");

 //MySQL Connection
  Serial.println("Connecting...");
  if (conn.connect(server_addr, 3306, dbuser, dbpassword)) {
    delay(1000);
    Serial.println("MySQL Connected.");
  }
  else
    Serial.println("Connection failed.");
  //conn.close();
  
}

void loop() {
  row_values *row = NULL;
  //String head_count ; 
  delay(10000);
  
  Serial.println("Selecting data.");

  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  
  cur_mem->execute(query); // Execute the query
  column_names *columns = cur_mem->get_columns(); // Fetch the columns

  // Read the row (we are only expecting the one)
  do {
    row = cur_mem->get_next_row();
    if (row != NULL) {
      Serial.println(row->values[1]); //ค่าที่ SELECT ได้จากฐานข้อมูล
    }
  } while (row != NULL);
  delete cur_mem;  // Deleting the cursor also frees up memory used 
}

ในส่วนของฐานข้อมูล เราสามารถสร้างตารางข้อมูลง่าย ๆ ขึ้นมาดังตัวอย่างเช่น

เมื่อทุกอย่างพร้อมให้ทำการ Upload โค้ดไปยังบอร์ด และเปิด Serial Monitor เพื่อดูค่าที่ได้ จากภาพคือระบบแสดงค่าชื่อเมือง ซึ่งก็คือ Hong Kong (id=5) นั่นเอง

Posted on

ESP8285 ส่งข้อความเข้า LINE Notify ผ่าน BLYNK Dashboard

สวัสดีครับ เพื่อนๆ สาวก IOT ทุกท่าน สำหรับบทความนี้จะเป็นการแนะนำการส่งข้อความเข้า LINE Notify โดยใช้บอร์ด ESP8285 ซึ่งมี WIFI ในตัว โดยอาศัย BLYNK Server เป็นสื่อกลางในการควบคุมสั่งการ โดยเราจะทำการสร้าง Switch บน Blynk Application บนมือถือ และสั่งการผ่านการกด คล้ายๆ กับเรากดสวิทต์เพื่อให้ ESP8285 ทำการส่งข้อความเข้า LINE Notify นั่นเอง

Continue reading ESP8285 ส่งข้อความเข้า LINE Notify ผ่าน BLYNK Dashboard
Posted on

สร้าง Dashboard ด้วย freeboard.io ดึงค่า จาก DHT22 ผ่าน Blynk HTTP RESTful API

สร้าง Dashboard ด้วย freeboard.io ให้ดึงค่า temperature & humidity จาก DHT22 ผ่าน Blynk HTTP RESTful API

Continue reading สร้าง Dashboard ด้วย freeboard.io ดึงค่า จาก DHT22 ผ่าน Blynk HTTP RESTful API
Posted on

ระบบวัดอุณหภูมิและความชื้นสัมพัทธ์ของอากาศ

ลองทำระบบวัดอุณหภูมิและความชื้นสัมพัทธ์ของอากาศที่บ้านดูเล่นๆ  อุปกรณ์ที่ใช้ในครั้งนี้ก็คือ

  1. เจ้าบอร์ด ESP8285
  2. โมดูล DHT22

เขียนโปรแกรมด้วย Arduino ให้ส่งข้อมูลเข้า Blynk Server (โปรเจคนี้ทำตัวปิด/เปิดไฟใส่ไว้ด้วยแล้ว) จากนั้นไปสร้าง Guage และ Graph แสดงผลแบบ Realtime ดูในมือถือ ประสบความสำเร็จ ได้ผลใกล้เคียงกับเว็บของกรมอุตุนิยมและ Accuweather เลยจ้า

ต่อโมดูล DHT22 เข้ากับ ESP8285 ดังนี้ ขา + ต่อกับ ไฟ 5V, ขา – ต่อกับ Ground และ Out ต่อกับ Pin 5
Continue reading ระบบวัดอุณหภูมิและความชื้นสัมพัทธ์ของอากาศ
Posted on

Project เปิด/ปิดไฟด้วย Blynk + ESP8285

สวัสดีครับสำหรับ Post นี้เราจะมาสร้าง Project  เปิด/ปิดไฟด้วย Blynk ผ่านอุปกรณ์ ESP8285 กัน ซึ่งก่อนการเริ่มต้นให้ตรวจสอบก่อนว่าเรามีสิ่งที่จำเป็นครบหรือยัง ดังนี้ครับ

ใน Project นี้จะทำการต่อหลอด LED จำนวน 3 หลอดเข้ากับขา 2,4 และ 5 นะครับ

ขั้นตอนทั้งหมดสามารถดูจาก VDO ได้เลยครับ

Source Code ของตัวโปรแกรม

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YOUR-BLYNK-AUTH";

// Your WiFi credentials.
char ssid[] = "WiFi-SSID";
char pass[] = "WiFi-PASSWORD";

void setup()
{
  // Debug console
  Serial.begin(9600);

  //Blynk.begin(auth, ssid, pass);
  Blynk.begin(auth, ssid, pass,"blynk.jpnet.co.th",8080);
  Blynk.syncAll();
}

void loop()
{
  Blynk.run();
}
Posted on

การสร้าง Project ใหม่ใน Blynk Application

ก่อนการใช้งานระบบ Blynk จำเป็นต้องทำการสร้าง Project ใหม่ใน Aplication บน SmartPhone ของเราก่อน ทั้งนี้เราสามารถเลือกอุปกรณ์และกำหนดรูปแบบการเชื่อมต่อได้ และระบบจะทำการสร้าง Auth Token เพื่อนำไปใส่ในโปรแกรม Arduino IDE ต่อไป

เปิด  Application Blynk ขึ้นมา เลือกที่ New Project

Continue reading การสร้าง Project ใหม่ใน Blynk Application

Posted on

การดาวน์โหลดและติดตั้ง Blynk Library

หลังจากทำการติดตั้ง Blynk Application ใน SmartPhone และทำการ สร้างบัญชีการใช้งานใน Local Blynk Server (ใช้งานได้ฟรี) ของทางเราเรียบร้อยแล้ว ขั้นตอนต่อไปคือการดาวน์โหลดและติดตั้ง Blynk Library ลงในโปรแกรม Arduino เพื่อเริ่มใช้งานระบบต่อไป

Continue reading การดาวน์โหลดและติดตั้ง Blynk Library