วันอาทิตย์ที่ 22 สิงหาคม พ.ศ. 2564

iot framework


บันทึกโครงการพัฒนา iot framework

IDE          Arduino ide   ESP8266 ARDUINO LIBRARY

HW          Node MCU

การพัฒนา

22/8/21  

ติดตั้ง Arduino IDE

ติดตั้ง Board Library    " esp8266 by ESP8266 Community version 3.0.2"    

Boards Manager URLs = https://arduino.esp8266.com/stable/package_esp8266com_index.json



    ข้อมูลเพิ่มเติม GitHub - esp8266/Arduino: ESP8266 core for Arduino

ติดตั้ง Libarry ด้วย zip file

ESPAsyncTCP   

จาก URL GitHub - me-no-dev/ESPAsyncTCP: Async TCP Library for ESP8266

ESPAsyncWebServer 

จาก URL GitHub - me-no-dev/ESPAsyncWebServer: Async Web Server for ESP8266 and ESP32


ติดตั้ง AsyncElegantOTA ด้วย Library Manager


ข้อมูลเพิ่มเติม GitHub - ayushsharma82/AsyncElegantOTA: Perform OTAs for ESP8266 / ESP32 Elegantly! Uses AsyncWebServer

เขียน ไลบรารี myiot.h

function  void web_begin(AsyncWebServer *server)

ฟังก์ชันเว็บเซิร์เวอร์ ทำงานดังนี้

    1. แสดงเว็บเพจ 

        1.1.  หน้าโฮมเพจ บรรจุเมนูลิงค์ไปยังหน้าเว็บ ตั้งค่าการทำงาน 

       1.2.  หน้าเว็บตั้งค่าWiFi


  1.3. หน้าเว็บตั้งค่า IOT

1.4 หน้าเว็บตั้งค่าขาสัญาณ


1.5 หน้าเว็บระบบ OTA



2. ดักจับพรามิเตอร์ที่มากับ URL ในการร้องขอใช้เว็บสูงสุด 10 พารามีเตอร์  โดยพารามิเตอร์ที่ส่งเข้ามาจะถูกแยกจาก URL ไปจัดเก็บในตัวแปรโกบอล ของโปรแกรมดังนี้

    String parameter เก็บ พารามีเตอร์ทั้งหมดในรูปแบบ  json 

    int paramsNr เก็บจำนวนพารามีเตอร์ที่ผู้ใช้ส่งเข้ามามา

    String pname[10]  เก็บชื่อพารามีเตอร์ ตามลำดับ

     String pvalue[10] เก็บข้อมูลพารามีเตอร์ ตามลำดับ


function bool web_handle()

ฟังก์ชันตรวจแจ้งการร้องขอหน้าเว็บในวัฎจักร Loop ในรอบที่ผ่านมา  ฟังกชันคืนค่ากลับหลังจากถูกเรียกเป็นบลูลีน 

true มีการร้องของหน้าเว็บ และตัวแปรโกบอลเก็บค่าพารามิเตอร์ 

false ไม่มีการร้องขอหน้าเว็บ และตัวแปรโกบอลเคลียร์ค่า เป็นค่าว่าง


23 / 08 / 2021

ติดตั้งไลบรารี LiquidCrystal_I2C จากไลบรารี เมเนเจอร์




เขียนฟังก์ชัน void setup  ตั้งค่า     wifi mode  เป็น WIFI_AP_STA  เชื่อมต่อเราเตอร์และแสดงค่า Local IP     ที่จอ   LCD  2004

29/08/2021 

- ติดตั้งไลบรารี RTClib จากไลบรารีเมเนเจอร์  รองรับ DS1307
- ทดสอบฮาร์ดแวร์ MyIOT  FW V0.1  

                        MCU                                        NodeMCU V 3
                        I2C         LCD                          LCD   2004                Address 0x27 
                        I2C         RTC                          TinyRTC                      Address  0x68
                        I2C         EEPROM                  AT24C32                     Address  0x50
                        Temp     Sensor1                      DS18B20                     Pin  D3       
                        Temp     Sensor2                      DHT 22                        Data Pin  D4,    GND Pin  D5 
                        Plug       Sensor                        Digital                          D6
                        Batt        Level                         Analog                          A0 
                        Power     Supply                       j5019 boost charger
                        Battery                                     18650
         

30/08/2021

