Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - S.poolpong93

Pages: 1 [2] 3 4 ... 6
9
อย่างตัวอย่างเช่น
Code: [Select]
void serial_isr() interrupt 4 using 1 {
//----
}

using 1 คือใช้ รีจิสเตอร์แบงค์ 1  ผมไม่เข้าใจว่า เราเอา รีจิสเตอร์แบงค์ ไว้เก็บค่าอะไร
ควรใช้ตอนไหนบ้าง
เพราะเห็นบางที ก็ไม่มีการประกาศใช้ตัวนี้

ขอบคุณมากครับ

10
ตามหาหนังสือ  หนังสือทดลองและใช้งาน PIC12F683 ไมโครคอนโทรลเลอร์ PIC รุ่นเล็ก ของ inex มือสองครับ
http://inex.co.th/shop/book/text-book/book-pic12f683.html
                                                      ได่จากพี่ thana บริจาคไห้แล้วครับ


และหนังสือ AVR ของ appsofttech

ใครไม่ใช่แล้ว ลองอินบ๊อกมาได้ครับ  ขอบคุณครับ

11
รบกวนพี่ๆ ช่วยแนะนำบริษัท ที่จำหน่าย ผลิตภัณ RFID ทีครับ

คือ อยากหาที่มี
- อุปกรณ์อ่าน เขียน tag rfid (ประมานว่า อ่านpoint หรือเขียนเพื่อเพิ่มหรือลด point ในtagได้เลย ในกรณ๊ที่เอาtagไปแตะเครื่องอ่าน )
- สามารถเพิ่มฟังก์ชั่นเกี่ยวกับความสัมพันของแท๊กได้ (เช่นtag a และ b ต้องมาใช้งานร่วมกัน ที่เครื่องอ่านR1 ถึงจะทำการตัดแต้ม
    หรือแท๊ก c สามารถ ไปใช้งานที่เครื่องอ่าน R2 ได้(ตัดหรือเพิ่มpoint) แต่แท๊กอื่น(a b หรืออื่นๆที่ไม่ได้กำหนดไว้)ไม่สามารถทำได้ )
- อยากให้ทางเรา สามารถตั้งค่าการใช้งานtagได้แบบอิสระหลังการซื้อผลิตภัน เช่น ผมอย่างตั้งค่าให้tag a และ b ต้องใช้งานร่วมกันเท่านั้น(เครื่องอ่านจะเพิ่มหรือ      ตัดเมื่อมีtagทั้งสอง เข้ามาด้วยกัน ) หรือผมจะตั้งให้tag C ใช้งานกับเครื่องอ่านเครื่องใดเครื่องนึงเท่านั้น หรืออื่นๆ
- มีประตูแบบที่ใช้งานร่วมกับเครื่องอ่าน เช่น เครื่องอ่าน อ่านtag มา ถ้ามีpointมากกว่าหรือเท่ากับ ให้ประตูเปิดด้วย (ประตูคล้ายๆที่เราใส่เหรียญตอนขึ้นรถไฟฟ้า)

เครื่องอ่าน/เขียน น่าจะใช้มากกว่า 10เครื่อง
tag ที่ใช้น่าจะ 500+ ชิ้น

เขียนอาจจะดูงงๆ ต้องขออภัยด้วยครับ


พี่ๆท่านใดพอรู้จักช่วยแนะนำทีครับ




12
สวัสดีครับ
จริงๆอยู่บอร์ดนี้มาได้ซักระยะนึงแล้ว ซึ่งก็ได้ทั้งสาระความรู้มากมาย
วันนี้จึงอยากจะตอบแทนพี่ๆทุกคนที่ช่วยให้ความรู้
เป็นการเขียนบทความครั้งแรก ผิดพลาดตรงไหนต้องขออภัยไว้ ณ ที่นี้ ด้วยนะครับ

