สารบัญ:

Tweeting Weather Station: 8 ขั้นตอน (พร้อมรูปภาพ)
Tweeting Weather Station: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tweeting Weather Station: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tweeting Weather Station: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: SparkFun Getting Started with Raspberry Pi Part 3: Tweeting Weather Station 2024, กรกฎาคม
Anonim
ทวีตสถานีตรวจอากาศ
ทวีตสถานีตรวจอากาศ

เคยต้องการที่จะตรวจสอบสภาพอากาศในเมืองของคุณในปัจจุบัน รอยเท้าคาร์บอน ระดับเสียงรบกวนและมลพิษหรือไม่? คุณต้องการเป็น Crusader เกี่ยวกับการเปลี่ยนแปลงสภาพภูมิอากาศหรือตั้งค่า Tweeting Weather Station ของคุณเองและแบ่งปันสภาพอากาศในท้องถิ่นของคุณกับคนทั้งโลกหรือไม่?

พบกับ Tweeting Weather IoT Station หรือที่รู้จักว่า TWIST - แพลตฟอร์ม DIY, โอเพ่นซอร์ส การตรวจสอบสิ่งแวดล้อม และ แพลตฟอร์มการจัดหาข้อมูลอุตุนิยมวิทยา วัตถุประสงค์ของ TWIST คือเพื่อให้บุคคลและชุมชนสามารถรวบรวมข้อมูลของสิ่งที่เกิดขึ้นจริงในสภาพแวดล้อมของพวกเขา และแบ่งปันข้อมูลนี้บนโซเชียลมีเดีย เช่น Twitter

  • TWIST เป็นแพลตฟอร์มที่ขับเคลื่อนด้วย Internet of Things (IoT)
  • สมองของ TWIST คือบอร์ด Intel Edison
  • TWIST เข้ากันได้กับเซ็นเซอร์ต่างๆ
  • โค้ด ไฟล์การออกแบบทั้งหมด (แผนผังและเลย์เอาต์ PCB) เป็นโอเพ่นซอร์ส ซึ่งหมายความว่าทุกคนสามารถมีส่วนร่วมในแพลตฟอร์ม TWIST ได้ด้วยการแชร์โค้ดและแผนผังสำหรับเซ็นเซอร์ต่างๆ

TWIST ประกอบด้วยเทคโนโลยีสามชั้น:

ชั้นแรกเป็นบอร์ดฮาร์ดแวร์ที่มีเซ็นเซอร์สภาพอากาศและสิ่งแวดล้อมทั้งหมดที่เรียกว่า 'แผงเซ็นเซอร์' ตามชื่อที่แนะนำ มีเซ็นเซอร์ที่วัดองค์ประกอบของอากาศ อุณหภูมิ ความชื้น ฝน นอกจากนี้ยังสามารถเพิ่มเซ็นเซอร์เพิ่มเติม เช่น กิจกรรมแผ่นดินไหว ดัชนี UV ความดันบรรยากาศ ระดับความสูง ลักซ์ (ความส่องสว่าง) ระดับเสียง ความเร็วและทิศทางลม ฯลฯ ได้ เมื่อตั้งค่าแล้ว บอร์ดเซนเซอร์จะสามารถสตรีมข้อมูลที่วัดโดยเซ็นเซอร์ไปยังเลเยอร์ที่สองได้ เลเยอร์ที่สองคือ Intel Edison Board ที่รับข้อมูลจาก Sensor Board ประมวลผลและส่งไปยังเลเยอร์ถัดไป ชั้นที่สามเชื่อมต่อ Edison Board ของคุณกับอินเทอร์เน็ตผ่าน Wi-Fi โดยใช้โมดูลไร้สายบนบอร์ด Edison และสภาพอากาศและสิ่งแวดล้อมปัจจุบันของทวีต

สามารถจ่ายไฟให้กับอุปกรณ์ได้จากแผงโซลาร์เซลล์หรืออะแดปเตอร์ AC

ที่เก็บที่ควบคุมเวอร์ชัน

เทคโนโลยีทั้งสามชั้นของ TWIST เป็นโอเพ่นซอร์ส ดังนั้นไฟล์ทั้งหมดที่เราใช้สำหรับโค้ด การพัฒนา PCB การออกแบบทางกล ฯลฯ พร้อมใช้งานบนที่เก็บ Github ของเรา

รายการประกวด

Intel IoT Invitational