- ติดตั้งไลบรารี NTPClient แบบเพิ่ม Zipfile จากเว็บ  GitHub - taranais/NTPClient: Connect to a NTP server  ถ้าติดตั้งจาก NTPClient ไลบรารีเมเนเจอร์  จะไม่รองรับคลาส  getFormattedDate() ยุ่งยากต่อการเขียนโปรแกรม
                 
 

วันพฤหัสบดีที่ 17 มิถุนายน พ.ศ. 2564

การเขียนโปรแกรมคอมพิวเตอร์ เรื่องตัวแปรและนิพจน์

 ลิงค์ เนื้อหา  ตัวแปรและประเภทข้อมูลในภาษา C - MarcusCode


คำสั่ง  ดูเว็บความรู้เรื่อง ตัวแปรและประเภทข้อมูลในภาษา C - MarcusCode

และปฏิบัติงาน

1. จดความรู้จากเว็บลงสมุดจดงาน

2. ทดลองคีย์โปรแกรม ต่อไปนี้  

โปรแกรมที่ 1
#include <stdio.h>

int main()
{
    int a = 5;
    int b;
    b = 10;
    int c = a + b;
    printf("Value of c is %d", c);
    return 0;
}
โปรแกรมที่ 2
#include <stdio.h>

int main()
{
    float PI = 3.14;
    int r;
    scanf("Enter circle radius %d", &r);
    double result = 2 * PI * r;
    printf("Area is %f", result );
    return 0;
}

วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2563

ใบงานที่ 1 ภาคเรียนที่ 1 ปี 2563

1 กค 63
งานที่ 1 เขียนคำอธิบายรายวิชา
งานที่ 2 ติดตั้งแอปพลิเคชั่น เขียนภาษา C บนสมาร์ทโฟน
1. เข้าแอป Play Store
2 .ค้นหาแอปฯที่ต้องการ ด้วยคำว่า "เขียน C"
3. เลือกติดตั้งแอปฯ Coding C

4. เปิดโปรแกรม และแก้ไข Code "Hello world"  เป็น "Hello world by  "ชื่อของนักเรียน"
5. สั่ง RUN
6. แคปเจอร์  ภาพหน้าจอการ RUN
7. ส่งงาน ภาพหน้าจอการ RUN  ที่ Comment ของบริการ Notes ในกลุ่ม Line 


วันอาทิตย์ที่ 9 มิถุนายน พ.ศ. 2562

IOT Thermometer


ระบบรายงานอุณหภูมิห้องยาและเวชภัณฑ์  

ด้วยเครื่องวัดอุณหภูมิ และความชื้นแบบ IOT

สถานที่ โรงพยาบาลส่งเสริมสุขภาพตำบล บ้านน้ำพรม ตำบลวังนกแอ่น อำเภอวังทอง จังหวัดพิษณุโลก

อุณหภูมห้องยา


ความชื้นห้องยา



อุณหภูมตู้วัคซีน (ช่องแช่น้ำแข็ง)


อุณหภูมตู้วัคซีน (ช่องแช่เย็น)

วันพุธที่ 22 พฤษภาคม พ.ศ. 2562

iot