โปรเจคที่ผมจะเอามาแบ่งปัน เป็น เครื่องนับคนเข้า-ออกห้อง ด้วยบอร์ด NodeMCU ครับ

     คือได้โจทย์มา ว่าต้องการเครื่องนับคนเข้าห้อง โดยจะทำการเก็บค่าที่ได้ไว้บน database เพื่อจะได้นำข้อมูลมาทำเป็นสถิติภายหลัง รวมไปถึงการแสดงผลแบบ
Real-time บนหน้าเว็บไซต์ครับ  พอดีกับที่ช่วงนี้ผมกำลังเล่นบอร์ด NodeMCU อยู่พอดี ผมจึงเลือกใช้บอร์ดนี้ เพราะสามารถเป็นได้ทั้งบอร์ดไมโครคอนโทรลเลอร์และสามารถส่งข้อมูลผ่าน WiFi ได้ในบอร์ดเดียว



ภาพรวมคร่าวๆ คือ จะใช้บอร์ด NodeMCU รับค่าจาก LDR Module (สามารถปรับ Output เป็นแบบ Digital ได้) ซึ่งจะมี Laser Diode Module อยู่อีกฝั่งนึง ซึ่งผมจะใช้ Sensor Module อย่างละ2ตัว  เพื่อที่จะตรวจจับได้ทั้งเข้าและออก  (อย่างเช่นมี Sensor 2 ตัว ผมยกตัวอย่างเป็น S1 S2 ละกันครับ  เมื่อเราเดินเข้า S1 ก็จะตรวจจับเจอก่อน S2 เมื่อเราเดินออก S2 จะเจอก่อน S1)
โดย ผมจะเขียนโค้ดแบบinterrupt เพื่อทำการรับค่าจากSensor (จริงๆทีแรกจะเอาแค่ while รอค่าจากsensor แต่ติดปัญหาเรื่อง SoftWDT)
เมื่อรับค่ามาแล้ว จะนำเข้าเงื่อนไขเพื่อทำการตรวจสอบ หากพบว่ามีการเข้า-ออก บอร์ดจะทำการส่งค่าไปยังServer โดยจะเรียกผ่าน URL ซึ่งที่ Server จะมีไฟล์php เพื่อรอรับค่าและป้อนเข้า database โดยค่า 1 หมายถึงคนเข้า 0 หมายถึงคนออกครับ

อปกรณ์ที่ใช้
1. บอร์ด NodeMCU V3 (บอร์ดสีดำ ที่ใช้ชิป 340)        1 บอร์ด
2. Laser Diode Module                                  2  ชิ้น
3. LDR Module                                             2 ชิ้น
4. LED แสดงสถานะ
5. ชุดจ่ายไฟ
6. กล่องใส่เพื่อความสวยงาม

วงจร


(อภัยสำหรับรูปวงจรนะครับ พอดีเพิ่งลงวินโดวใหม่เลยไม่มีโปรแกรมวาดเลย กล้องipadก็กาก)
จากวงจร ผมจะต่อ Sensor ตัว S1 เข้ากับพอร์ต D1 และ S2 ต่อเข้ากับพอร์ต D2  และใช้พอร์ต D5 เป็น Output เพื่อแสดงสถานะการเชื่อมต่อ



โค้ดในฝั่งของบอร์ด NodeMCU  แก้ไขดัดแปลงมาจาก BasicHttpClient ใน Example ของ Arduino IDE ครับ
Code: [Select]
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>

void detect1(void);
void detect2(void);

ESP8266WiFiMulti WiFiMulti;



int state_in1 = 0, state_in2 = 0, state_out1 = 0, state_out2 = 0;
int detect_1 = 0, detect_2 = 0;

void setup() {

  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  pinMode(D5, OUTPUT);
  digitalWrite(D5, LOW);
  attachInterrupt(D1,  detect1, RISING);
  attachInterrupt(D2,  detect2, RISING);


  for (uint8_t t = 4; t > 0; t--) {
    delay(500);
  }

  WiFiMulti.addAP("TEST", "12345678"); //เชื่อมต่อ WiFi
}

