สารบัญ:

TheSUN, Arduino Powered Design Wall Clock: 6 ขั้นตอน (พร้อมรูปภาพ)
TheSUN, Arduino Powered Design Wall Clock: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TheSUN, Arduino Powered Design Wall Clock: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: TheSUN, Arduino Powered Design Wall Clock: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Digital Clock DIY Kit project - ICStation│Simple Tech 2024, กรกฎาคม
Anonim
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered
TheSUN, นาฬิกาแขวนออกแบบ Arduino Powered

สวัสดีอีกครั้งพวกผู้สอน!:-NS

เนื่องจากปัญหาในการขนส่ง ฉันจึงไม่สามารถดำเนินโครงการ ABTW ต่อไปได้ ฉันจึงตัดสินใจแสดงให้คุณเห็น ผลงานใหม่ล่าสุดของฉัน

ฉันคิดว่าพวกเราหลายคน เช่น ฉันชอบแถบ LED ที่สามารถระบุตำแหน่งได้ (เรียกอีกอย่างว่า NEOPIXEL LED) คุณสามารถหาซื้อได้จาก ADAFRUIT ผู้ขายรายอื่นจะจัดหาผลิตภัณฑ์ที่คล้ายคลึงกัน มีไลบรารี่บน ADAFRUITS - GitHub (คลิกฉัน) รวมถึงโค้ดตัวอย่าง ดังนั้นการเข้ารหัสควรตรงไปตรงมา…

ฉันเห็น NEOPIXELS เหล่านั้นเป็นความคิด ฉันจะทำอะไรกับสิ่งเล็กๆ น้อยๆ ที่เปล่งประกายเหล่านั้นได้

  • จอแสดงผล LED-matrix? -> ซับซ้อนและฉันไม่ได้ใช้ (ในขณะนี้)
  • ไฟคริสต์มาส? -> มันเหมาะกับฤดูกาล แต่จะดีกว่าที่จะซื้อหนึ่งอัน:-P
  • นาฬิกา? -> ทำไมไม่! แต่ควรมีสไตล์และแหวกแนว

มาทำนาฬิกาแขวนกันเถอะ

หากเราดูนาฬิกาข้อมือของเราอย่างใกล้ชิด (ถ้าคุณมีนาฬิกาอะนาล็อกอย่างฉัน) เราจะสังเกตว่าเรามีเวลา 12 ชั่วโมง 60 นาที (หวังว่า) นั่นจะหมายถึงว่าเราต้องการ LED ที่สามารถระบุตำแหน่งได้ 60 ดวง ถ้าเราใช้แถบที่มี LED 60 ดวง / เมตร เราจะได้เส้นผ่านศูนย์กลาง ~318 มม. (รัศมี = ขอบเขต /(2*Π)) นั้นแน่นอน มีขนาดใหญ่เกินไป.

