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

เปิดปิด Relay บอร์ด nudemcu กับ netpie ง่ายๆ ไม่ยากอย่างที่คิด

            ก่อนอื่นต้องขอบอกก่อนว่า เคยลองเล่น nodemcu (ESP2866) เมื่อ ประมาณ 1 ปีมาแล้ว แต่ไม่ได้ทำอะไรต่อ วันนี้เป็นโอกาสดี ลองทบทวนความรู้ที่เรียนมาสักหน่อย โดยจะขออธิบายวิธีการทำง่ายๆ ให้เข้าใจกัน โดยเราจะวางแผนก่อน

1. การต่อวงจร ระหว่าง nodemcu กับ relay
2. สมัคร Netpie และสร้าง Application
3. เขียนโปรแกรมลง Nodemcu ร่วมกับการใช้ netpie
4. เชื่อมต่อกับ netpie FreeBoard

4 ขั้นตอน  เริ่มกันเลย

ขั้นตอนที่ 1 การต่อวงจร ระหว่าง nodemcu กับ relay 


 จะต่อรูปแบบนี้

จัดการต่อสาย VCC GND และ output (GPIO 12, 13)




















ต่อเข้ากับ Relay ให้ตรงกัน
เสร็จขั้นตอนแรกแล้ว











ขั้นตอนที่ 2 สมัคร Netpie และสร้าง Application
1. เข้าไปที่ https://netpie.io
2. ทำการสมัคร ระบบจะส่ง SMS มาให้เพื่อ Confirm
3. เข้ามาเมนู Application


4. กดปุ่ม + Application ใส่ชื่อ App ที่ต้องการตั้งให้เรียบร้อย จากนั้นรอการเขียน Code จาก nodemcu

ขั้นตอนที่ 3 เขียนโปรแกรมลง Nodemcu ร่วมกับการใช้ netpie
1. install microgear ก่อน 


2. install esp2866 
3. เมื่อ install ทั้ง 2 เสร็จแล้ว ให้เข้าไปที่ โค้ดตัวอย่าง



4. ปรับแต่ง Code นี้หน่อย  
    1. เพิ่ม Esp2866WIFI มาก่อน  
    2. ใส่ Key และ Password จาก Netpie โดยเข้าไปยัง Application ที่เราสร้างไว้ใน Netpie แล้ว Copy Key / Password มาใส่ใน Code ตามตัวอย่าง
ปรับ Network และ AppID KEY SECRET ALIAS ให้เรียบร้อย
5. ลองทดสอบ Upload Code เข้า Node MCU


Code 

#include

#include
#include
#include
#include
#include
#include

#include
#include
#include
#include
#include
#include



const char* ssid     = "T-TECH";
const char* password = "xxxxx";

#define APPID   "NetPieApp1"
#define KEY      "xxxxx"
#define SECRET  "xxxx"
#define ALIAS   "esp8266"

WiFiClient client;

int timer = 0;
int i =1;
MicroGear microgear(client);

