Weather Station API ด้วยบอร์ด Maker Pi Pico Mini แสดงผลกับจอ SparkFun SerLCD

Maker Pi Pico Mini ของ Cytron มาพร้อมกับหน่วยประมวลผลบอร์ด Raspberry Pi Pico / Raspberry Pi Pico W มีความสามารถเหมือนกับบอร์ดรุ่นพี่ Maker Pi Pico อย่างไฟ LED แสดงสถานะการทำงานของ GPIO, WS2812B Neopixel RGB LED, passive piezo buzzer, ปุ่มกดที่สามารถโปรแกรมการทำงานได้และปุ่ม reset ตัวบอร์ด

ฉันต้องขอขอบคุณ บริษัท Cytron ที่ส่งบอร์ด Maker Pi Pico Mini ที่มาพร้อมจอ LCD RGB และ แบตเตอรี่ Lithium Polymer 3.7V ในบทความนี้เราแสดงสภาพภูมิอากาศจากทั่วโลกกับบอร์ด Maker Pi Pico โดยเราจะเขียนด้วยภาษา C/C++ (Arduino IDE) ก่อนอื่นเราจะมาแนะนำอุปกรณ์กันก่อนนะครับ

บอร์ด Maker Pi Pico Mini

Raspberry Pi Pico Mini เป็นเวอร์ชั่นใหม่ที่สามารถเชื่อมต่อเครือข่ายไร้สายได้ โดยมีการบัดกรีเพิ่มวงจรให้ใช้งานได้ง่ายมากขึ้น โดยมีไฟ RGB 1 ดวง มี Button Switch จำนวน 1 มี ลำโพ Buzzer จำนวน 1 ตัว และมี Maker Port (JST-SH-4 way connector) จำนวน 3 พอร์ต ติดตั้งอยู่บนตัวบอร์ด Maker Pi Pico Mini โดยตัว Maker Port รองรับการใช้งานร่วมกับโมดูล Sparkfun’s Qwiic และโมดูล Adafruit’s STEMMA QT โดยทั้ง Qwiic และ STEMMA QT มีการใช้งานรูปแบบการสื่อสารแบบ I2C ซึ่งสามารถทำการเชื่อมต่อร่วมกับแบบ daisy-chained ได้ และนอกเหนือจากการสื่อสารรูปแบบ I2C แล้ว Maker Port ยังรองรับการสื่อสารรูปแบบ UART, Analog Input และ Digital Input/Output ด้วย

หน้าจอแสดงผล SparkFun SerLcd

SparkFun SerLCD เป็นจอ LCD ที่ใช้ชิฟประมวลผล ATmega328P ควบคุมหน้าจอทั้งหมด โดยเปิดการทำงานรอรับคำสั่งสื่อสารกับพอร์ตอนุกรมซึ่งสามารถใช้งานได้ง่าย มาพร้อม I2C Interface โดยมีขนาด 16 ตัวอักษร  2 แถว หน้าจอแบบ RGB สามารถเปลี่ยนสีได้ตามต้องการ  จอแสดงผลนี้สามารถสื่อสารได้ 3 วิธีคือ I2C, SPI, Qwiic

Qwiic สามารถเชื่อมต่อทั้งสายไฟและสายสื่อสาร I2C ได้เพียงชุดเดียว ซึ่งจะสะดวกมากๆถ้าใช้กับ Maker Port ของ Maker Pi Pico Mini

แบตเตอรี่

แบตเตอรี่ เป็นชนิด Lithium Polymer แรงดันไฟฟ้า 3.7 โวลล์ กระแสไฟฟ้า 1300 มิลลิแอมป์ เมื่อใช้กับบอร์ด Maker Pi Pico MINI สามารถเสียบกับช่อง JST. ได้เลยอีกทั้งยังสามารถชาร์จ แบตเตอรี่ได้ด้วยการเสียบสาย USB ที่บอร์ดที่แรงดันไฟฟ้า 5V ก็สามารถชาร์จแบตเตอรี่ได้โดยตรงทำให้ใช้งานได้ง่ายขึ้น

ติดตั้งบอร์ด Raspberry Pi Pico ใน Arduino IDE

ก่อนอื่นจะต้องติดตั้ง Arduino IDE ก่อนนะครับ ซึ่งจะไม่พูดถึงในบทความนี้นะครับ หลังจากที่ติดตั้ง Arduino IDE เรียบร้อยแล้ว

(Windows OS) เข้าไปที่ File >>> Preferences ตามภาพครับ

(Mac OS) เข้าไปที่ Arduino >>> Preferences ตามภาพครับ

ให้ใส่ลิ้ง URL ของการติดตั้ง Raspberry Pi Pico ลงไปในช่องสีแดงตามภาพครับ

ลิ้ง >>>> https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

จากนั้นให้เราเข้าไปที่ Tools >>> Board >>> Boards Manager ตามภาพครับ

จากนั้นจะมีหน้าต่าง Boards Manager ขึ้นมาให้ใส่คำว่า rp2040 ครับ จากนั้นให้กด Install ได้เลย เพียงเท่านี้ก็เป็นการติดตั้งเสร็จเรียบร้อยครับ

จากนั้นให้เราไปที่ Tools >>> Board >>>กดเลือก Raspberry Pi RP2040 Boards ให้เลือกบอร์ด Raspberry Pi Pico W ครับ

ส่วนให้การ Upload จะขออนุญาตข้ามไปนะครับ หลังจากเสียบสาย USB ให้เข้าไปเลือก Port ที่เชื่อมต่อกับ USB ก่อนนะครับ จากนั้นก็กดปุ่ม Upload ได้เลยครับ

ติดตั้ง Library SparkFun SerLCD ครับ