ความจริงคือถ้าขอเวลาใครสักคนจะไม่มีใครว่าเวลา 2 นาทีผ่านไป 3 นาที! คุณจะได้รับคำตอบว่า "5 โมง 3 โมง" แล้วทำไมเราไม่ลดขนาดทุกอย่างลงเหลือขั้นตอน 5 นาทีล่ะ เพื่อที่เราต้องการไฟ LED เพียง 12 ดวงซึ่งหมายความว่าเราได้เส้นผ่านศูนย์กลาง 63.6 มม. นอกจากนี้เรายังสามารถแยกแยะชั่วโมงและนาทีด้วยการให้สีแยกกัน เราจะสามารถให้ขั้นตอนนาทีเดียวที่ "ขาดหายไป" ด้วยแถบไฟ LED เพิ่มเติม 4 ดวง (หรือ LED ที่กำหนดแอดเดรสเดียวได้

นั่นคือแผน! มาดูกันว่าฉันทำทุกอย่างได้อย่างไร และเช่นเคย ฉันจะจัดเตรียมรายการ/รายการวัสดุและคำแนะนำเกี่ยวกับวิธีการสร้าง

ถ้าคุณคิดว่า มีแต่คนสวิสเท่านั้นที่สามารถสร้างนาฬิกาสุดเท่ มาพิสูจน์ว่าคุณคิดผิด (ขออภัยสวิตเซอร์แลนด์:-P)

ขั้นตอนที่ 1: การออกแบบและการเลือกใช้วัสดุ

การออกแบบและการเลือกใช้วัสดุ
การออกแบบและการเลือกใช้วัสดุ
การออกแบบและการเลือกใช้วัสดุ
การออกแบบและการเลือกใช้วัสดุ

ออกแบบ:

หากเรามองดูนาฬิกา/นาฬิกาแอนะล็อกอย่างใกล้ชิดอีกครั้ง เราจะเห็นว่าวงกลมแบ่งออกเป็นขั้นๆ 12 * 30° ที่เราทราบ ว่าเราต้องการ 63.6 มม. สำหรับ LED-Strip ดังนั้นจึงควรจัดแนวแถบรอบท่อด้วยวิธีใดวิธีหนึ่ง ฉันตัดสินใจใช้แก้วอะครีลิคเพราะมันดูดีและสามารถใส่ไฟ LED ลงในแคปซูลได้ และแสงจะกระเจิงที่กระจกทุกจุด สมมติว่า: สิ่งเจือปนมากขึ้นจะทำให้แสงกระเจิงมากขึ้น! นั่นคือสิ่งที่เราต้องการ ดังนั้นอย่าลังเลที่จะคว้าเครื่องมือแกะสลักและสร้างสรรค์:-)

หากคุณอ้างถึงรายชื่อ BoM ของฉันและชื่อที่ฉันตั้งให้กับนาฬิกา ฉันได้เลือกการออกแบบที่คล้ายกับดวงอาทิตย์ ฉันได้ชิ้นส่วนอะคริลิกทั้งหมดจากผู้ขายชาวเยอรมันใน E-Bay (ลิงก์ที่ให้ไว้ใน BoM) สำหรับการออกแบบของฉัน คุณจะต้องการ:

  • แผ่นพื้นอะครีลิค, ความหนาโปร่งใส = 6mm, เส้นผ่านศูนย์กลาง = 300mm
  • แผ่นกลางอะครีลิค ความหนาใส = 3 มม. เส้นผ่านศูนย์กลาง = 150 มม.
  • แผ่นหน้าอะครีลิค, ผ้าซาติน, หนา = 3mm, เส้นผ่านศูนย์กลาง = 90mm
  • หลอดอะครีลิคใส เส้นผ่านศูนย์กลางภายนอก = 64 มม. (แปลว่าต้องบิดแถบ LED นิดหน่อย)
  • แท่งอะครีลิคใสเส้นผ่านศูนย์กลาง = 5 มม. (นี่จะเป็นคานของเรา); นอกจากนี้ยังมีแท่งอะครีลิกที่มีฟองอยู่ข้างในด้วย ฉันแนะนำแต่ฉันไม่มี
  • กาวอะครีลิค

อิเล็กทรอนิกส์ (อ้างถึงไฟล์ Fritzing):

  • Arduino mini (หรือคล้ายกัน)
  • แถบ LED ที่กำหนดแอดเดรสได้ 1 ดวง (ไฟ LED 12 ดวงสำหรับชั่วโมงและขั้นละ 5 นาที)
  • ไฟ LED แสดงตำแหน่งได้ 4 ดวง (นาทีเดียว)
  • 2 330โอห์มต้านทาน
  • 1 1000µF ตัวเก็บประจุ
  • 1 แหล่งจ่ายไฟ (5V/500mA)
  • RTC DS-1307 (เป็นทางเลือก!)
  • โมดูลบลูทูธ (อุปกรณ์เสริม! ใช่ คุณสามารถตั้งเวลาผ่าน BT และสมาร์ทโฟน Android)

