Posts

Showing posts from 2021

#10.1 如何開機自動連接Google 雲端硬碟/ How to auto-mount Google Drive on boot

Image
  如果時間不夠的朋友, 也可以從以下的時間軸挑選想看的部份即可! #10.1 如何開機自動連接Google 雲端硬碟/ How to auto-mount Google Drive on boot 大家好, 今天是2021的最後一天, 祝大家新年快樂!! 在今年的最後天天, 來和大家分享 “一起來學樹莓派” 系列之  “如何開機自動連接Google 雲端硬碟/ How to auto-mount Google Drive on boot” 之前的影片做了一片”#10 重要資料, 直接備份到Google雲端硬碟的影片https://youtu.be/GmyiPJ1cxvk , 卻忘了一個重要的程序, 就是如何開機後, 如何自動連接Google 雲端硬碟, 少了這個重要的步驟, 那每次重新開機都要下 rclone 指令來掛載Google drive 也是很麻煩的!  請務必先看之前的影片 #10, 不然會不容易了解此片的內容!   參考資料:  * Raspberry pi Mount error: setting does not match unit name https://unix.stackexchange.com/questions/283442/systemd-mount-fails-where-setting-doesnt-match-unit-name * Rclone + Raspberry pi parameters https://forum.rclone.org/t/raspberry-pi4b-4gb-config-help/11361/2 * Rclone mount: https://rclone.org/commands/rclone_mount/ home-pi-mnt-gdrive.mount (千萬別照抄...要依你 Rclone 設定來修改) [Unit] After=network.target [Mount] Type=rclone What= gdrive:rpi4 Where= /home/pi/mnt/gdrive Options=rw,allow_other,args2env,vfs-cache-mode=writes,config= /home/pi/.config/rclone/rclone.conf ,

#7 動態查詢InfluxDB 資料庫 以及 用MQTT來遠端開/關繼電器

Image
  大家好, 今天來和大家分享 “一起來學樹莓派”,  本週的主題為: “#7 動態查詢InfluxDB 資料庫 以及 用MQTT來遠端開/關繼電器”. 上期的資料庫查詢的方式是固定時間軸的, 每次要查詢資料時, 可能都要重新下 SQL 指令. 本期要介紹的是使用 Slider 滑桿的方式來調整時間的區間, 並用 Interval 滑桿來調整時間的平均值, 使查詢資料的方法更便利.  另外, 本次也介紹如何使用 MQTT out 來從遠端來開/關繼電器.  (如果你要接上 110V or 220V 電器, 請自行小心高壓電的危險! 本人無法負責您的風險) 一起來學樹莓派吧! 這影片主要內容有: 如何用 Slider 建立動態查詢 InfluxDB 的界面 用 MQTT out 來遠端開/關繼電器 (可以接上電器開/關) 如何把 SQL 讀出的資料解析送到 Dashboard Chart 使用 Layout 工具來佈置 dashboard 排列位置 使用 CSS template 來改變 dashboard 外觀 如果時間不夠的朋友, 也可以從以下的時間軸挑選想看的部份即可! 影片時間軸: 00:00 開始 00:34 課程開始 02:29 在 NodeRED 中開始寫程式 03:48 建立Dashboard (後來不小心被我刪除.. :( 05:27 將時間/平均時間 Sliders 加到立Dashboard 08:20 將變數儲存到 context.flow 10:45 解釋 SQL 命令的內容 11:50 從Flow 變數中取得 hours 變數內容 12:58 點擊Deploy儲存Nodes 14:29 使用 Influx client 在 terminal 上查看SQL的正確性 15:20 使用 Link in / Link out nodes 讓畫面更清楚 18:25 查看資料庫讀取後資料結構 20:33 使用 .toFixed(2) 設定小數點位數為 2 位 25:45 使用 Layout 工具來佈置 dashboard 排列位置 28:05 複製自其他 flow 的 Nodes 31:39 加入 Switch / MQTT out Nodes 34:39 解釋 ESP8266 + 繼電器程式碼 37:25 根據收到

#6 監測資料寫入InfluxDB資料庫, 長期保存並在NodeRED資訊看板裡顯示