ก่อนอื่นเลยเราจะต้องติดตั้ง Library หรือชุดคำสั่งของหน้าจอ LCD กันก่อนนะครับ

โดยเข้าไปที่ Sketch >>> Include Library >>>กดเลือก Manage Libraries ตามภาพครับ

จากนั้นจะมีหน้าต่าง Library Manager ขึ้นมาให้เราพิมพ์ serlcd ใส่ในช่องตามภาพ และกดปุ่ม Install ได้เลยครับ

ต่อไปเราจะเพิ่ม Library ของ SparkFun SerLCD เข้ามาครับ

โดยไปที่  Sketch >>> Include Library >>>กดเลือก SparkFun SerLCD Arduino Library ครับ

เราจะเห็นได้ว่า Library SerLCD ได้ถูกเรียกพร้อมใช้งานในโค้ดของเราแล้ว

ทดสอบการเปลี่ยนสี Backlight และตัวอักษรของหน้าจอ SerLCD

การทดสอบจะเป็นการเปลี่ยนสี Backlight ไปพร้อมกับไฟ RGB (โดยสามารถเพิ่ม Library NeoPixel เหมือนกับตัวอย่างด้านบน) เปลี่ยนสีไปเรื่อยๆจำนวน 10 สี ทุกๆ 3 วินาที ครับ

โค้ดตัวอย่างการเปลี่ยนการเปลี่ยนสี Backlight และตัวอักษรของหน้าจอ SerLCD 


 

วิดีโอตัวอย่างการเปลี่ยนสี Backlight และตัวอักษรของหน้าจอ SerLCD 

 

ทำให้ Maker Raspberry Pi Pico Mini เชื่อมต่อ Internet ผ่าน WiFi และแสดงผลออกหน้าจอ SerLCD กันครับ

การเชื่อมต่อ WiFi ผมจะแสดงข้อความบอกสถานะหากยังไม่เชื่อมต่อ WiFi สถานะไฟ Backlight เป็นสีแดง พร้อมด้วยไฟ RGB วิ่งเป็น RainBow  และ เมื่อเชื่อมต่อสำเร็จแล้วให้แสดง IP Address และเปลี่ยนสถานะไฟ Backlight เป็นสีเขียว 

โค้ดตัวอย่างในการเชื่อมต่อ Internet ผ่าน WiFi แสดงผลผ่านจอ SerLCD ครับ


วิดีโอตัวอย่างการเชื่อมต่อ Internet ผ่าน WiFi

การรับค่าสภาพอากาศจาก openweathermap.org ด้วย HTTP GET

ในการทดลองนี้ เราจะใช้ HTTP GET เพื่อดึงข้อมูลสภาพอากาศผ่าน API ของ openweathermap.org ซึ่งเปิดให้ดึง API สภาพอากาศได้ฟรีแต่ก็จะมีการจำกัดจำนวน Request ไว้ ซึ่งสามารถอ่านเพิ่มเติมในหน้าเว็บไซต์ได้เลย แต่สำหรับแพ็คเกจฟรีนั้น ก็ถือว่าเพียงพอครับ

OpenWeatherMap เป็นเว็บให้ข้อมูลสภาพอากาศ ข้อมูลการพยากรณ์อากาศทั่วโลก ข้อมูลสภาพอากาศย้อนหลัง แผนที่อากาศ ฯลฯ การใช้ง่ายมากๆ เพียงแค่ใส่ชื่อเมืองและประเทศลงไปเท่านั้นก็ได้ข้อมูลสภาพอากาศมาแล้ว นอกจากจะให้ข้อมูลสภาพอากาศ

ขั้นตอนแรกเรามาสมัครสมาชิกกันก่อนครับ โดยกดไปที่ Sign In

จากนั้นกดไปที่ Create an Account ครับ

กรอกข้อมูล Username, Email, Password, และกดยินยอมต่างๆ ครับ

จากนั้นเข้าสู่ระบบที่เราได้ Register ไว้ครับ

หลังจากนั้นจะมีชื่อของเราเมื่อเข้าสู่ระบบเรียบร้อยแล้วให้คลิ๊กที่ชื่อของเรา และให้กดไปที่ My API keys ครับ

เราจะได้ Key API ของเราให้เรา Copy เก็บไว้ครับ

ต่อไปจะทดสอบการแสดงสภาพอากาศจาก openweathermap จาก Key API ที่เราได้มาใส่ในโค้ดครับ

ตัวอย่างแสดงสภาพอากาศโดยผมใส่เมืองคือ My_city = “BangKok”,  my_country_code = “TH”

ซึ่งสามารถเปลี่ยนได้จากเมืองใหญ่ๆทั่วโลกครับ เช่น หากจะให้แสดงสภาพอากาศของประเทศอังกฤษ เมือง London ก็ใส่ตรง My_city = “London” ,my_country_code = “GB” ครับ


วิดีโอการทำงานครับ

เพียงเท่านี้เราก็สามารถแสดงสภาพอากาศได้จากทั่วโลกด้วยบอร์ด Maker Pi Pico Mini ใช้งานร่วมกับจอ SerLCD จาก SparkFun พร้อมทั้งยังสามารถใช้ไฟเลี้ยงจากแบตเตอรี่ได้อีกด้วย สามารถพกพาไปได้ทุกที่ขอเพียงมีแค่สัญญาณ Internet ก็พอ

บอร์ด Maker Pi Pico Mini ที่มาพร้อมจอ LCD RGB และ แบตเตอรี่ Lithium Polymer 3.7V  มีจำหน่ายแล้วที่ร้านค้าออนไลน์ Cytron ในราคา 420 – 520 บาทขึ้นอยูู่กับตัวเลือก และคุณยังหาข้อมูลเพิ่มเติมได้ที่นั้น

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

โฆษณา
โฆษณา