หากคุณถามตัวเองว่าทำไมฉันถึงมีชิป MAX485 บน BoM ของฉัน คำตอบคือ ฉันต้องการซิงโครไนซ์นาฬิกากับระบบโฮมออโตเมชั่นที่ฉันกำลังจะทำ (ไม่ต้องตั้งนาฬิกาสำหรับการออมแสงอีกเลย:-P) ฉันจะอธิบายในบล็อกของฉันในครั้งต่อไป สองสามสัปดาห์/เดือน

อย่างที่คุณสังเกตเห็น ฉันจะพยายามเอานาฬิกานอกตารางด้วยแผงโซลาร์เซลล์และ LiPo แต่ฉันไม่ครอบคลุมในคำแนะนำนี้ คุณสามารถลองใช้เองได้

ขั้นตอนที่ 2: เตรียมชิ้นส่วนอะคริลิก

เตรียมชิ้นส่วนอะครีลิค
เตรียมชิ้นส่วนอะครีลิค
เตรียมชิ้นส่วนอะครีลิค
เตรียมชิ้นส่วนอะครีลิค
เตรียมชิ้นส่วนอะครีลิค
เตรียมชิ้นส่วนอะครีลิค

เครื่องมือ:

อย่างแรกเลย จะเป็นประโยชน์อย่างยิ่งหากคุณพิมพ์แผน DWG ที่ฉันเพิ่มไว้ในมาตราส่วน 1:1 ซึ่งจะช่วยให้คุณจัดตำแหน่งชิ้นส่วนทั้งหมดและจะทำหน้าที่เป็นแผนเจาะจง ต่อไปคุณจะต้อง:

  • มีดงานอดิเรก
  • ตุ้มปี่
  • เลื่อยวงเดือน
  • ที่หนีบ
  • สว่านมือ
  • เจาะได้ เส้นผ่านศูนย์กลาง 65mm
  • ชุดสว่านโลหะ
  • ไฟล์โลหะขนาดเล็ก
  • กาวอะครีลิค

เริ่มกันเลย:

นำเพลทพื้นและจัดวางบนแผนผัง คุณจะได้จุดศูนย์กลางของวงกลม ตอนนี้ใช้สว่านมือของคุณโดยติดตั้งสว่านกระป๋องและเจาะ (ช้ามาก! ไม่แรงมาก!) รูตรงกลางแผ่นกราวด์ วงกลมด้านนอกควรลึกประมาณ 2-3 มม. นี่คือการจมแถบ LED ลงในแผ่นพื้น (แถบ LED กว้าง ~ 10 มม. คานมีเส้นผ่านศูนย์กลางเพียง 5 มม.) และจัดตำแหน่งให้ตรงกับคาน (ดูรูปที่ 1)

ตอนนี้เราต้องการเลื่อยเลือยตัดโลหะ เกจวัดองศา และท่ออะคริลิก แค่หั่นเป็นชิ้น ๆ ฉันตัดสินใจทำตัวเรือน (ท่อ) ยาว 40 มม. (ภาพที่ 2) ตอนนี้คว้าเลื่อยเลือยตัดโลหะอีกครั้งแล้วทำ rabbet เล็กน้อยที่ด้านหนึ่งของท่อแล้วทำให้เรียบด้วยตะไบโลหะ นั่นคือที่ที่สายไฟจะออกมา;-) (ดูรูปที่ 3)

ได้เวลาทากาว…เอาแผ่นตรงกลาง (d=150mm) กับแผ่นด้านหน้า (แผ่นที่เคลือบแล้ว) จัดวางบนแผนผังอีกครั้ง ใส่กาวลงไปตรงกลางของเพลทตรงกลาง จัดแนวเพลทด้านหน้าแล้วรอจนกระทั่ง กาวแข็งตัวเล็กน้อย กาวที่ฉันใช้นั้นแข็งตัวเล็กน้อยและอาจใช้เวลานานถึง 2-3 ชั่วโมง ฉันเลยอยากใช้ที่หนีบ… (ภาพที่ 3 และ 4)

ทำเช่นเดียวกันกับการติดกาวท่อบนเพลทพื้น ตรวจสอบให้แน่ใจว่า rabbet หันไปทางเพลต และจัดวางในตำแหน่งที่คุณต้องการให้ไฟ LED ดวงแรก (12 นาฬิกา) อยู่