void loop() {

  if ((WiFiMulti.run() == WL_CONNECTED)) {
    digitalWrite(D5, HIGH);
    HTTPClient http;


    if (detect_1 == 1 && detect_2 == 0) {
      state_in1 = 1;
    }
    if (detect_2 == 1 && state_in1 == 1) {
      state_in2 = 1;
    }
    if (state_in1 == 1 && state_in2 == 1) {


      http.begin("xx.xx.xx.xx", xx, "http://xx.xx.xx.xx/send_data.php?value=1");
      int httpCode = http.GET();
      if (httpCode) {
        if (httpCode == 200) {
          String payload = http.getString();
        }
      }

      detect_1 = 0;
      detect_2 = 0;
      state_in1 = 0;
      state_in2 = 0;
    }


    if (detect_1 == 0 && detect_2 == 1) {
      state_out1 = 1;
    }
    if (detect_1 == 1 && state_out1 == 1) {
      state_out2 = 1;
    }
    if (state_out1 == 1 && state_out2 == 1) {


      http.begin("xx.xx.xx.xx", xx, "http://xx.xx.xx.xx/send_data.php?value=0");
      int httpCode = http.GET();
      if (httpCode) {
        if (httpCode == 200) {
          String payload = http.getString();
        }
      }


      detect_1 = 0;
      detect_2 = 0;
      state_out1 = 0;
      state_out2 = 0;
    }



  }
}

void  detect1() {

  detachInterrupt(D1);

  detect_1 = 1;

  attachInterrupt(D1, blink1, RISING);
}

void  detect2() {

  detachInterrupt(D2);

  detect_2 = 1;

  attachInterrupt(D2, blink2, RISING);
}

โค้ดของไฟล์ php ที่ไว้คอยรับค่าและส่งเข้า Database ครับ
ไม่ค่อยเชี่ยวชาญด้านนี้ โค้ดอาจดูเละๆหน่อยนะครับ
Code: [Select]
<?
$action_value = $_GET["value"];

$link = mysql_connect("localhost","root","1234");
mysql_select_db("test_esp",$link);
mysql_query("SET NAMES UTF8");

$query ="INSERT INTO `test_esp`.`log` (`action`, `time_stamp`) VALUES ('".$action_value."', NOW())";
$result = mysql_query($query,$link);
if($result){
echo "ok! ,good job !".$query;
}else{
echo "fail !! ".$query;
}
mysql_close($link);
?>

กล่องใส่บอร์ด ที่มีไฟบอกสถานะเปิด และสถานะการเชื่อมต่อWifi


ภายในกล่อง


Laser



รูปเมื่อประกอบเข้ากับโครงอลูมิเนียม



ขอบคุณที่ตามอ่านจนจบครับ

13
ปิดกระทู้ครับ มีคนรับแลกแล้ว

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

ผมสงสัยเรื่องตำแหน่งงานครับ
งานประเภท R&D(ไมโครคอนโทรลเลอร์)กับ Software Eng(เนื้องานเขียนไมโครคอนโทรลเลอร์)     สองอย่างนี้คืองานประเภทเดียวกันใช่ไหมครับ
ถ้ากรณี ที่ไม่ถนัดเขียน GUI(C#) แต่พอออกแบบวงจร ใช้อุปกรณ์วัดได้ พอเขียนไมโครได้ แบบนี้จะพอไหวไหมครับ

Technician Support Eng งานพวกนี้ เนื้องานเป็นประเภทไหนหรอครับ ความก้าวหน้าในสายงานเป็นอย่างไรบ้างครับ
อีกงานนึงคือ QA Eng(ไมโครคอนโทรลเลอร์)
 
แล้วงานสายนี้เน้นเกรดมากไหมครับ

15

ปิดการขาย ขอบคุณพี่ๆทุกคนครับ

16



หา หนังสือ PIC16F Programming กับ MPLAB XC8 มือสอง ครับ
ตามรูปเลยครับ ใครไม่ได้ใช้ อยากขาย ติดต่อมาได้ครับ

Pages: 1 [2] 3 4 ... 6