ก่อนหน้านี้ ฉันคิดค้นวงล้อแห่งการสร้างอุปกรณ์ Arduino สำหรับการตรวจสอบขึ้นมาใหม่
มันน่าสนใจ.
/* -- โครงการใหม่ -- ซอร์สโค้ดของอินเทอร์เฟซผู้ใช้แบบกราฟิกนี้ถูกสร้างขึ้นโดยอัตโนมัติโดยโปรแกรมแก้ไข RemoteXY หากต้องการรวบรวมโค้ดนี้โดยใช้ไลบรารี RemoteXY 2.3.5 หรือเวอร์ชันที่ใหม่กว่าให้ดาวน์โหลดโดยลิงก์ http://remotexy.com/en/library/ หากต้องการเชื่อมต่อโดยใช้แอปมือถือ RemoteXY ด้วยลิงก์ http://remotexy.com/en/download/ - สำหรับ ANDROID 4.3.1 หรือเวอร์ชันที่ใหม่กว่า; - สำหรับ iOS 1.3.5 หรือเวอร์ชันที่ใหม่กว่า ซอร์สโค้ดนี้เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายต่อและ/หรือแก้ไขได้ภายใต้เงื่อนไขของ GNU Lesser General Public License ตามที่เผยแพร่โดย Free Software Foundation เวอร์ชัน 2.1 ของใบอนุญาต หรือ (ตามตัวเลือกของคุณ) เวอร์ชันที่ใหม่กว่า *////////////////////////////////////////////// // RemoteXY รวมห้องสมุด //////////////////////////////////////////// // การกำหนดโหมดการเชื่อมต่อและรวมถึงไลบรารี RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD #include
เราใช้บอร์ดแซนด์วิช
ทุกอย่างทำงานได้โดยไม่คาดคิด:
หนึ่งชั่วโมงผ่านไปจากการค้นพบบริการคลาวด์ RemoteXY ไปยังรูปภาพด้านบน
คุณสมบัติการทำงานกับ RemoteXY
1. ทุกอย่างง่ายมาก ในแบบของตัวเองนี่เป็นสิ่งที่ดี ตัวอย่างเช่น ด้วย Blynk และ Cayenne ไม่น่าเป็นไปได้ที่คุณจะสามารถเข้าใจตั้งแต่ต้นได้ภายในหนึ่งชั่วโมง หากต้องการใช้เช่น "KaScada Cloud" คุณต้องซื้ออุปกรณ์พิเศษ
2. ไม่มีการประมวลผลและจัดเก็บข้อมูลบนฝั่งเซิร์ฟเวอร์: ไม่มีการเชื่อมต่อกับบอร์ด - แอปพลิเคชันแสดงข้อความ "ไม่มีการเชื่อมต่อ"
3. ฟรีองค์ประกอบการออกแบบเพียง 5 องค์ประกอบ แต่แอปพลิเคชัน PRO ใช้เวลาไม่เกินครึ่งวัน
4. สามารถสื่อสารกับบอร์ดได้จากแอพพลิเคชั่นเดียวทั้งผ่านคลาวด์เซิร์ฟเวอร์และโดยตรง จริงอยู่ไม่ใช่ในเวลาเดียวกันแน่นอน และการเปลี่ยนอย่างรวดเร็วเป็นไปไม่ได้ - คุณต้องเปลี่ยนภาพร่างบนกระดาน นอกจากนี้ยังสามารถสื่อสารระหว่างสมาร์ทโฟนและบอร์ดผ่าน Bluetooth และ USB ได้อีกด้วย
ESPers - เข้าร่วมอันดับผู้กระพริบตา!
วันนี้เราจะตั้งค่าการควบคุม ESP8266 จากสมาร์ทโฟนของคุณ (iOS หรือ Android) ภายใน 5 นาทีโดยใช้บริการคลาวด์ใหม่ Blink วิดีโอและรายละเอียดภายใต้การตัด
ติดตั้งแอป Blynk บนสมาร์ทโฟนของคุณ
ลงทะเบียนในแอปพลิเคชันและสร้างโครงการใหม่
ป้อนชื่อโครงการ เป็นต้น อีพีเอส8266- ในสนาม รุ่นฮาร์ดแวร์เลือก อีพีเอส8266- (หวังว่าคุณจะสังเกตเห็นรายการฮาร์ดแวร์ที่รองรับที่น่าประทับใจ) สร้างโดยอัตโนมัติ โทเค็นการรับรองความถูกต้องส่งไปที่กล่องจดหมายของคุณ
หลังจากกดปุ่มแล้ว สร้างคุณจะสามารถเข้าถึงฟิลด์ว่างสำหรับการออกแบบ UI ของแผงควบคุม ESP8266 ของคุณ
คลิกที่เครื่องหมายบวกที่ด้านบนขวา - แถบเครื่องมือจะปรากฏขึ้น กล่องวิดเจ็ตเพื่อเพิ่มวิดเจ็ตลงในแดชบอร์ดของคุณ เป็นที่น่าสังเกตว่ารายการวิดเจ็ตจะยังคงเติบโตต่อไป
สำหรับการทดสอบ ให้เลือกประเภทวิดเจ็ต ปุ่ม— วิดเจ็ตนี้จะถูกเพิ่มลงในแผงของคุณทันที แก้ไขได้ด้วยสัมผัสเดียว คุณไม่จำเป็นต้องกรอกชื่อ เพียงทางด้านขวาคุณสามารถเลือกสีของตัวบ่งชี้ในช่องได้ ขาออกเลือกทางด้านขวา ดิจิทัลและทางด้านซ้ายคือพินฟรี จีพีโอ- ด้านล่างให้สลับประเภทปุ่มเป็น สวิตช์.
ถัดไป ติดตั้งไลบรารี Blynk ใน Arduino IDE คำแนะนำอย่างเป็นทางการจะช่วยคุณในเรื่องนี้ คุณยังสามารถใช้ไลบรารีเวอร์ชันล่าสุดได้โดยตรงจากพื้นที่เก็บข้อมูล และติดตั้งด้วยตนเอง จากนั้นเลือกตัวอย่าง ESP8266_แบบสแตนด์อโลนและเขียนลงไป โทเค็นการรับรองความถูกต้องซึ่งเราได้รับทางไปรษณีย์ SSID และรหัสผ่านเครือข่าย WiFi ของคุณ รวบรวมและอัปโหลดภาพร่างไปยัง ESP8266
ฉันคิดมากเกี่ยวกับการหาวิธีแก้ปัญหาราคาไม่แพงในการเชื่อมต่อและควบคุม Arduino ผ่านอินเทอร์เน็ตโดยไม่ต้องใช้ตัวป้องกันอีเทอร์เน็ตหรือแม้แต่โมดูล WI-FI ใดๆ หลังจากการค้นคว้า ฉันพบว่าวิธีเดียวที่จะสื่อสารกับไมโครคอนโทรลเลอร์ Arduino ได้คือผ่านทางพอร์ตอนุกรม ดังนั้นฉันจึงสร้างแอปพลิเคชันหน้าต่าง C# ง่ายๆ เป็น HUB เพื่อทำงานร่วมกับพอร์ตอนุกรมเพื่อส่งและรับข้อมูลไปยังบอร์ด
แอปพลิเคชัน HUB นี้เชื่อมต่อกับอินเทอร์เน็ตผ่านคอมพิวเตอร์ส่วนบุคคลของคุณอยู่แล้ว และช่วยส่งและรับข้อมูลระหว่างไมโครคอนโทรลเลอร์และฐานข้อมูลคลาวด์ นอกเหนือจากการจัดเก็บข้อมูลในฐานข้อมูล MySQL ออนไลน์
ก่อนอื่น ฉันต้องเริ่มต้นด้วยตัวอย่างเล็กๆ น้อยๆ ที่ช่วยให้ฉันสามารถทดสอบการประยุกต์ใช้แนวคิดนี้ได้ ในตัวอย่างนี้ ฉันไม่ได้เชื่อมต่อเซ็นเซอร์ใดๆ ฉันใช้เพียง LED ในตัวบน Arduino เท่านั้น เพื่อที่ฉันจะสามารถเปิดและปิด LED บนพิน 13 โดยการส่งตัวอักษร "I" และ "O" ไปยังพอร์ตอนุกรม .
อินพุทอินท์; //จะเก็บอักขระขาเข้าจากพอร์ตอนุกรม int นำ = 13; // Pin 13 // ฟังก์ชั่นการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดปุ่มรีเซ็ตหรือเปิดสถานะพลังงาน int การตั้งค่าเป็นโมฆะ () ( // เริ่มต้นพินดิจิทัล LED_BUILTIN เป็นเอาต์พุต Serial.begin (9600); pinMode (led, OUTPUT); // ตั้งค่าพิน 13 เป็นเอาต์พุตดิจิทัล Serial.flush (); ) // ฟังก์ชันลูปทำงานอีกครั้งและ อีกครั้งเสมอ void loop() ( // String input = ""; // while (Serial.available() > 0) // ( // input += (char) Serial.read(); // ล่าช้า(5 ) ; // ) state = digitalRead(led); if (Serial.available()) ( input = Serial.read(); if (input == "I") ( //digitalWrite(led, !digitalRead() ) ; digitalWrite (led, สูง); Serial.println (1); ล่าช้า (1,000); ) อื่น ๆ ถ้า (input == "T") (analogRead (led); Serial.println (0); ; ) ) )
ขั้นตอนที่ 2: สร้างฐานข้อมูลออนไลน์
ในการจัดเก็บข้อมูล เราต้องใช้ "ตัวกลางออนไลน์" ซึ่งจะทำหน้าที่เป็นสะพานเชื่อมระหว่างบอร์ด Arduino และแอปพลิเคชัน HUB ของเรา ดังนั้นเราจึงเลือกโฮสติ้งฐานข้อมูลฟรี ซึ่งจะทำงานเพื่อบันทึกข้อมูลที่ได้รับจากบอร์ด Arduino และคำสั่งที่ส่งไป
ตัวเลือกที่ง่ายที่สุดในกรณีของเราคือฐานข้อมูล MySQL เพราะ... ฟรีและมักใช้กันอย่างแพร่หลาย ในไฟล์เก็บถาวรที่แนบมาด้านล่าง คุณจะพบว่ามีเพียงสองตารางเท่านั้น ก่อนอื่นคุณต้องบันทึกคำสั่งจากนั้นส่งไปที่บอร์ดและตารางที่สองคือการรับเอาต์พุตของบอร์ด Arduino และกู้คืนเพื่อใช้ในภายหลัง
คุณสามารถเลือก freemysqlhosting.net เป็นเว็บไซต์โฮสติ้งของคุณได้ สามารถดู PHP MyAdmin ออนไลน์ได้ที่ลิงค์ - phpmyadmin.co ข้อมูลเพิ่มเติมสามารถพบได้ใน phpmyadmin.net
ขั้นตอนที่ 3 สร้างฮับ C#
ในขั้นตอนนี้ เราจะสร้างฮับซึ่งถือได้ว่าเป็นตัวกรองอินพุตบนพีซี เพื่อส่งข้อมูลที่ส่งผ่านฮับนั้นก่อน จากนั้นจึงส่งไปยังบอร์ด Arduino ผ่านทางพอร์ตอนุกรม และในทางกลับกัน
อินเทอร์เฟซของฮับนี้เรียบง่ายมาก โดยมีเพียงสองช่องข้อความที่แสดงสถานะของ "ธุรกรรม" แต่ละรายการที่ส่งข้อมูลฮับ (การส่งและรับ)
บันทึก. ฮับต้องทำงานอยู่เสมอเมื่อคุณต้องการทำงานกับบอร์ด Arduino ผ่านทางอินเทอร์เน็ต
ขั้นตอนที่ 4 สร้างเว็บอินเตอร์เฟส
ในที่สุดเราก็มาถึงส่วนที่เจ๋งที่สุดของบทเรียนแล้ว
ฉันได้สร้างเว็บแอปพลิเคชันโดยใช้เทคโนโลยี Asp.net C# พร้อมอินเทอร์เฟซแบบตอบสนองที่สามารถทำงานบนอุปกรณ์ใดก็ได้ เว็บแอปพลิเคชันนี้เกี่ยวข้องกับฐานข้อมูลออนไลน์เท่านั้น และไม่รู้ว่ามีบอร์ดอยู่อีกด้านหนึ่ง
ด้วยอินเทอร์เฟซนี้ คุณสามารถจัดหมวดหมู่ส่วนประกอบอิเล็กทรอนิกส์ของคุณที่เชื่อมต่อกับ Arduino ได้ ด้วยการคลิก เปิดและปิด คุณเพียงแค่จัดเก็บข้อมูลออนไลน์
ตัวอย่าง
ด้วยการกดปุ่มสีเขียว (ON) ในส่วน "ห้องนั่งเล่น" (ห้องโถง - ด้านบนในภาพ) คุณจะส่งคำแนะนำเพื่อเปิดไฟในห้องนั่งเล่นในบ้านของคุณผ่านอินเทอร์เน็ต ดังนั้นฮับซึ่งอาจอยู่อีกซีกโลกหนึ่ง จะได้รับคำสั่งและประมวลผลโดยใช้วงจรอิเล็กทรอนิกส์ที่ใช้ Arduino ในบ้านของคุณ
โมฆะที่ได้รับการป้องกัน BtnHallOn_Click (ผู้ส่งวัตถุ EventArgs e) ( AddTempOrders ("I"); // ส่งจดหมาย "I" ไปที่ Arduino เพื่อเปิดไฟ Hall)
ขั้นตอนที่ 5 ดาวน์โหลดโครงการ
ถึงเวลาลองด้วยตัวเองและสร้างโครงการของคุณเอง
ฉันหวังว่าคุณจะพบว่าทั้งหมดนี้มีประโยชน์ ฉันขอให้คุณมีโครงการที่ยอดเยี่ยม!
เมื่อปีที่แล้ว Microsoft ได้ประกาศแบ็กเอนด์ระบบคลาวด์สำหรับจัดการอุปกรณ์อัจฉริยะและอุปกรณ์อิเล็กทรอนิกส์ครบวงจร Azure IoT Hub ช่วยให้คุณสามารถตั้งค่าการสื่อสารระหว่างอุปกรณ์ด้วยการเขียนโปรแกรมขั้นต่ำ และรวมเข้ากับโครงการที่ใช้ Azure ของคุณ หากต้องการดูวิธีการทำงาน เราจะดูงานง่ายๆ ก็คือการส่งการอ่านจากเซ็นเซอร์ที่เชื่อมต่อกับคอนโทรลเลอร์ Arduino ไปยังคลาวด์
ดังนั้นเราจึงมีอุปกรณ์ง่ายๆ ประกอบด้วยตัวควบคุม เขียงหั่นขนมขนาดเล็ก โฟโตรีซีสเตอร์ (เซ็นเซอร์วัดแสง) และตัวต้านทานปรับความเสถียร คอนโทรลเลอร์เป็น Genuino MKR1000 พร้อม Wi-Fi ในตัว หากคุณต้องการแบบเดียวกัน ราคา 35 ดอลลาร์ บอร์ดนี้ใช้พลังงานจากไมโคร USB
โดยหลักการแล้วสามารถติดตั้งเซ็นเซอร์ใดก็ได้ - ซึ่งจะไม่ส่งผลกระทบต่อแผนการในอนาคตของเรา แต่อย่างใด รูปภาพด้านล่างแสดงแผนภาพที่อุปกรณ์ของเราจะสื่อสารกับคลาวด์
อุปกรณ์ส่งข้อมูลไปยัง IoT Hub โดยที่หลังจากผ่านบริการ Stream Analytics แล้ว อุปกรณ์จะเข้าสู่ฐานข้อมูลและประมวลผลโดยใช้ Power BI เราจะจัดการกับสิ่งเหล่านี้ทั้งหมดในภายหลัง แต่สำหรับตอนนี้ มาเริ่มด้วยพื้นฐานกันดีกว่า
ข้อมูล
ในตอนท้ายของบทความมีแหล่งที่มาของโครงการที่เป็นผล อย่าลืมตรวจสอบพวกเขาหากคุณวางแผนที่จะทำอะไรที่คล้ายกัน
IoT Hub ได้รับการแปลเป็นภาษารัสเซียอย่างเป็นทางการว่า "Internet of Things Center" โดยสามารถรับข้อมูลจากอุปกรณ์และส่งข้อความหรือคำสั่งไปยังอุปกรณ์เหล่านั้นได้
นอกจาก IoT Hub แล้ว บริการอื่นที่เรียกว่า Event Hub ยังสามารถโต้ตอบกับอุปกรณ์ต่างๆ ได้ มีปริมาณงานมากกว่า แต่ส่งข้อความไปในทิศทางเดียวเท่านั้น - จากอุปกรณ์ไปยังคลาวด์ IoT Hub รองรับโปรโตคอล เช่น MQTT, MQTT บน WebSocket, AMQP, AMQP บน WebSocket และ HTTP Event Hub รองรับ AMQP, AMQP ผ่าน WebSocket และ HTTP คุณสามารถอ่านเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างฮับและวิธีการใช้งานร่วมกันได้จากเว็บไซต์ Microsoft เราจะศึกษา IoT Hub (น่าสนใจกว่า)
การเขียนโปรแกรมไมโครคอนโทรลเลอร์และไมโครคอมพิวเตอร์ต่างๆ เช่น Arduino, Raspberry Pi และอื่นๆ เป็นหนึ่งในกิจกรรมที่น่าสนใจและเกี่ยวข้องที่สุด การออกแบบอุปกรณ์บนแพลตฟอร์มเหล่านี้เป็นมากกว่างานอดิเรกของพวกกี๊กและโปรแกรมเมอร์มืออาชีพ บอร์ดเหล่านี้ใช้เพื่อสร้างหุ่นยนต์ เครื่องมือกล ควอดคอปเตอร์ อุปกรณ์ IoT (บ้านอัจฉริยะ) เซิร์ฟเวอร์ และแม้แต่อินเทอร์เฟซเสียง Hi-Fi
น่าเสียดายที่ตลาดไมโครคอนโทรลเลอร์มีการแบ่งส่วนอย่างมาก การเขียนโปรแกรมของพวกเขาดำเนินการผ่านสภาพแวดล้อมและอินเทอร์เฟซต่างๆ โปรเจ็กต์ชื่อ Blynk ถูกเรียกมาเพื่อกอบกู้สถานการณ์
Blynk เป็นบริการบนคลาวด์สำหรับการสร้างแผงควบคุมแบบกราฟิก และเหมาะสำหรับไมโครคอมพิวเตอร์และไมโครคอนโทรลเลอร์หลากหลายประเภท เมื่อก่อนหน้านี้คุณต้องเขียนอินเทอร์เฟซ I/O เต็มรูปแบบหรือซื้อโมดูลเพิ่มเติมเพื่อรวบรวมข้อมูลจากเซ็นเซอร์ ตอนนี้คุณสามารถทำงานใน Blynk ได้ภายในเวลาเพียงห้านาที
ในการสร้างโปรเจ็กต์ของคุณเองที่ควบคุมผ่าน Blynk คุณจำเป็นต้องมีเพียงเล็กน้อย: ติดตั้งแอปพลิเคชัน (มีเวอร์ชันสำหรับ iOS และ Android) หรือใช้เว็บฟอร์ม ที่นี่คุณจะต้องลงทะเบียนในขั้นตอนเดียว - ป้อนอีเมลและรหัสผ่านของคุณ จำเป็นต้องลงทะเบียนเนื่องจาก Blynk เป็นโซลูชันคลาวด์ และหากไม่มีผู้ใช้ก็สามารถควบคุมฮาร์ดแวร์ได้
ผู้ที่สนใจสามารถติดตั้งเซิร์ฟเวอร์ภายในเครื่องได้ ในกรณีนี้ ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต
แอปพลิเคชันจะต้องใช้ทักษะบางอย่างในการใช้งาน ขั้นแรก คุณต้องจับคู่คอมพิวเตอร์หรือสมาร์ทโฟนของคุณกับบอร์ดที่ตั้งโปรแกรมได้ โปรแกรมรองรับการเชื่อมต่อกับบอร์ดผ่านอินเทอร์เฟซที่หลากหลาย:
- ยูเอสบี (อนุกรม),
- Adafruit CC3000 WiFi,
- Arduino WiFi Shield อย่างเป็นทางการ
- อีเธอร์เน็ตชิลด์อย่างเป็นทางการ (W5100)
- ENC28J60,
- ESP8266 (โมเด็ม WiFi)
- SeeedStudio อีเธอร์เน็ตชิลด์ V2.0 (W5200),
- RN-XV WiFly,
- อีพีเอส8266.
นอกจากการตั้งค่าการเชื่อมต่อแล้ว คุณจะต้องเชื่อมต่อโมดูลของอุปกรณ์ในอนาคตอย่างถูกต้องเท่านั้น หลังจากนั้นในรูปแบบการทำงานของแอปพลิเคชันคุณจะต้องเพิ่มโมดูลที่มีอยู่ (วิดเจ็ต) กำหนดค่าที่อยู่พินที่จำเป็นและระบุพารามิเตอร์ที่ต้องการ (หากจำเป็นคุณสามารถเขียนโค้ดของคุณเองได้) อย่างไรก็ตาม การลากและวางใช้เพื่อสร้างวิดเจ็ตหรือโปรแกรม มีอุปกรณ์ควบคุมจำลองจำนวนมากสำหรับการควบคุม - สวิตช์, แถบเลื่อน, จอแสดงผล ซึ่งแต่ละอุปกรณ์คุณสามารถเขียนตรรกะของคุณเองได้ มีรูปแบบแยกต่างหากสำหรับการแสดงและจัดระเบียบข้อมูลจากเซ็นเซอร์ที่จำเป็นในรูปแบบของกราฟ
ดังนั้นแพลตฟอร์มนี้จึงเหมาะสำหรับทั้งผู้เริ่มต้นและผู้ใช้ขั้นสูงที่ไม่ต้องการเสียเวลาในการเขียนแอปพลิเคชันเพื่อการจัดการโครงการ ตั้งแต่การอ่านข้อมูลจากสถานีตรวจอากาศและการควบคุมบ้านอัจฉริยะไปจนถึงการควบคุมหุ่นยนต์
ข้อมูลทั้งหมดที่จำเป็นในการเริ่มต้นจะถูกโพสต์บนเว็บไซต์อย่างเป็นทางการ Blynk เป็น ดังนั้นทุกคนจึงสามารถมีส่วนร่วมในการสร้างคุณสมบัติใหม่ๆ ได้ ในขณะนี้การใช้บริการนั้นฟรีโดยสมบูรณ์ ในอนาคตสถานการณ์จะเปลี่ยนไปบ้าง - สาเหตุหลักมาจากการสร้างรายได้จากฟังก์ชั่นใหม่ ดังนั้นจึงเป็นที่ทราบกันดีอยู่แล้วว่าการซื้อการเข้าถึงอินเทอร์เฟซ GPIO นั้นจะเป็นการซื้อในแอป
ปัจจุบัน Blynk ทำงานร่วมกับบอร์ดต่อไปนี้:
- Arduino: Uno, นาโน, มินิ, โปรมินิ, โปรไมโคร, เมกะ, YÚN (บริดจ์), เนื่องจาก;
- ราสเบอร์รี่ปี่;
- อนุภาค (เช่น Spark Core);
- อีเอสพี8266;
- TinyDuino (CC3000);
- ไฟป่าชั่วร้าย (CC3000)