รอจนแข็ง!

ตอนนี้เราสามารถจัดตำแหน่ง 2 ส่วน (bookmatched) ให้เข้ากับแผนแล้วเจาะ 4 รูนาทีเดียวของเรา (เส้นผ่านศูนย์กลาง 5 มม. หรือเส้นผ่านศูนย์กลางของ LED ที่คุณเลือก เจาะช้าๆ โดยไม่ต้องใช้แรงกดมากเกินไป) เจาะลึกประมาณ 8-9 มม. ระวัง จานผ้าซาตินจะเปราะมากและสามารถเบรกได้หากเจาะลึก ตอนนี้คุณจะติดกาวเข้าด้วยกันหรือจะตัดสินใจ เช่น ให้ตัดสิ่งคุกคามเข้าไปในเพลทที่พื้นแล้วติดด้วยสกรู

อีกครั้ง รอจนกาวแข็งตัว ตอนนี้จัดแนวและติดคานบนแผ่นพื้น (ภาพที่ 6)เดาสิ… รอจนกว่ากาวจะแข็งตัว:-)ไปที่อุปกรณ์อิเล็กทรอนิกส์กัน…

ขั้นตอนที่ 3: อุปกรณ์อิเล็กทรอนิกส์

อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์
อิเล็กทรอนิกส์

เครื่องมือ:

  • หัวแร้ง
  • ลวดเชื่อม
  • มีดงานอดิเรก
  • PCB ต้นแบบชิ้นเล็ก ๆ
  • ลวดเคลือบหรือลวดอื่น ๆ ที่คุณต้องการ
  • กาวร้อน

ฉันวาดด้วย LED เดี่ยว หากคุณใช้ลวดเคลือบอย่าลืมขูดแล็กเกอร์ก่อนบัดกรี คุณสามารถใช้มีดงานอดิเรกสำหรับสิ่งนั้น ต่อสาย คุณสามารถอ้างถึงรูปภาพด้วยพินเอาต์บน flikto.de โปรดทราบว่า DOUT ไปที่ DIN ใน LED ถัดไป! (ดูรูปที่ 2) หลังจากนั้นคุณสามารถตัดแถบ LED ออกเป็น 4 องค์ประกอบแต่ละอันมีไฟ LED 3 ดวง โปรดจำไว้ว่า เรามี LED Strip ขนาด 63.6 มม. และเส้นผ่านศูนย์กลางภายนอก 64 มม. ของหลอด ดังนั้นเราจึงต้องการ "ความยาวเพิ่มเติมในการจัดตำแหน่งให้ตรงกับคานอย่างแม่นยำ ต่อสายด้วยลวดเคลือบเหมือนในรูปที่ 4 ฉันทำโปรโต PCB เล็กน้อยที่จะให้บริการ เป็น "ชุดสายไฟ" และจะประกอบด้วยส่วนประกอบสำหรับแถบ LED (ตัวต้านทาน 330Ohm สองตัวและตัวเก็บประจุ 1000µF ภาพที่ 7) อ้างถึง Fritzing Image สำหรับสิ่งนั้น

ตอนนี้ติดสตริปรอบหลอด จัดไฟ LED ให้ตรงกับคาน Pixel แรกตรงกับ 12 นาฬิกา หากคุณหันหลังให้กับที่อยู่อาศัยของคุณ อย่าลืมว่าทุกอย่างสะท้อนออกมา ดำเนินการทวนเข็มนาฬิกา! ใช้กาวร้อนติดเข้ากับท่อ การลดลงเล็กน้อยสำหรับทุกส่วนจะทำได้!

คุณสามารถทำเช่นเดียวกันกับไฟ LED เดี่ยว (ในที่สุดก็ทำมิเรอร์) เพียงเพิ่มกาวร้อนแล้วกดลงในรูที่เจาะไว้

อย่าเพิ่งต่อ Arduino เราจะใช้ฮาร์ดแวร์ซีเรียลสำหรับการเชื่อมต่อ BT ดังนั้นก่อนอื่นให้ตรวจสอบขั้นตอนถัดไปที่ฉันอธิบายซอฟต์แวร์