/* If a new message arrives, do this */
void onMsghandler(char *topic, uint8_t* msg, unsigned int msglen) {
    Serial.print("Incoming message --> ");
    msg[msglen] = '\0';

      char strState[msglen];
      for (int i = 0; i < msglen; i++) 
      {
        strState[i] = (char)msg[i];
        Serial.print((char)msg[i]);
      }
     
      Serial.println();
    
      String stateStr = String(strState).substring(0, msglen);
    
    //=========== ช่วงประมวลผลคำสั่ง =============
    
      if (stateStr == "SW1ON") 
      {
       digitalWrite(13, HIGH);
        microgear.chat("sw1", "ON");        //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      } 
      else if (stateStr == "SW1OFF") 
      {
       digitalWrite(13, LOW);
        microgear.chat("sw1", "OFF");       //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      }else  if (stateStr == "SW2ON") 
      {
       digitalWrite(12, HIGH);
        microgear.chat("sw2", "ON");        //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      } 
      else if (stateStr == "SW2OFF") 
      {
       digitalWrite(12, LOW);
        microgear.chat("sw2", "OFF");       //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      }
     
    //=========== ช่วงประมวลผลคำสั่ง  =============
}

void onFoundgear(char *attribute, uint8_t* msg, unsigned int msglen) {
    Serial.print("Found new member --> ");
    for (int i=0; i
        Serial.print((char)msg[i]);

    Serial.println();  
}

void onLostgear(char *attribute, uint8_t* msg, unsigned int msglen) {
    Serial.print("Lost member --> ");
    for (int i=0; i
        Serial.print((char)msg[i]);
    Serial.println();
}

/* When a microgear is connected, do this */
void onConnected(char *attribute, uint8_t* msg, unsigned int msglen) {
    Serial.println("Connected to NETPIE...");
    /* Set the alias of this microgear ALIAS */
    microgear.setAlias(ALIAS);
}


void setup() {
    /* Add Event listeners */

    /* Call onMsghandler() when new message arraives */
    microgear.on(MESSAGE,onMsghandler);

    /* Call onFoundgear() when new gear appear */
    microgear.on(PRESENT,onFoundgear);

    /* Call onLostgear() when some gear goes offline */
    microgear.on(ABSENT,onLostgear);

    /* Call onConnected() when NETPIE connection is established */
    microgear.on(CONNECTED,onConnected);
    

    Serial.begin(115200);
    Serial.println("Starting...");

    /* Initial WIFI, this is just a basic method to configure WIFI on ESP8266.                       */
    /* You may want to use other method that is more complicated, but provide better user experience */
    if (WiFi.begin(ssid, password)) {
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
    }

    Serial.println("WiFi connected");  
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    /* Initial with KEY, SECRET and also set the ALIAS here */
    microgear.init(KEY,SECRET,ALIAS);

    /* connect to NETPIE to a specific APPID */
    microgear.connect(APPID);
    pinMode(12, OUTPUT);
    pinMode(13, OUTPUT);
}

void loop() {
     
    /* To check if the microgear is still connected */
    if (microgear.connected()) {
        Serial.println("connected");

        /* Call this method regularly otherwise the connection may be lost */
        microgear.loop();

        
    }
    else {
        Serial.println("connection lost, reconnect...");
        if (timer >= 5000) {
            microgear.connect(APPID);
            timer = 0;
        }
        else timer += 100;
    }
    delay(100);
}


6. ถ้าทุกอย่างไม่ผิดผลาด จะ Connect Netpie ได้ 
7. ลองกลับไปดูที่ Application ใน Netpie จะมี Device เพิ่มขึ้นมาแล้ว 



ขั้นตอนที่ 4. เชื่อมต่อกับ netpie FreeBoard
1. ไป Download Freeboard ที่ https://github.com/netpieio



2. เมื่อ Load เรียบร้อยแล้ว แตก Zip แล้ว เข้าไป Folder จากนั้น เปิด index.html ออกมาเลย
3. Add
4. เลือก microgear

5. กำหนด ค่า ต่าง

กรอกข้อมูล Applicaiton    Key / Password จาก Application บน NETPIE 
และที่สำคัญคือ microgear refferance เพื่ออ้างอิง จากนั้น SAVE
6. Add pane เพื่อเลือก UI ต่างๆ


7. เลือก Button  เราจะทำปุ่มเปิดไฟ


8. กำหนดค่าตามรูป  เดี๋ยวอธิบายอีกที

    ตรงนี้คือการกำหนดปุ่ม และเมื่อกดปุ่มแล้วจะส่งค่า ไปยังอุปกรณ์ของเรา Nodemcu โดย Action ที่จำเป็นคือ onclick action รูปแบบการใส่จะเป็น microgear["device"].chat("esp8266","SW1ON")

  device  = เกิดจากการรกำหนดค่า ในข้อ 5 คือ Refferance 
  esp8266   = ห้องของการส่ง Message ตรงนี้จะสัมพันธ์กับ Code ภาษา C
  SW1ON = message ที่ส่งเข้าอุปกรณ์ ยกตัวอย่าง SW1ON คือ switch 1 ให้ on  หรือ SW1OFF คือ Switch 1 ให้ OFF  ค่า Message นี้จะถูกไปเปรียบเทียบใน Code C ต่อไป


ตอนนี้สร้าง 2 Switch    มี เปิด / ปิด และสถานะการเปิดปิด

จากนั้น กลับไปดูที่ Code  เราสนใจ onMsghandler เป็น Event ที่คอยดักจับ Message ที่เข้ามา


SW1ON, SW2ON, SW1OFF, SW2OFF  ==> คือ message จาก Freeboard เราทำการเลือกเงื่อนไข
โดยใน Code นี้ จะเป็นการเปิด และ ปิดไฟ ที่ GPIO ต่างๆ


/* If a new message arrives, do this */
void onMsghandler(char *topic, uint8_t* msg, unsigned int msglen) {
    Serial.print("Incoming message --> ");
    msg[msglen] = '\0';

      char strState[msglen];
      for (int i = 0; i < msglen; i++) 
      {
        strState[i] = (char)msg[i];
        Serial.print((char)msg[i]);
      }
     
      Serial.println();
    
      String stateStr = String(strState).substring(0, msglen);
    
    //=========== ช่วงประมวลผลคำสั่ง =============
    
      if (stateStr == "SW1ON") 
      {
       digitalWrite(13, HIGH);
        microgear.chat("sw1", "ON");        //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      } 
      else if (stateStr == "SW1OFF") 
      {
       digitalWrite(13, LOW);
        microgear.chat("sw1", "OFF");       //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      }else  if (stateStr == "SW2ON") 
      {
       digitalWrite(12, HIGH);
        microgear.chat("sw2", "ON");        //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      } 
      else if (stateStr == "SW2OFF") 
      {
       digitalWrite(12, LOW);
        microgear.chat("sw2", "OFF");       //==== คำสั่ง chat เพื่อบอกส่งค่าสถานะไปยังหลอด LED บน NETPIE Freeboard
      }
     
    //=========== ช่วงประมวลผลคำสั่ง  =============
}


ลองทำทดสอบดู ครับ .....   ครั้งหน้าจะทำเป็น VDO มาให้ดูครับ





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

ลงพื้นที่พัฒนา Application Samart Karn Kaset

          ลงพื้นที่เพื่อพัฒนา App สำหรับเกษตรกร  โดยลงพื้นที่ กลุ่มวิสาหกิจชุมชนนิลสยาม บ้านดงพอง
เพื่ออธิบายการทำงานให้กลุ่มเกษตรได้เข้าใจถึงประโยชน์ของ Application นี้






     Application สามารถการเกษตร ทำมาเพื่อช่วยให้เกษตรกรได้มีข้อมูลการเพาะปลูก และระบบที่ช่วยให้เกษตรได้จัดเก็บข้อมูลได้มีระบบมากขึ้น




http://www.samartkarnkaset.asia
http://facebook.com/


วันอังคารที่ 30 มิถุนายน พ.ศ. 2558

เล่น mp3 by Python # raspberry pi

1. apt-get update
2. apt-get upgrade
3. apt-get install python-game
import pygame
pygame.mixer.init()
pygame.mixer.music.load("myFile.wav")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
    continue


วิธี load ไฟล์จาก google.com mp3
http://translate.google.com/translate_tts?tl=th&q=สวัสดีครับ
click ขวา Save file 

ตัวอย่าง Code ในการให้ Computer พูด
โดย Save คำ จาก Google Transalte ด้านบน Save มาเป็นคำละ File
เช่น
word.mp3
hello.mp3
kun.mp3
time.mp3




import pygame
pygame.mixer.init()
speak_word = ["hello"]
speak_word.append("word1")
speak_word.append("kun")
speak_word.append("time")
for s in speak_word:
   pygame.mixer.music.load(""+s+".mp3")
   pygame.mixer.music.play()
   while pygame.mixer.music.get_busy() == True:
       continue



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

เครื่องให้อาหารหมาแมว แบบ DIY ในคอนแซป IoT (Internet of Thing)

เครื่องให้อาหารหมาแมว แบบ DIY ในคอนแซป IoT


เริ่มงานแรก คือ วาดไอเดียออกมาก่อน  (24/04/15)
ทำแบบง่ายๆ เข้าใจง่ายๆ

Idea







Network diagram


ผลที่ได้





app ควบคุม. ใช้ที่ไหนก็ได้



อุปกรณ์.  
1. raspberry pi model b. + ราคา 1500
2. servo.   2 ตัว. 300
3. relay 2 chenel 110
4.webcam. ของเก่าๆราคาน่าจะ200
5.กล่องโฟม
6สายไฟ+ปลั๊ก
7วัสดุเหลือใช้


ขั้นตอนการทำงาน
1. 




วันศุกร์ที่ 28 มิถุนายน พ.ศ. 2556

เตือนภัย แก๊งหมากัด ที่ขอนแก่น

    ขอเตือนภัยใกล้ตัวนะครับ มีพวกแก๊งหมากัดระบาดที่ขอนแก่น ขอให้ข้อมูลเพื่อที่จะได้ไม่ถูกหลอกกับพวกนี้

    วิธีการทำงานของพวกนี้คือ มันจะจ้องบ้านที่ติดถนน และมีหมาอยู่ โดยมันจะมาเรียกให้ออกไปคุยก่อน วันที่โดน ผมไม่อยู่บ้านมีเพียงแม่บ้าน มันมาถึงบ้านและบอกว่าเมื่อศุกร์ที่แล้วโดนหมากัดมา ตอนนี้ฉีดยาครบแล้ว 4 เข็ม มาหาที่บ้านตั้งหลายครั้งแล้วไม่มีใครอยู่  ซึ่งแม่บ้านก็บอกว่าให้มันมาใหม่ตอนเย็นเพราะเจ้าของบ้านไม่อยู่ แต่มันก็ขอมาคุยกับพ่อผมซึ่งนอนป่วยอยู่ในบ้าน มันเข้ามาจนได้

    พอมาถึงมันก็แสดงว่ามันโดนหมากัดที่หลังเท้า วันนั้นหมาออกไปไล่มันกัด พอดีมาส่งแฟนแถวนี้ ( ซึ่งมันเป็นไปได้ไหมว่าในขณะที่รถมอเตอร์ไซต์วิ่งอยู่ หมาจะกัดที่หลังเท้าได้ น่าจะกัดที่น่อง )

 ต่อจากนั้นมันก็บอกว่าขอค่ารักษาพยาบาลหน่อย ซึ่งแม่บ้านบอกว่าที่นี่ไม่มีเงินเลย มีอะไรให้มาวันหลัง หรือสัก 5 โมงเย็น  มันจีงขอให้โทรแม่บ้านโทรหาผม  ซึ่งก็ผมได้คุยกับมัน ก็พยายามถามข้อมูลว่า กัดวันไหน ตัวไหนกัด ผมเลยบอกมันว่ายังไงช่วยวาดแผนที่บ้านหน่อย หรือเบอร์โทรศัพท์ ผมจะไปพบที่บ้าน ขอบิลค่ารักษาพยาบาลด้วย มันบอกว่าได้ครับ และมันก็บอกอีกว่าพอดีเหมาตุ๊กๆ มา ผมขอค่าเหมารถมาหน่อย 100 บาท   ผมก็เลยบอกมันว่ายังไงเดี๋ยวเย็นนี้ผมเข้าไปหาที่บ้านคุณแล้วจะเคียร์ให้
      หลังจากนั้นโทรศัพท์ยังไม่ได้วาง ได้ยินมันคุยกับแม่บ้านว่า เจ้าของบ้านให้เอาเงิน 100 ค่าตุ๊กๆ ซึ่งผมไม่ได้บอกเลย แต่แม่บ้านก็ได้คุยกับผมว่าให้เงินมันเหรอ  ผมบอกว่าไม่ ยังไงจะเครียร์ที่บ้านมันถ้าเป็นจริง    แม่บ้านผมก็เลยบอกมันว่า ไม่มีหรอก มันเลยเสนอมาว่า งั้นขอ 60 ก็ได้ แม่บ้านก็ยืนยันคำเดิมว่าไม่มี มันเลยเดินออกไป ซึ่งก็ไม่เห็นตุ๊กๆ เลย

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


 รุปร่างหน้าตา ของคนร้าย
  1. ผิวคลำ ท้วม
  2. สูง ประมาณ 165 
  3. ผมสั้น
  4. อายุ 24-30 ปี

ระวังด้วยนะครับ ถ้าให้ดีให้ไปแจ้งความเลยดีกว่า แล้วค่อยว่ากัน
มาอย่างนี้ อันตราย แถมเข้ามาในบ้านด้วย หลายๆ คนเคยโดนแก๊งนี้มาแล้ว เลยฝากเตือน และแชร์ต่อไปนะครับ หวังว่าคงมีประโยชน์ และขอให้มันถูกจับได้ในเร็ววันนี้



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

วันพุธที่ 26 มิถุนายน พ.ศ. 2556

รับเขียนโปรแกรม iOs

รับเขียนโปรแกรม iOs  iphone ,ipad บอกเรา เราเขียนได้ 



email : wanchalermb@gmail.com
Tel : 0818666851
www.t-techsolution.com

มาแล้ว Khon Kaen ZaaB แอปลิเคชั่น สำหรับชีวิตคนขอนแก่น


Application  ดีๆ สำหรับคนขอนแก่น หรือ ผ่านไปผ่านมาขอนแก่น
ข่าวสาร
ท่องเที่ยว
ร้านอาหาร
ที่พัก
สายด่วน
โปรโมชั่น
มีให้ Download แล้วที่ https://itunes.apple.com/us/app/khon-kaen-zaabb/id655484562?ls=1&mt=8
สำหรับ iOs ก่อนนะครับ

สอนเขียนโปรแกรม ในขอนแก่น และภาคอีสาน

สอนเขียนโปรแกรม ในขอนแก่น และภาคอีสาน (Programming , KhonKaen ) ประสบการณ์.มากกว่า 18 ปี ป.ตรี วิทยาการคอมพิวเตอร์ ม.กรุงเทพ ป.โท วิทยาการคอ...