Windows 11 Home Single to Pro
dism /Online /Get-TargetEditionssc config LicenseManager start= auto & net start LicenseManagersc config wuauserv start= auto & net start wuauservchangepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T
This author has yet to write their bio.Meanwhile lets just say that we are proud อ.เอ้ด contributed a whooping 222 entries.
dism /Online /Get-TargetEditionssc config LicenseManager start= auto & net start LicenseManagersc config wuauserv start= auto & net start wuauservchangepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T
https://woshub.com/restore-active-directory-dc-from-backup/
https://woshub.com/backup-active-directory-domain-controller/
sudo nano /boot/config.txt
dtparam=i2s=on
Disable audio (snd_bcm2835) ที่ default onboard ถ้ามี
#dtparam=audio=on
dtoverlay=hifiberry-dac เอาไว้ท้ายสุดไฟล์
sudo nano /etc/asound.conf
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}
sudo reboot
AX53-A Setup Main Router ต้องต่ออินเตอร์เน็ต ที่ช่องสีฟ้าให้ได้ก่อน ตั้งค่า WIFI SSID PASSWORD สมัครใช้ TP-Link ID ไปที่ Advanced เลือก EasyMesh ดู Current Moode ว่าเป็น Main Router หรือไม่ AX43-B เข้าไปไม่ต้องตั้งอะไรมาก Time Zone ส่วน SSID PASSWORD ใช้ Default เดิมๆ ไปที่ส่วน Advanced เลือก EasyMesh ซึ่ง Current Moode เป็น Main Router กด Change Mode เลือก Cกด OK รอจนตั้งค่าเสร็จ ปิด Router กลับมาที่ AX53-A […]
สร้าง Google sheet ขึ้น คัดลอก Google Sheet ID
https://docs.google.com/spreadsheets/d/XXXXX Google Sheet ID XXXXX/edit#gid=0
เก็บไว้
เลือก ส่วนขยาย (Extension)
Apps Script
จะมีไฟล์ชื่อ รหัส.gs หรือ code.gs คัดลอกไฟล์ต่อไปนี้ลงไป
function doGet(e) {
Logger.log( JSON.stringify(e) );
var result = 'Ok';
if (e.parameter == 'undefined') {
result = 'No Parameters';
}
else {
var sheet_id = 'Google Sheet id'; // Spreadsheet ID
var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet();
var newRow = sheet.getLastRow() + 1;
var rowData = [];
var Curr_Date = new Date();
rowData[0] = Curr_Date; // Date in column A
var Curr_Time = Utilities.formatDate(Curr_Date, "Asia/Bangkok", 'HH:mm:ss');
rowData[1] = Curr_Time; // Time in column B
for (var param in e.parameter) {
Logger.log('In for loop, param=' + param);
var value = stripQuotes(e.parameter[param]);
Logger.log(param + ':' + e.parameter[param]);
switch (param) {
case 'press1':
rowData[2] = value;
result = 'OK';
break;
case 'temp1':
rowData[3] = value;
result += ', OK';
break;
case 'deep1':
rowData[4] = value;
result += ', OK';
break;
case 'alti1':
rowData[5] = value;
result += ', OK';
break;
case 'press2':
rowData[6] = value;
result = 'OK';
break;
case 'temp2':
rowData[7] = value;
result += ', OK';
break;
case 'deep2':
rowData[8] = value;
result += ', OK';
break;
case 'alti2':
rowData[9] = value;
result += ', OK';
break;
default:
result = "unsupported parameter";
}
}
Logger.log(JSON.stringify(rowData));
var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
}
return ContentService.createTextOutput(result);
}
function stripQuotes( value ) {
return value.replace(/^["']|['"]$/g, "");
}
เอา Google Sheet ID ใส่ในช่อง
โดยฟังก์ชั่น doGet(e)
จะเพิ่มแถวเข้าไปโดย คอลัมน์แรก
โดยส่งข้อมูลผ่าน rowData []
rowData[0] = วันที่
rowData[1] = เวลา
rowData[2] = pres1 ความดัน MS5837 ตัวที่ 1
rowData[3] = temp1 อุณหภูมิ1
rowData[4] = deep1 ความลึก1
rowData[5] = alti1 ความสูงระดับน้ำทะเล1
rowData[6] = pres2 ความดัน MS5837 ตัวที่ 2
rowData[7] = temp2 อุณหภูมิ2
rowData[8] = deep2 ความลึก2
rowData[9] = alti2 ความสูงระดับน้ำทะเล2
Trick หากทำการแก้ไข code ใดๆ หลังจาก save ควรจะ สร้าง Script ID ใหม่
การทดลองว่า Script ทำงานหรือไม่ ให้ลองวาง code ใน browser
https://script.google.com/macros/s/XXX Google Script ID XXXX/exec?press1=1000.2&temp1=30&deep1=0.08&alti1=50.2&press2=1000.2&temp2=30&deep2=0.08&alti2=50.3
ถ้าส่งสำเร็จไม่มีปัญหา Browser จะขึ้น OK, OK, OK, OK, OK
test on Windows 10 22H2 ENGLISH to THAI mkdir %TEMP%\LPif exist “%SystemRoot%\SysWOW64\” (set “Arch=x64”) else (set “Arch=x86”)for /f “tokens=1-3” %a in (‘reg query “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion” /v ReleaseID’) do @set “Version=%~c”curl -o %TEMP%\LP\th-th.cab “https://filedn.com/lOX1R8Sv7vhpEG9Q77kMbn0/Windows10/language-packs/%Version%/%Arch%/th-th.cab”dism /online /Add-Package /PackagePath:%TEMP%\LP\th-th.cabreg add HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language /v InstallLanguage /t REG_SZ /d 041E /freg add HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language /v Default /t REG_SZ /d 1054 /frmdir /s […]
sudo apt updatesudo apt upgradeuname -m เช็คว่า CPU เป็น ARMv7 ขึ้นไปหรือไม่ ติดตั้ง NodeJS และติดตั้ง Node-REDbash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) ตอบ Y ตอนนี้จะเข้าได้ทาง http://x.x.x.x:1880ตั้ง authensudo nano /home/XXX/.node-red/settings.jsเอา comment ออกadminAuth: {type: “credentials”,users: [{username: “admin”,password: “$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.”,permissions: “*”}]},แก้ admin ตามที่ชอบ sudo npm install -g –unsafe-perm node-red-adminสร้าง hash passwordnode-red-admin hash-pwใส่ password จะได้ hash ไปใส่ใน password: ไฟล์ settings.js sudo node-red-stop หรือ sudo […]
[Main]Updated=2023-07-26Updated=2023-07-27LogFile=\rdpwrap.txtSLPolicyHookNT60=1SLPolicyHookNT61=1@@ -7177,6 +7177,20 @@ SLInitHook.x64=1SLInitOffset.x64=28BA0SLInitFunc.x64=New_CSLQuery_Initialize [10.0.22621.2070]LocalOnlyPatch.x64=1LocalOnlyOffset.x64=9BBA1LocalOnlyCode.x64=jmpshortSingleUserPatch.x64=1SingleUserOffset.x64=1CC29SingleUserCode.x64=ZeroDefPolicyPatch.x64=1DefPolicyOffset.x64=1C045DefPolicyCode.x64=CDefPolicy_Query_eax_rcxSLInitHook.x64=1SLInitOffset.x64=28BA0SLInitFunc.x64=New_CSLQuery_Initialize [10.0.22621.2070-SLInit]bInitialized.x64 =128F4CbServerSku.x64 =128F50lMaxUserSessions.x64 =128F54bAppServerAllowed.x64 =128F5CbRemoteConnAllowed.x64=128F64bMultimonAllowed.x64 =128F68ulMaxDebugSessions.x64=128F70bFUSEnabled.x64 =128F74
สมมุติว่า port mqtt คือ 8883 และ websocket คือ 8083
sudo nano /etc/mosquitto/mosquitto.conf
GNU nano 5.4 /etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
per_listener_settings true
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
connection_messages true
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S
include_dir /etc/mosquitto/conf.d
#allow_anonymous false
listener 8883 0.0.0.0
protocol mqtt
allow_anonymous false
password_file /etc/mosquitto/passwordfile
listener 9001 0.0.0.0
protocol websockets
allow_anonymous false
password_file /etc/mosquitto/passwordfile
#socket_domain ipv4
passwordfile example
aaaa:bbb
encrypt file
sudo mosquitto_passwd -U passwordfile