ฉันขอขอบคุณ Intel+Instructables ที่ให้บอร์ด Intel Edison แก่ฉัน ฉันวางแผนที่จะสร้าง Instructables ที่เกี่ยวข้องกับ IoT เพิ่มเติมโดยใช้บอร์ด Edison

#iotweatherstn

หากคุณทำ TWIST อย่าลืมทวีตสภาพอากาศโดยใช้ #iotweatherstn #iotweatherstn สามารถเป็นแฮชแท็กที่ใช้โดยสถานีตรวจอากาศทวีตติ้ง IoT ทั้งหมด

ขั้นตอนที่ 1: ชิ้นส่วนและวัสดุ

ชิ้นส่วนและวัสดุ
ชิ้นส่วนและวัสดุ
ชิ้นส่วนและวัสดุ
ชิ้นส่วนและวัสดุ
ชิ้นส่วนและวัสดุ
ชิ้นส่วนและวัสดุ

จำนวนรายละเอียดบางส่วน 1

อินเทล เอดิสัน

ด้วยบอร์ดฝ่าวงล้อม Arduino

1

MQ2 เซนเซอร์ตรวจจับก๊าซที่ติดไฟได้

1

YL-83

เซ็นเซอร์วัดปริมาณน้ำฝน

1

SL-HS-220

เซ็นเซอร์อุณหภูมิและความชื้น

1

ตัวต้านทาน

32K

4.7K

3 โลหะ Standoff 1inch

1

ตัวต้านทาน

32K

4.7K

2

แผ่นไม้ ขนาด A4

ภายหลังสามารถตัดขนาดได้

3

โลหะขัดแย้ง

1 นิ้ว

ขั้นตอนที่ 2: การออกแบบไฟฟ้า

พลัง

ระบบทั้งหมดใช้พลังงานจากแหล่งจ่ายไฟ 5V 1A เซ็นเซอร์ (อุณหภูมิ, ความชื้น, ฝน, แก๊ส) ดึงประมาณ 200 mA, Edison ประมาณ 500 mA เนื่องจากกระแสไฟทั้งหมดที่ต้องการน้อยกว่า 1 แอมป์ การจ่ายไฟ 1 แอมป์จึงควรทำงานได้ดี LED สีเขียวในตัวบนพินดิจิตอล 13 ของ Edison Board ใช้เพื่อแสดงสถานะพลังงาน

การควบคุม Intel Edison ดำเนินการแสดงสำหรับ TWIST Edison ติดตั้งอยู่บนบอร์ดฝ่าวงล้อม Arduino ซึ่งทำให้ง่ายต่อการอ่านสัญญาณดิจิตอลและอนาล็อกจากเซ็นเซอร์ Edison เชื่อมต่อกับราง 5V ผ่านสายไมโคร USB Edison มีวิทยุ Wi-Fi ในตัว ซึ่งช่วยให้เชื่อมต่อกับ Twitter ได้โดยไม่ต้องใช้ฮาร์ดแวร์เพิ่มเติม

นาฬิกาตามเวลาจริง (RTC)

เนื่องจาก Twitter ทำการประทับเวลาโดยอัตโนมัติสำหรับทวีตแต่ละรายการมีความละเอียดที่จำกัดอยู่ที่จำนวนวันทั้งหมดนับตั้งแต่เวลาทวีต นาฬิกาแบบเรียลไทม์จึงถูกใช้เพื่อประทับวันที่และเวลาอย่างแม่นยำในชั่วโมง-นาที- รูปแบบที่สอง นาฬิกาแบบเรียลไทม์ที่ใช้ในแพลตฟอร์ม TWIST คือโมดูล DS-1307 RTC