ขั้นตอนที่ 4: รหัส

รหัส
รหัส
รหัส
รหัส

ตอนนี้คุณสามารถโหลดภาพร่างไปยัง Arduino คุณยังสามารถต่อสายแถบ LED ได้ในขณะนี้ อย่าเชื่อมต่อโมดูล BT !!! ก่อนอื่นเราต้องการดูรหัส คุณควรรู้ว่าคุณสามารถปรับแต่งอะไรหลายๆ อย่าง…

ดาวน์โหลด Arduino IDE และ Librarys. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

ติดตั้ง IDE และใส่ไลบรารีลงในโฟลเดอร์ไลบรารี เปิดไฟล์ INO ที่แนบมาและอัปโหลดไปยัง Arduino ของคุณ รหัสที่อธิบายไว้ที่นี่เหมือนกัน แต่มีความคิดเห็นเพิ่มเติม! หากคุณทำทุกอย่างถูกต้องแล้ว คุณจะเห็น "bootanimation" สามารถตั้งเวลาบนจอภาพแบบอนุกรมได้ เพียงพิมพ์ @"hour"/"min"/"sec" เช่น @ 10/33/00 (10:33)

รู้สึกอิสระที่จะเล่นกับโค้ด…ที่นี่ ให้คำอธิบายสั้น ๆ เกี่ยวกับโค้ด (ตั้งค่าโดยไม่ใช้ RTC!)

คำจำกัดความ:

#define PIN 6 // LED Strip ชั่วโมง #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // จำนวนพิกเซลต่อชั่วโมง #define MINNUMPIXELS 4 // จำนวนพิกเซลในหนึ่งนาที #define BAUDRATE 115200 // Baudrate ควรตรงกัน baudrate ของ BT Module #define utch '@' // เริ่ม BYTE ของ TimeSync

ชุดเวลา int = 0; //ตั้งค่าสถานะที่จะจัดเก็บหากตั้งเวลาไว้หลังจาก bootint delayval = 20; //การหน่วงเวลาสำหรับแอนิเมชั่นการซีดจาง int clocktimer = 10000; // เวลารีเฟรช int timebright = 250; //ความสว่างของชั่วโมง Strip int mtimebright = 50; //ความสว่างของการเริ่มต้น singlelminint = 0; //ตั้งค่าสถานะเพื่อเรียกใช้ฟังก์ชัน clearpixels หลังจาก bootint ahour; int oldahour = 0; // เก็บก่อน ชั่วโมงต่อนาที; int oldamin = 0; // เก็บนาทีก่อนหน้าเพื่อรีเฟรชเป็นวินาที วันต่อวัน; int ต่อเดือน; int ปี; int mmin;tmElements_t tm;

//การตั้งค่าสำหรับอาร์เรย์ LED NeoPixel 2 ชุด (NAME = TYPE (NUMBER OF PIXELS, WHICH PIN, FORMAT RGB OR GRB, FREQ) โปรดดูข้อมูลเพิ่มเติมในคู่มือ Adafruit พิกเซล Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel(MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

ติดตั้ง:

การตั้งค่าเป็นโมฆะ () {

Serial.begin(BAUDRATE); Wire.begin(); // เริ่มต้นแถบ OFFpixels.begin(); minpixels.begin(); พิกเซล.show(); minpixels.show();

//สร้างภาพเคลื่อนไหวเล็กน้อยSerial.println("SUNRISE"); พระอาทิตย์ขึ้น(); ล่าช้า (1000); Serial.println("พระอาทิตย์ตก"); พระอาทิตย์ตก(); พิกเซล.show(); Serial.println("พร้อม"); }

วนซ้ำ:

วงเป็นโมฆะ () { // ตรวจสอบการซิงโครไนซ์ในขณะที่ (Serial.available () >0) { ถ่าน c = Serial.read (); if(c == utch) // หากมี @ ในบรรทัด ให้อ่านไบต์ที่จะมาถึง / ints{ readtime(); } } // เริ่มต้นไฟ LED, แอนิเมชั่นการบูตที่ชัดเจน

ถ้า(เริ่มต้น == 0){ clearpixels(); เริ่มต้น = 1; }

ชั่วโมง = ชั่วโมง ();

นาที = นาที (); if(timeset == 1 || timeset == 0) // ที่นี่คุณสามารถตรวจสอบว่า Time ถูกตั้งค่าไว้หรือไม่ คุณสามารถหยุดโปรแกรมได้ที่นี่ หาก Timeset = FALSE เพียงลบ "|| timeset == 0" !

{

if(oldamin <aminute || oldahour ตั้งค่าทั้งหมดเป็น OFF แสดงเวลาใหม่{ clearpixels(); ClockDisplay(); } } }

แสดงนาฬิกา:

เป็นโมฆะ ClockDisplay () {

oldahour = ahour;

oldamin = นาที; int xhour, xmin;

ถ้า (ชั่วโมง >= 12){ xhour = ahour-12; // เรามีไฟ LED 12 ดวงสำหรับการแสดงผล 24 ชั่วโมงเท่านั้น} อื่น ๆ { xhour = ahour; } //ปรับเป็นขั้นตอน 5 นาที xmin = (นาที / 5); if(oldamin <aminute){ oldamin = นาที; clearpixels(); } // นำส่วนที่เหลือของดิวิชั่นไปที่ single LED mmin = (aminute % 5); // ตัวดำเนินการโมดูโลเช่น 24 % 5 = 4! มีประโยชน์มาก:-Ppixels.setBrightness(timebright); พิกเซล.setPixelColor(xmin, พิกเซล.สี(5, 125, 255)); // เปลี่ยนสีได้ที่นี่! เล่นรอบๆ!pixels.setPixelColor(xhour, pixels. Color(255, 50, 0)); พิกเซล.show();

//แสดง single minsfor (int m=0; m

minpixels.setBrightness(mtimebright); minpixels.setPixelColor(ม., พิกเซล.สี(255, 255, 0)); minpixels.show(); } }อ่านและประมวลผลข้อมูล TIME จาก Serial

ถือเป็นโมฆะ readtime () // หากเราได้รับ "@" นำหน้าแล้วประมวลผลข้อมูลที่มาและจัดเก็บเวลาสำหรับ TIME Lib{

ahour = Serial.parseInt(); นาที = Serial.parseInt(); วินาที = Serial.parseInt(); aday = Serial.parseInt(); เดือน = Serial.parseInt(); ปี = Serial.parseInt(); Serial.println("TIMESET"); Serial.print(ahour); Serial.print(": "); Serial.println (นาที); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

ลบทั้งหมด

เป็นโมฆะ clearpixels () // ตั้งค่าทุก PIXEL ให้ปิดเพื่อรีเฟรชการแสดงผล{

พิกเซล.begin(); minpixels.begin(); สำหรับ(int i=0;ipixels.setPixelColor(i, pixels. Color(0, 0, 0)); minpixels.setPixelColor(i, pixels. Color(0, 0, 0)); pixels.show(); minpixels.แสดง(); } }

ขั้นตอนที่ 5: การเชื่อมต่อแอพ Android และ BT

การเชื่อมต่อแอพ Android และ BT
การเชื่อมต่อแอพ Android และ BT
การเชื่อมต่อแอพ Android และ BT
การเชื่อมต่อแอพ Android และ BT
การเชื่อมต่อแอพ Android และ BT
การเชื่อมต่อแอพ Android และ BT

หากคุณทำตามขั้นตอนก่อนหน้านี้สำเร็จแล้ว คุณสามารถต่อโมดูล BT ของคุณได้ (ฉันหวังว่าคุณจะแน่ใจว่า baudrates ตรงกัน) อย่าลืมข้ามเส้น TX & RX:-)