IOT ??? IoT คือการเชื่อมต่ออุปกรณ์หรือสิ่งต่าง ๆ ไปยังอินเทอร์เน็ตแล้ววิเคราะห์ข้อมูลที่รวบรวมจากอุปกรณ์เหล่านี้เพื่อดึงค่าที่เพิ่มขึ้นมา ในบทความนี้จะแสดงวิธีที่จะช่วยให้พัฒนาต้นแบบ IoT ได้เร็วและง่ายกว่าวิธีการทั่วไป โดยใช้ฐานข้อมูลบนอินเทอร์เน็ตของ google ที่ชื่อว่า Firebase ระบบ IOT ก่อนที่จะมีฐานข้อมูล Firebase เรียลไทม์
โครงการ IoT ส่วนใหญ่ต้องการสร้างระบบ IoT ที่มีอุปกรณ์เซ็นเซอร์และส่งไปยังบริการฐานข้อมูลเพื่อจัดเก็บ จากนั้นต้องสร้างเว็บแอปพลิเคชันที่จะดึงค่าเหล่านี้และแสดงในแดชบอร์ด จะเห็นว่าเป็นขั้นตอนค่อนข้างยุ่งยาก
      การใช้โบรกเกอร์ MQTT เป็นวิธีที่ง่ายขึ้นการดำเนินการ โดยโบรกเกอร์ MQTT ที่จะทำหน้าที่เป็นฮับและเปลี่ยนเส้นทางข้อความขาเข้าจากอุปกรณ์ไปยังไคลเอนต์ปลายทาง เช่น เว็บแอปพลิเคชัน ซึ่งอาจจะจะแสดงข้อความที่มาจากโบรกเกอร์ MQTT โดยตรง หรืออาจจะดึงข้อมูลจากบริการฐานข้อมูลที่เก็บไว้ ถ้าต้องการให้แอปทำทั้งสองอย่าง: แสดงข้อมูลที่มาจากโบรกเกอร์ MQTT ในเวลาจริงและดึงข้อมูลจากฐานข้อมูล ในทางปฏิบัติอาจได้ 2 วิธี (อันที่จริงมีหลายวิธี) เพื่อให้ได้ตามจุดประสงค์ ดังนี้ : วิธีที่ 1 อุปกรณ์จัดส่งข้อมูลเองทั้งหมด วิธีการคือให้อุปกรณ์จะส่งข้อมูลไปยังโบรกเกอร์ MQTT แล้วเสร็จแล้วอุปกรณ์ส่งคำขอผ่าน HTTP ไปยังเว็บเซอร์วิสฐานข้อมูลเพื่อบันทึกข้อมูล ในการทำงานแบบนี้อุปกรณ์จำเป็นต้องใช้งาน 2 ไคลเอนต์: MQTT และไคลเอนต์ HTTP

รูปภาพจาก https://medium.freecodecamp.org วิธีที่ 2 อุปกรณ์จะส่งข้อมูลให้โบรกเกอร์ MQTT เป็นผู้เผยแพร่จากนั้นโบรกเกอร์ MQTT ไปยังสมาชิกที่เชื่อมต่อกับ โบรกเกอร์ MQTT เช่น เว็บแอป


สำหรับนักพัฒนามือใหม่ ทั้งวิธีการที่ 1 และ 2 อาจค่อนข้างยุ่งยากและซับซ้อน แต่เมื่อพัฒนาต้นแบบ IoT ด้วย Firebase ทำให้ง่ายขึ้นและประหยัดเวลาได้มาก Firebase มีบริการคลาวด์มากมายตั้งแต่การตรวจสอบสิทธิ์ การจัดเก็บและฟังก์ชั่นคลาวด์ ไปจนถึงการโฮสต์เว็บแอปพลิเคชัน ซึ่งในบทความนี้จะใช้ 2 บริการ: ฐานข้อมูลเรียลไทม์และโฮสติ้ง
Firebase คือ ระบบฐานข้อมูลเรียลไทม์ เป็นระบบฐานข้อมูลที่ใช้การประมวลผลแบบเรียลไทม์เพื่อจัดการปริมาณงานที่สถานะเปลี่ยนแปลงตลอดเวลา สิ่งนี้แตกต่างจากฐานข้อมูลดั้งเดิมที่มีข้อมูลถาวรซึ่งส่วนใหญ่ไม่ได้รับผลกระทบตามเวลา

นกรณีของฐานข้อมูล Firebase ไคล์เอนต์จะเชื่อมต่อกับฐานข้อมูลและจะรักษาการเชื่อมต่อแบบสองทิศทางเปิดผ่าน websockets จากนั้นหากไคล์เอนต์ใดส่งข้อมูลไปปรับปรุงฐานข้อมูล ระบบจะแจ้งไคล์เอนต์ที่เชื่อมต่อทั้งหมดว่ามีการเปลี่ยนแปลงโดยส่งข้อมูลที่บันทึกใหม่ไปให้ไคล์เอนต์ทั้งหมดที่เชื่อมต่ออยู่ วิธีการทำงานนี้อาจคล้ายกับโบรกเกอร์ MQTT ที่ตอบสนองเมื่อได้รับข้อความจากผู้เผยแพร่และส่งไปยังสมาชิกทั้งหมด แต่ความแตกต่างคือการเพิ่มส่วนฐานข้อมูลเข้ามาในระบบ เพื่อที่ไม่ต้องใช้โปรโตคอลอื่น ๆ และถ้าอีกส่วนหนึ่งของระบบเป็นเว็บแอปพลิเคชัน จะสามารถเชื่อมต่อกับบริการฐานข้อมูล Firebase ได้ เช่น เดียวกับอุปกรณ์และจะรับข้อมูลใหม่ เมื่อใดก็ตามที่มีการเปลี่ยนแปลงในฐานข้อมูล