เซ็นเซอร์ การตั้งค่าพื้นฐานที่สุดของระบบนี้มีเซ็นเซอร์สี่ตัว (อุณหภูมิ ความชื้น ฝน แก๊ส) ที่เชื่อมต่อกับ Edison สามารถเพิ่มเซ็นเซอร์เพิ่มเติมได้ เช่น เสียงรบกวน ลม ฯลฯ เซ็นเซอร์แต่ละตัวได้รับพลังงานโดยตรงจากราง 5V และมีพินสัญญาณเชื่อมต่อตามลำดับกับพินอะนาล็อก A0 ถึง A2 และพินดิจิทัล 2 บนบอร์ดฝ่าวงล้อม Edison เซ็นเซอร์แต่ละตัวยังมีโพเทนชิออมิเตอร์ปรับความไวที่ติดตั้งอยู่บนบอร์ดเซ็นเซอร์แต่ละตัว MQ-2 เป็นเซ็นเซอร์ก๊าซที่ติดไฟได้ (ก๊าซปิโตรเลียมเหลว โพรเพน ไฮโดรเจน และมีเทน) ที่ส่งสัญญาณแรงดันแอนะล็อกตามสัดส่วนกับความเข้มข้นของก๊าซในส่วนต่อล้าน SL-HS-220 มีเทอร์มิสเตอร์ที่ให้ค่าอุณหภูมิ เนื่องจากเอาต์พุตของเทอร์มิสเตอร์ไม่เป็นเชิงเส้น ตารางอุณหภูมิที่สอดคล้องกันจึงอยู่ในที่เก็บเซ็นเซอร์ เทอร์มิสเตอร์ต้องใช้วงจรแบ่งแรงดันเมื่อเชื่อมต่อกับบอร์ด Edison ดังแสดงในแผนภาพวงจร SL-HS-220 ยังมีไฮโกรมิเตอร์ในตัวซึ่งวัดความชื้นและส่งสัญญาณแรงดันแอนะล็อกที่สอดคล้องกับค่าความชื้นคงที่ ตารางแรงดันความชื้นยังมีอยู่ในที่เก็บเซ็นเซอร์ แทนที่ SL-HS-220 ทั่วไปคือเซ็นเซอร์ DHT11 เซ็นเซอร์วัดปริมาณน้ำฝน/เซ็นเซอร์น้ำมีโพเทนชิออมิเตอร์ซึ่งถูกปรับเพื่อให้เอาต์พุตแบบดิจิตอลสำหรับปริมาณน้ำฝนจำนวนหนึ่ง ซึ่งผู้ใช้สามารถปรับความไวได้

สถานีอากาศ.fzz

ขั้นตอนที่ 3: การออกแบบเครื่องกล

ตัวเครื่องของ TWIST ทำจากแผ่นไม้สองแผ่น แม้ว่าฉันจะใช้ไม้อัดขนาด 1/4" แต่การออกแบบก็สามารถประกอบขึ้นจากวัสดุแผ่นใดก็ได้ เนื่องจากระยะห่าง (ดูแลโดยอะลูมิเนียม 1" ที่แยกจากกัน) เป็นองค์ประกอบที่สำคัญเพียงอย่างเดียว ฉันได้แนบไฟล์เวกเตอร์สำหรับดาวน์โหลดด้านบน

ตัดด้วยเลเซอร์

สำหรับผู้ที่ต้องการตัดเลเซอร์ทั้งสองแผ่น ผมได้แนบไฟล์เครื่องตัดเลเซอร์ให้ดาวน์โหลดด้านล่าง นอกจากนี้ยังมีเซ็นเซอร์คุณภาพอากาศเพิ่มเติมในการออกแบบ ดังนั้น คุณสามารถใช้โมดูลเซ็นเซอร์ MQ2 หรือโมดูลเซ็นเซอร์คุณภาพอากาศ ขึ้นอยู่กับตัวเลือกของคุณ

ขั้นตอนที่ 4: การประกอบเฟรม: ใบหน้าและฐาน

แผ่นปิดหน้า

เซ็นเซอร์จะพอดีกับรูและช่องเจาะที่เข้าชุดกัน และสามารถแก้ไขได้โดยใช้สกรูหรือกาว

แผ่นฐาน

ขาตั้งของบอร์ด Edison ถูกขันเข้ากับแผ่นฐาน ตัวแปลงอนาล็อกเป็นดิจิตอล (ADC) ซึ่งเชื่อมต่อกับเซ็นเซอร์ปริมาณน้ำฝนสามารถขันเข้ากับแผ่นฐานได้

ส่วนประกอบเพิ่มเติม เช่น ออดหรือวงจรควบคุมแรงดันไฟฟ้าสำหรับอินพุตพลังงานแสงอาทิตย์สามารถขันเข้ากับแผ่นฐานได้

แผ่นฐานและแผ่นปิดหน้าทั้งสองแยกจากกันด้วยข้อขัดแย้งขนาด 1 นิ้ว

ขั้นตอนที่ 5: การประกอบอุปกรณ์อิเล็กทรอนิกส์และเซ็นเซอร์

พลัง

พลังงานสำหรับระบบนั้นมาจากอะแดปเตอร์ติดผนังที่มีแม่แรงแบบบาร์เรลมาตรฐาน ซึ่งเชื่อมต่อโดยตรงกับขั้วต่อ Barrel ของ Edison ระบบยังสามารถขับเคลื่อนผ่านพอร์ต USB บนบอร์ด Edison คุณยังสามารถจ่ายไฟให้กับบอร์ดจากแผงโซลาร์เซลล์ภายนอกได้อีกด้วย

