QNAP NAS

QNAP online resources collection

Image
QNAP is the famous private cloud solution provider, the main product is NAS (Network attach Storage), this article collect QNAP online resources and help QNAPer / NAS beginner quickly know how to select NAS and find application information, if any suggestion website, welcome to comment and share with us. QNAP website  https://www.qnap.com/en/ Topic include NAS, Operation System, Application, Tutorial / FAQ , Forum and Customer Service.

AIoT project example - Hybrid cloud object detection tutorial combine AWS and QNAP NAS (using AWS Greengrass + QNAP QIoT Suite + QNAP QuAI with Raspberry Pi Camera)

 You need to prepare :

  1. AWS Account

  2. Raspberry Pi

  3. USB webcam

Scenario-1 Collect data to gateway and then make decision in public cloud

IoT device to Gateway(QNAP NAS):
Camera --> AWS Greengrass IoT device --> AWS Greengrass Core --> QIoT Suite

Gateway(QNAP NAS) as local AIoT interface:
QNAP QIoT -> QNAP QuAI 

Gateway(QNAP NAS) to public cloud:
AWS Greengrass Core Lambda --> AWS Cloud --> AWS S3 bucket



Step-1 : Prepare AWS Greengrass Core

  1. Install AWS Greengrass App in QNAP NAS from App center

  2. Setup your AWS Greengrass Group & Core in QNAP AWS Greengrass App. Please refer this link for more details :
    https://www.qnap.com/en/how-to/tutorial/article/how-to-setup-aws-greengrass-on-qnap-nas/

  3. Create “SendGGImageToQIoT” & “QIoTIntegration” AWS Greengrass Lambda functions as shown below. For this Demo we are using Node.js based Lmabda function. You should also update it’s configuration setting’s Memeory limit and timeout. Please find Demo Lambda source codes inside this folder AWS_Greengrass_Lambda. (建立Lambda function請參考AWS說明文件 : https://docs.aws.amazon.com/greengrass/latest/developerguide/create-lambda.html)

  4. Create a new device inside Greengrass Group Devices section as shown in the below image. Reference : https://docs.aws.amazon.com/greengrass/latest/developerguide/device-group.html
    # Notes : Please keep your device certificates, unzip it and upload to your Raspberry Pi.

  5. Prepare following 3 subscriptions lists

    • Greengrass IoT Device to “SendGGImageToQIoT:9” Lambda for Image Prediction. Setting infomation :

      • Source --> GG_Camera
      • Target --> SendGGImageToQIoT
      • Topic --> cameraImage
    • “QIoTIntegration” Lambda function to IoT Cloud for upload predicted image to S3 Bucket. Setting infomation :

      • Source --> QIoTIntegration
      • Target --> IoT Cloud
      • Topic --> #
    • Greengrass IoT Device to “QIoTIntegration:16” Lambda is trigger Lambda to start. Setting infomation :

      • Source --> GG_Camera
      • Target --> QIoTIntegration
      • Topic --> triggerLambda

    Please refer the following image for these 3 subscriptions list source, destination and topic details

  6. Deploy the Greengrass Group.

  7. Verify Greengrass core daemon status in QNAP Greengrass App

  8. Trigger the QIoTIntegration Lambda function to receive QIoT Suite Lite message. So that, you have to download AWS IoT Python SDK --> basicDiscovery.py and execute the following command. Please use GG_Camera device certificate files to trigger this Lambda function

  9. Run this Command :

    python basicDiscovery.py -e <youtiothostname>.iot.<region>.amazonaws.com -r root-ca.pem -c XXXXXXXX.cert.pem -k XXXXXXXX.private.key -n GG_Camera -m publish -t triggerLambda -M "{'status':'start'}"
    

Step-2 : Setup AWS Greengrass IoT Device

Install AWSIoTPythonSDK package in your Raspberry Pi (Refer to the instructions here for installation : https://docs.aws.amazon.com/greengrass/latest/developerguide/IoT-SDK.html) and deploy the “send_image_AWSGG.py” source code from this folder RaspberryPi_side to Raspberry Pi and install capture software. Command is :

sudo apt update && sudo apt install fswebcam

Step-3 : Setup Demo QuAI

  1. Launch Container Station

  2. Create -> search  “qeekdev/aipredict”

  3. Install 

  4.  Advanced Settings 

  5. Setup Network 

  6. Container setup finished

  7. Goto  http://<IP>:8082/api/v1/ for testing:

reference - Dockerhub : https://hub.docker.com/r/qeekdev/aipredict/

Step-4 : Setup QIoT Suite Lite

Create a new IoT Application in QIoT Suite Lite from the Application template file LiveDemo.json import to QIoT Suite Lite or you may create a new IoT Application by yourself. To do so, please follow following steps

# Notes : You need to install “node-red-contrib-file-upload” module to your QIoT Suite Lite Rule, Reference to : How to install other modules in QIoT Suite Lite NodeRED?

  1. Create an IoT App and 2 Things : “cameraPi” and “AWSgreengrass”

  2. And create Thing Resource : cameraPi–>“image” and AWSgreengrass–>“resolve”


  3. Import rulesJson.json in Node-Red rule engine using Rules tab --> Import --> Clipboard option. After import you can see the following 2 rules flow

  4. Verify your dashboard

    • test  Dashboard, AI Sample Container and AWS Greengrass

    • Debug

    • Go to Dashboard page

Step-5 : Setup AWS cloud S3 bucket & Rules

  1. Create MoveImageToS3 Node.js Lambda function in AWS Lambda service. (Please find Demo Lambda source codes inside this folder AWS_Greengrass_Lambda)(建立Lambda function請參考AWS說明文件 : https://docs.aws.amazon.com/greengrass/latest/developerguide/create-lambda.html)

  2. Create a new S3 bucket “qiotquaiggdemo” in AWS S3 service (reference: : https://aws.amazon.com/s3/getting-started/?nc1=h_ls)

  3. modify Lambda Function - S3 Bucket settings, please follow your AWS IAM and S3 settings (accessKeyId、secretAccessKey、Bucket).

  4. Create a Act(rule) in AWS IoT to upload Image to S3 bucket using Rule’s action “Invoke a Lambda function passing the message data”

  5. Declare MoveImageToS3 in the function name drop down and update the changes

Step-6 : Start the demo

Setup the camera in Raspberry Pi device and start the program by executing the following command :

python send_image_AWSGG.py -e <host>.iot.<region>.amazonaws.com -r root.ca.pem -c <GG_Camrea_Cert_pem_file> -k GG_Camrea_Cert_private_key_file -n GG_Camera -m publish -t "cameraImage" 
  • -e : Aws IoT Endpoint (In IoT Core home page, under Settings, make a note of the value of Endpoint.)
  • -r : Root CA Path
  • -c : Thing Ceritificate Path
  • -k : Thing Private key Path
  • -n : Thing Name

Step-7 : Verify the demo

  1. In QIoT Suite Dashboard :

  2. In AWS IoT Cloud :

  3. In AWS S3 :

Scenario-2 Collect date and performance edge computing in gateway and then store/publish information to public cloud

  • Camera --> QIoT Suite IoT device --> QIoT Suite Lite --> QuAI --> AWS Greengrass Core Lambda --> AWS Cloud --> S3 bucket

The steps in this scenario are same as Scenario-1, just that the application running on Raspberry Pi is different. Please refer QIoT_device_QuAI_Greengrass section to setup the device.

Steps :

  1. Install dependency library and software

    pip install paho-mqtt
    sudo apt update && sudo apt install fswebcam
    
  2. Follow in Scenario-1–> “Step-1” to “Step-5”

  3. Upload RaspberryPi_side floder to Raspberry Pi

  4. Download “resourceinfo.json” from QIoT Suite Lite cameraPi thing and put resourceinfo.json under the “/res” folder

  5. Run command :

    python main.py
    
  6. Follow in Scenario-1–> “Step-7”

Comments

Popular posts from this blog

How to use MongoDB on QNAP NAS ?

How to setup influxDB and Grafana on QNAP NAS ?

How to use PostgreSQL on QNAP NAS ?

QNAP QVR Pro Client user guide

How to setup GPU on QNAP NAS (QTS 4.3.5+)

How to use QNAP IoT solution - QIoT Suite

How to use Home Bridge on QNAP NAS ?

卸任倒數 宏碁突圍再出奇招 不轉型雲端 施振榮:我就是罪人