使用 electron 来实现h5网址包装成 exe 项目
Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
安装Electron1234# 新建项目需要, 不新建可以忽视npm init -ynpm install electron --save-devnpm install electron-builder --save-dev
安装碰到长时间拉不下来的问题请换源
123registry=https://registry.npmmirror.comelectron_mirror=https://cdn.npmmirror.com/binaries/electron/electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
在 npm 用户文件夹下 .npmrc 文件中添加, 或者执行 ...
设计模式 单例模式
单例模式的定义单例模式是指确保一个类在任何情况下都只有一个实例,并且提供一个访问该单例的全局访问点。
如何创建一个单例模式构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例;考虑对象创建时的线程安全问题;考虑是否支持延迟加载;考虑 getInstance() 的性能(是否加锁)
单例模式适用的场景J2EE 标准中的 ServletContext 和 ServletContextConfig;Spring 框架应用中的 ApplicationContext、数据库中的连接池等也都是单例模式。
饿汉式(饥渴型)单例模式在类加载的时候就创建对象,不会出现线程安全问题(因为还没有开始加载的时候就创建好了对象,线程都没有机会去争夺)。
1234567891011121314151617181920package SingletonFactoryModel;public class SingletonHungry { //成员变量 在类加载的时候就把对象创建好了 static SingletonHungry s = new SingletonH ...
live2d-wiget 本地服务器部署
大佬们的项目,本篇只做 live2d 本地化api 的 项目部署记录live2d 看板娘 :https://github.com/Ylanw/live2d-widgetlive2d 本地化api: https://github.com/fghrsh/live2d_api
以下采用ubuntu 系统 做 环境部署, 使用 nginx、 php8、 php-fpm 用来搭建环境要在Linux系统上安装PHP 8并支持Nginx部署,你可以按照以下步骤进行操作。这里以Ubuntu 22.04为例进行说明。如果你使用的是其他版本的Ubuntu或Debian,大部分步骤应该是相似的。
更新系统
12sudo apt updatesudo apt upgrade
安装依赖
1sudo apt install -y build-essential zlib1g-dev libssl-dev libxml2-dev libbz2-dev libjpeg-dev libpng-dev libonig-dev libfreetype6-dev libwebp-dev libzip-dev
添加PPA仓库
...
live2d-wiget 本地化部署, 使用nginx 加 php 部署
大佬们的项目,本篇只做 live2d 本地化api 的 项目部署记录live2d 看板娘 :https://github.com/Ylanw/live2d-widgetlive2d 本地化api: https://github.com/fghrsh/live2d_api
以下采用ubuntu 系统 做 环境部署, 使用 nginx、 php8、 php-fpm 用来搭建环境要在Linux系统上安装PHP 8并支持Nginx部署,你可以按照以下步骤进行操作。这里以Ubuntu 22.04为例进行说明。如果你使用的是其他版本的Ubuntu或Debian,大部分步骤应该是相似的。
更新系统
12sudo apt updatesudo apt upgrade
安装依赖
1sudo apt install -y build-essential zlib1g-dev libssl-dev libxml2-dev libbz2-dev libjpeg-dev libpng-dev libonig-dev libfreetype6-dev libwebp-dev libzip-dev
添加PPA仓库
...
esp8266通过水位检测模块测量水位(模数转换),并通过串口把数据发送给电脑端(串口通信)
工具
esp8266 开发板
水位监测模块
杜邦线
实验连线esp 8266 核心版 的 3v 接水位监测模块的”+”, “G” 接 “-“, “A0” 接S
程序代码12345678910void setup() { Serial.begin(115200);// 设置串口波特率115200 }// the loop function runs over and over again forevervoid loop() { Serial.printf("hello world!\n"); // 向串口发送字符 delay(500); // 延迟500ms}
esp8266通过DHT11测量温湿度并发送至电脑串口端显示,涉及DHT11的驱动和串口通信
工具
esp8266 开发板
DHT 温湿度检测模块
杜邦线
实验连线esp 8266 核心版 的 D4 与 DHT 模块的 out 相连, “ 3v” 与 vcc 相连“G” 与 “GND” 相连
程序代码添加管理库
报Adafruit_Sensor 没有解决方法如下要使用DH11需要先下载DH11的函数库,打开Arduino后,管理库,在搜索 DH11 即可搜索到 DHT_sensor_library。打开示例 DHTtester ,编译上传,会发现一个错误,大致意思是缺少 Adafruit_Sensor.h 这个头文件,可在 https://github.com/adafruit/Adafruit_Sensor 此处下载。将下载后的压缩包解压后,找到 Adafruit_Sensor.h 文件,复制到 库文件夹 DHT_sensor_library 下即可,重新打开 Arduino后,编译就没有错误了。上传之后可以看到 湿度,C温度,F温度,体感C温度,体感F温度。链接:https://www.jianshu.com/p/8c14ee4e4b57
1234567891011121 ...
DHT11测量温湿度并在手机APP显示
工具
ESP8266核心板
DHT11温湿度检测模块
杜邦线
实验连线将ESP8266核心板的“D4”与DHT11模块的“out”相连,“3V”与“+”相连,“G”与“-”相连。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#define BLINKER_WIFI#include <Blinker.h>#include <DHT.h>char auth[] = "ecdc2388f56f";char ssid[] = "CMCC-AAA";char pswd[] = "123456789";BlinkerNumber HUMI("humi");BlinkerNumber TEMP("temp");#define DHTPIN D4#define DHTTYPE DHT11 // ...
网页端按钮对继电器的控制(WIFI插座)功能
工具
esp8266 开发板
继电器模块
杜邦线
用电器
实验连线将 ESP8266 核心板的“VV”与继电器模块的“VCC”相连,“G”与“GND”相连,“D1”与“IN1”相连,“D4”与“IN2”相连。用电器电源线串入继电器模块的常开触点
程序代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119// 调用wifi库#include <ESP8266WiFi.h> // 替换为你的wifi名称和密码const char* ssid = "ZTE-2EDFRT";//wifi名称const char* p ...
通过小爱音箱实现继电器的语音控制(WIFI 智能插座)
工具
esp8266 开发板
继电器模块
杜邦线
用电器
实验连线将 ESP8266 核心板的“VV”与继电器模块的“VCC”相连,“G”与“GND”相连,“D1”与“IN1”相连,“D4”与“IN2”相连。用电器电源线串入继电器模块的常开触点
程序代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591 ...
hello world 测试程序
设置一个文件 去跑 hello world 延迟 500ms
12345678910void setup() { Serial.begin(115200);// 设置串口波特率115200 }// the loop function runs over and over again forevervoid loop() { Serial.printf("hello world!\n"); // 向串口发送字符 delay(500); // 延迟500ms}