เซนเซอร์

เซ็นเซอร์ติดอยู่กับแผงฝ่าวงล้อมที่มีส่วนหัวของตัวผู้ ดังนั้นจึงสามารถเชื่อมต่อโดยตรงกับ Edison ผ่านสายจัมเปอร์ตัวผู้กับตัวเมีย

ขั้นตอนที่ 6: การกำหนดค่า Twitter

ในการทวีต เราใช้แอพของบุคคลที่สามที่พัฒนาโดย NeoCat ที่ได้รับโทเค็น Twitter คุณจะต้องทวีตกับบอร์ด Edison ของคุณ โทเค็นสามารถหาได้จากเว็บเพจนักพัฒนาของ Twitter

ในการเริ่มต้น ไปที่เว็บไซต์ของ NeoCat ทำตามบทช่วยสอนของเขา/เธอเพื่อรับไลบรารี twitter และโทเค็น twitter ของคุณ ตามที่ NeoCat กล่าวถึงในเว็บไซต์ โปรดอย่าใช้บริการในทางที่ผิด ให้ทวีตของคุณเบาบาง หากคุณต้องการบางสิ่งที่ทวีตทุกๆ 6 วินาที คุณควรตั้งค่าเซิร์ฟเวอร์และแอป Twitter ของคุณเอง ดังนั้นรหัสที่ฉันเขียนทำให้แน่ใจได้ว่าเซิร์ฟเวอร์ของ NeoCat จะไม่โอเวอร์โหลด (ทวีต TWIST ทุก 6 ชั่วโมง)

ห้องสมุดใช้เว็บไซต์ของ NeoCat เป็นพร็อกซีเซิร์ฟเวอร์สำหรับ OAuth ทวีตของคุณไม่สามารถใช้ในระหว่างการบำรุงรักษาเว็บไซต์ NeoCat นี้ได้ ดูเหมือนว่า Twitter จะปฏิเสธการทวีตซ้ำที่มีเนื้อหาเดียวกัน (ส่งคืนข้อผิดพลาด 403)

โทเค็นทวิตเตอร์

Arduino Tweet Library

ขั้นตอนที่ 7: ซอฟต์แวร์และการกำหนดค่า

ปฏิบัติตามคู่มือการตั้งค่าของ Intel สำหรับ Intel Edsion ก่อนที่คุณจะเริ่มเขียนโค้ด

โปรแกรมนี้เป็นภาพร่าง Arduino ที่ทำงานบน Edison ฉันได้อธิบายแต่ละบล็อคหลักของโค้ดด้านล่างแล้ว

โค้ดประกอบด้วยค่าคงที่ที่กำหนดไว้ล่วงหน้า การประกาศพิน และคำสั่งการพิมพ์แบบอนุกรมสองสามชุดที่ช่วยในการแก้ไขปัญหา

ทวีตล่าช้า

เนื่องจาก Twitter กรองทวีตที่มีเนื้อหาเหมือนกันและทวีตในช่วงเวลาสั้นๆ ระหว่างแต่ละทวีต จึงมีการตั้งค่าการหน่วงเวลามาตรฐาน 3 ชั่วโมง (10800000 มิลลิวินาที) ระหว่างทวีตแต่ละรายการ

ทวีตข้อความ();

ล่าช้า (10800000);

พิมพ์หล่อ

การอ่านจำนวนมากที่เราได้รับจากเซ็นเซอร์อยู่ในประเภทข้อมูล 'int' หรือ 'float' แต่เนื่องจากเรากำลังทวีตค่าเหล่านี้ เราจึงต้องแปลงเป็นประเภทข้อมูล 'สตริง' สำหรับสิ่งนี้ เราใช้เทคนิคการหล่อแบบพิเศษ

ถ่าน * dtostrf (วาลคู่, ความกว้างของถ่านที่ลงนาม, ถ่านที่ไม่ได้ลงชื่อ, ถ่าน * sout) {

ถ่าน fmt[100]; sprintf(fmt, "%%%d.%df", ความกว้าง, ล่วงหน้า); sprintf(sout, fmt, วาล); ย้อนกลับ; }

โทเค็นทวิตเตอร์

โทเค็น Twitter ถูกสร้างขึ้นบนเว็บไซต์ของ NeoCat และควรวางลงในพื้นที่โทเค็นที่นี่

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

