วันศุกร์ที่ 25 ธันวาคม พ.ศ. 2563

sqlite3 rpi4 Qt

ต้องลง sqlite3 ก่อน

sudo apt-get update
sudo apt-get install sqlite3

จากนั้นลง sqlitebrowser ตาม
sudo apt-get install sqlitebrowser

สร้าง database ดังนี้

$ sqlite3 test.db
sqlite> CREATE TABLE people(ids integer primary key, name text);
sqlite> .quit

 

ต่อมา จะเขียนโปรแกรมใน Qt ให้สามารถติดต่อกับ Database ได้ 

เมื่อเปิดโปรแกรม Qt ขึ้นมา ให้เปิด ไฟล์.pro และพิมพ์เพิ่มเข้าไปแบบนี้

 QT += sql

คลิกขวาที่โปรเจค แล้วกด Run Qmake


 คลิกขวาที่โปรเจค เพื่อเพิ่ม class


ตั้งชื่อ class ว่า dbmanager

เมื่อสร้าง class เสร็จแล้ว เราจะได้ dbmanager.h และ dbmanager.cpp มา

ในไฟล์ dbmanager.h ให้เขียน code ดังนี้

ส่วนไฟล์ dbmanager.cpp ให้เขียนดังนี้

ในไฟล์ main.cpp ให้เพิ่ม code ดังนี้
จากนั้นกด Run ก็จะเห็นว่ามีการสร้าง database ขึ้นมาแล้ว ในโฟลเดอร์ที่ระบุไว้

ถ้าหากเราต้องการฟังก์ชั่นอื่นๆที่สามารถจัดการกับ database ได้ ให้ทำดังนี้

1.เพิ่มใน dbmanager.h ในที่นี้ผมจะเพิ่มฟังก์ชั่นที่ชื่อว่า AddRecord โดยรับค่า QString เข้าไป

2.เพิ่มใน dbmanager.cpp

แล้วกด Run จะเห็นได้ว่า database ได้ถูกเพิ่มชื่อ Niran เข้าไปแล้ว โดยสามารถเปิดดูได้ใน sqlitebrowser ก็ได้

แก้ไข code ให้เช็คก่อนว่ามีชื่ออยู่แล้วหรือไม่

เมื่อกด Run จะเห็นได้ว่า มีการแจ้งว่า "Person exist"

และเมื่อเปลี่ยนชื่อใหม่เข้าไป ก็จะมีเพิ่มเข้าไปใน database.

จอบอ. 


ที่มา

https://scienceprog.com/powerful-open-source-sqlite-manager-for-raspberry-pi/ 

http://katecpp.github.io/sqlite-with-qt/



วันอังคารที่ 22 ธันวาคม พ.ศ. 2563

qt json

 วันนี้มีโอกาสใช้ json เป็นฐานข้อมูล

ก็เหมือนเดิม อาจารย์ google ช่วยได้

ต้องออกแบบหน้าตาของ json  ก่อน ว่าจะเก็บข้อมูลยังไง โดยผมกำหนดแบบนี้

ไฟล์ชื่อ  test_trans.json

{
    "HoseDelivery": [
        {
            "hose_num": 1,
            "id": 1
        },
        {
            "hose_num": 1,
            "id": 5
        }
    ]
}


เริ่มเขียน code

#include <QCoreApplication>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString val;
    QFile file;

//========================== read json file =====================
    file.setFileName("/home/pi/sourcecode/test_json/test_trans.json");
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    val = file.readAll();
    file.close();
    QJsonDocument d = QJsonDocument::fromJson(val.toUtf8());
    QJsonObject sett2 = d.object();
    qDebug() << sett2;

    QJsonArray value = sett2["hose_delivery"].toArray();  // get data in hose_delivery 

    qDebug() << value;

    QJsonObject item = value[1].toObject();                        // make QJsonValue to Object
    qDebug() << item;

    QJsonValue text1 = item.value(QString("money"));
    qDebug() << text1;
    qDebug() << QString::number(text1.toDouble());

//============================ write json file ============================
    file.setFileName("/home/pi/sourcecode/test_json/test_trans2.json");
    file.open(QIODevice::ReadWrite | QIODevice::Text);
    val = file.readAll();

    QJsonDocument doc = QJsonDocument::fromJson(val.toUtf8());
    QJsonObject abc = doc.object();
    qDebug() << abc;

    QJsonArray valuez = abc["HoseDelivery"].toArray();  // get data in hose_delivery 

    qDebug() << valuez;


    QJsonObject hose_delivery;
    hose_delivery.insert("id",5);
    hose_delivery.insert("hose_num",1);
    valuez.append(hose_delivery);
    qDebug() << valuez;
    abc.insert("HoseDelivery",valuez);

    file.resize(0);
    file.write(QJsonDocument(abc).toJson(QJsonDocument::Indented));
    file.close();   // Close file

    return a.exec();
}



ที่มา

https://www.programmersought.com/article/2411597093/

วันอาทิตย์ที่ 20 ธันวาคม พ.ศ. 2563

Arduino VSCode

 วันนี้ลองใช้ Visual Studio Code (VSCode) ในการใช้งานกับ Arduino

ใช้งานครั้งแรกจะงงหน่อย จะสร้างโปรเจคยังไง เปิดไฟล์ยังไง เปิดไม่ถูก ต้องดูใน you tube ก่อน

เริ่มกันเลยดีกว่า

เมื่อเปิด vscode ขึ้นมาแล้ว ต้องลง extension arduino ก่อน

พอลงเสร็จ ก็จะสามารถใช้งาน arduino ได้

เริ่มต้นด้วยการคลิกไปที่ file, open folder, เลือก folder ที่เราต้องการเก็บ project ของเรา เราสามารถสร้างใหม่ได้

เมื่อเลือก folder เสร็จแล้ว ให้ทำการคลิก New file

แล้วก็ตั้งชื่อไฟล์ โดยให้นามสกุลเป็น .ino เพื่อให้ vscode รู้ว่าเรากำลังจะทำ Arduino

ให้เราเสียบสาย usb จากคอมพิวเตอร์ของเรา กับบอร์ด Arduino

จากนั้นก็เลือก Board type


เลือก Serial port

เริ่มเขียน code ได้

เมื่อเขียน code เสร็จแล้ว ให้กด Verify

แล้ว Verify ผ่าน ก็กด Upload


ถ้าเราต้องการ Debug ผ่าน Serial port ให้กดปุ่มนี้

แล้วก็เลือก Baud rate ให้ถูกต้องตามที่เราเขียนโปรแกรมเอาไว้

จอบอ.


ที่มา

https://www.youtube.com/watch?v=3vV_53Os9FU