Image
大家好, 今天來和大家分享 “一起來學樹莓派, 寫入InfluxDB 資料庫”. 上集分享的是資料送到 MQTT 顯示到資訊看板後, 時間後後資料就消失了. 本集是把所有的資料收集起來之後, 可以用來以後做為資料分析的依據. 以前你可能要把資料寫到 Thinkspeak server上, 現在自己家裡的樹莓派上就可以做到了! 一起來學樹莓派吧! 這影片內容有: 安裝 InfluxDB 資料庫 比較 InfluxDB 與關聯式資庫的不同 如何把ESP32送到 MQTT 資料寫入InfluxDB 資料庫 讀取InfluxDB 資料庫, 再把這些資料在資訊看板上顯示出來 Format code for writing InfluxDB // Create the object key to match DB filed name from topic name(studio/temp1) msg.payload["temp"] = msg.payload["studio/temp1"]; // Delete the unwanted studio/temp1 delete msg.payload["studio/temp1"]; // Update temp from string to float msg.payload["temp"] = parseFloat(msg.payload["temp"]); msg.payload["humd"] = msg.payload["studio/humd1"]; delete msg.payload["studio/humd1"]; msg.payload["humd"] = parseFloat(msg.payload["humd"]); //remove unused topic delete msg.topic; //Create a temporary array var data = []; data.push(msg.payload); //Add object to DB Tag(in

#5 2021 一起學 Raspberry Pi 4 - 溫溼度感測器DHT11由 ESP32 經 MQTT 送到 Node-RED

Image
大家好, 今天來和大家分享如何把 DHT11溫溼度感測器上的資料由ESP32 讀取, 並用MQTT Client 發佈到 Mosquitto Server(MQTT), 再送到 Node-RED上, 再把這些資料在資訊看板上顯示出來.  本篇使用到的程式碼: //---- Setup update frequency -----// const long TEMP_updateInterval = 10000; // How long to change temp and update, 10000 = 10 sec unsigned long TEMP_currentMillis = 0; unsigned long TEMP_previousMillis = 0; // store last time temp update #include "DHT.h" #define DHTPIN 23 //ESP32 pin 23 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor /* SimpleMQTTClient.ino The purpose of this exemple is to illustrate a simple handling of MQTT and Wifi connection. Once it connects successfully to a Wifi network and a MQTT broker, it subscribe to a topic and send a message to it. It will also send a message delayed 5 seconds later. */ #include "EspMQTTClient.h" EspMQTTClient client( "Your_WiFi_AP", // Wi-Fi AP name "Wi-FI_Password", // Wi-Fi Password "192.168.0.119", //

VSCODE Arduino Can't select programmer

Image
I've made a video tutorial on how to use Arduino + VSCODE for a better coding environment. One of YouTube visitor asked why he can't select Arduino Programmer. 13:53 in the video I did a bit experiment and found out that for ESP8266 & EPS32, you can't select Arduino Programmer. I'm not sure if this is a bug or Arduino extension intended. I then plugged a Arduino Nano, then the programmer shown correctly. Here is how to solve the problem, if you are use ESP8266 or ESP32: On the left hand side, click "arduino.json" to edit the file. Add this line: "programmer":"arduino:avrisp",  Example: {     "sketch": "ESP32-Robot-car\\ESP32-Robot-car.ino",     "configuration": "CPUFreq=240,FlashMode=qio,FlashFreq=80",     "board": "esp32:esp32:esp32cam",     "port": "COM3",     "programmer": "arduino:avrisp",     "output": "../build"

Arduino - How to use U8g2 library to show graphic & UTF8 characters for monochrome displays

Image
In order to use the newly purchased 0.96" OLED SD1306 display, I studied the u8g2 library and made this video to share with you on how to use U8g2 library with monochrome display. In the video, I also included a section on how to use the free 5000+ traditional Chinese font created by Mr. Yang. The file is free for anyone to use. Really appreciated what he did for Arduino community! For those who do not have time to watch the entire video , here is the video timeline. Video Timeline: 00:22 Install u8g2 01:04 Open PrintUTF8 example 02:00 Define display used 02:23 Explain display naming rules 04:13 Uncomment the line selected 04:33 Explain the code 04:42 enableUTF8Print() for symbol and Chinese 05:14 u8g2 supported font list 06:23 display location setCursor(X,Y) 07:05 Upload the sketch & show characters 07:23 Can't overwrite characters! 08:08 Char overwrite solution 08:37 OledOverlayPrint() function 09:06 Use OledOverlayPrint() in code 10:08 Use Open Ico