Twitter twitter(" ENTER TWITTER TOKEN ที่นี่ ");

ค่าเซ็นเซอร์ทวีต

ในการทวีตค่าเซ็นเซอร์ อันดับแรกเราจะรวมประเภทเซ็นเซอร์ไว้ด้วย ตัวอย่าง: "ความชื้น". ตามด้วยการประกาศอักขระและบรรทัดโค้ดที่จำเป็นสำหรับการพิมพ์แบบ ต่อไปเราจะเพิ่มคำสั่งสำหรับหน่วยวัด ตัวอย่าง: "%RH" เราสามารถเพิ่มค่าของเซ็นเซอร์อื่นๆ ได้ในลักษณะเดียวกัน

ความชื้น(); ลอยชื้น

//ข้อความ Twitter String stringMsg = "ความชื้น:"; ถ่าน tmp[10]; dtostrf(ชื้น, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

ตำแหน่งสถานีอากาศ & การติดแท็ก

ต่อไปเราจะแท็กตำแหน่ง (เมือง สถานที่ ฯลฯ) และแท็กอื่นๆ เช่น #iotweatherstn

stringMsg += " #Mumbai #Bandra #iotweatherstn ";

นาฬิกาเรียลไทม์ (RTC)

ตามที่อธิบายไว้ก่อนหน้านี้ TWIST ยังสามารถทวีตข้อมูลนาฬิกาแบบเรียลไทม์ได้อีกด้วย ด้านล่างนี้เป็นตัวอย่างของบล็อกพารามิเตอร์ 'วัน' ของโค้ดของ RTC ฟีเจอร์นาฬิกาตามเวลาจริงเป็นตัวเลือกในแพลตฟอร์ม TWIST เนื่องจากโมดูลแยกจากกัน ดังนั้นจึงมีสาขาแยกต่างหากที่สร้างขึ้นในที่เก็บ TWIST สำหรับรหัสและแผนผังของสาขานาฬิกาแบบเรียลไทม์

TwistDateTime(); DateTime ตอนนี้ = rtc.now(); int twistday, twistmonth, twistyear, twisthour, บิดมิน, twistsec; สตริง stringMsg = ""; ถ่าน ds1307day[10]; dtostrf(วันบิด 1, 0ds1307day); stringMsg += ds1307day; stringMsg += "/";

จำกัดอักขระ 140 ตัว

บล็อกของรหัสนี้ครอบคลุมอาร์เรย์สตริงเป็นอาร์เรย์อักขระ 140 ตัวพร้อมที่จะทวีต

ผงชูรสอักขระ[140];

stringMsg.toCharArray(msg, 140);

การแก้ไขปัญหาข้อความและการเชื่อมต่อ

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

//ทวีตไอ้เหี้ยนั่น!

if (twitter.post (msg)) { สถานะ int = twitter.wait (); ถ้า (สถานะ == 200) { Serial.println ("ตกลง."); Serial.println("ข้อความที่ทวีต"); } อื่น { //การทดสอบการเชื่อมต่อ Serial.print ("ล้มเหลว: รหัส"); Serial.println("ข้อความไม่ถูกทวีต"); Serial.println (สถานะ); } } อื่น { Serial.println ("การเชื่อมต่อล้มเหลว"); Serial.println("ข้อความไม่ถูกทวีต"); }

โค้ดอื่นๆ ทั้งหมดแปลงการอ่านแบบอนาล็อกหรือดิจิตอลจากเซ็นเซอร์ให้เป็นข้อมูลที่ใช้งานได้

สามารถดาวน์โหลดรหัสได้จากที่นี่หรือจากที่เก็บหลัก:

Weather Station.ino

ขั้นตอนที่ 8: มีส่วนร่วมในที่เก็บเซ็นเซอร์

คุณเป็นโปรแกรมเมอร์ วิศวกร หรือนักออกแบบที่มีไอเดียดีๆ สำหรับฟีเจอร์ใหม่ใน TWIST หรือไม่? บางทีคุณอาจมีความคิดที่ดีในการแก้ไขข้อผิดพลาด? อย่าลังเลที่จะคว้าโค้ด แผนผัง & ไฟล์ CAD ของเราจาก Github และปรับแต่งมัน

TWIST GitHub

การเชิญ Intel® IoT
การเชิญ Intel® IoT
การเชิญ Intel® IoT
การเชิญ Intel® IoT

รางวัลที่สองใน Intel® IoT Invitational

แนะนำ: