วันอาทิตย์ที่ 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() ยุ่งยากต่อการเขียนโปรแกรม