ดาวน์โหลดและติดตั้งแอป จับคู่กับดองเกิล BT ของคุณ เริ่มแอป เชื่อมต่อกับดองเกิล และซิงค์เวลากับมือถือของคุณ โดยพื้นฐานแล้ว APP จะทำแบบเดียวกับที่เราทำก่อนหน้านี้ มันแค่ส่ง @hh/mm/ss/dd/mm/YYYY ที่สร้างจากเวลาของระบบ ฉันยังให้ไฟล์ APPInventor AIA และคำอธิบายในขั้นตอนต่อไป (สำหรับผู้ที่สนใจ)

ขั้นตอนที่ 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor ค่อนข้างใช้งานง่ายและคุ้มค่ากับความพยายามสำหรับโปรแกรมง่ายๆ เช่นนี้

หากคุณสร้างโปรเจ็กต์ใหม่ คุณจะพบว่าตัวเองอยู่ที่หน้าจอ DESIGNER (ภาพที่ 1) นี่คือที่ที่เราเพิ่มตาราง ปุ่ม เซ็นเซอร์ และองค์ประกอบอื่นๆ เพื่อใช้งานต่อไป ในกรณีของเรา เราต้องการ:

  • ตาราง (เพื่อจัดองค์ประกอบทั้งหมด)
  • listpicker (สำหรับการเลือกอุปกรณ์ BT ที่เราเชื่อมต่อ)
  • ปุ่ม (เพื่อยิง TIME ผ่าน BT)
  • บางป้าย (แสดงเวลาและวันที่จริง)
  • เซ็นเซอร์นาฬิกา (รีเฟรชเวลา)
  • เซ็นเซอร์ไคลเอนต์บลูทู ธ (การเชื่อมต่อ)

การเพิ่มมันง่ายเหมือนการลากและวาง! ในภาพที่ 2 คุณสามารถดูภาพรวมของ "APP" ในหน้าจอ BLOCKS นั่นคือจุดที่เกิด "เวทย์มนตร์" ทั้งหมด ด้านบนฉันสร้างตัวแปรบางตัวเพื่อจัดเก็บเวลาและวันที่ บล็อกแรกทางด้านซ้ายบนจะเริ่มต้นองค์ประกอบ listpicker ด้วยรายการอุปกรณ์ BT ที่จับคู่กันด้วย บล็อกที่สอง เราตัดสินใจว่าจะทำอย่างไรกับองค์ประกอบที่เลือกไว้ก่อนหน้านี้ เราต้องการเชื่อมต่อกับมัน

หากคุณดูบล็อกถัดไปอย่างใกล้ชิด คุณจะเห็นว่าเราสร้างข้อความ BT หากสถานะ BT "เชื่อมต่ออยู่" เหมือนกับที่เราเคยพิมพ์ลงใน SerialMonitor มาก่อน บล็อกสุดท้ายทางด้านซ้ายจะให้เลขศูนย์นำหน้าเพื่อแสดงเวลา (เช่น 01:08) ทางด้านขวา คุณจะพบบล็อกสุดท้ายของเรา นั่นคือที่ที่เราใช้องค์ประกอบนาฬิกา ที่นี่เราอัปเดตตัวแปรและรวมเข้ากับขั้นตอนตัวเลข ซึ่งจะเกิดขึ้นทุกๆ 1,000 มิลลิวินาที (การตั้งค่าเริ่มต้น เปลี่ยนในโหมดนักออกแบบ) และแสดงค่าที่อัปเดตด้วยป้ายกำกับ นั่นเป็นเพียงคำอธิบายสั้น ๆ แต่ APPInventor นั้นง่ายมาก:-) อาจมีบางคนในชุมชนที่ต้องการเขียนซอฟต์แวร์สำหรับ iOS หรือ WindowsPhone (จะดี)

ฉันหวังว่าคุณจะชอบคำแนะนำของฉัน! ขอให้สนุกกับนาฬิกาแขวนใหม่ของคุณ! บางทีคุณอาจต้องการมอบของขวัญให้คนที่คุณรัก (เป็นเทศกาลคริสต์มาส):-)

และหากมีข้อสงสัยประการใด ถามมาได้เลยนะครับ!

ขอแสดงความนับถือและ Merry X-Mas

แนะนำ: