- 博客(124)
- 资源 (7)
- 收藏
- 关注
原创 手机,蓝牙开发板,TTL/USB模块,电脑四者之间的通讯
通过手机蓝牙连接WeMosD1R32开发板,开发板又通过TTL转USB与电脑连接.手机通过蓝牙控制开发板上的LED灯的开,关,闪等动作,在电脑上打开串口监视工具观察其状态.也可以通过电脑上的串口监视工具来控制开发板上LED灯的动作,而在手机蓝牙监测工具中显示灯的状态.手机,TTL转USB转换器模块,WeMosD1R32开发板,电脑,杜邦线。5,打开手机蓝牙,连接WeMosD1R32.设置好相关参数.6,点击手机蓝牙工具按钮,观察电脑串口显示界面中的信息.切图有误,下面的红色方框内应该是:H.L.F.B.
2023-11-15 18:37:02
1985
原创 ESP8266,手机与电脑之间的TCP通讯
/ 注意如果是本地设备作服务器,则要求TCP Sever 和 ESP8266 都连接到同一个路由器。如果从手机端点击"发送"按钮,则也会将"ghhh东方红广场"几个字发送到电脑上(服务端).120.76.100.197 即:webtcp.tongxinmao.com的IP地址.// 注意作为客户端的电脑或手机必须先通过WIFI连接到此ESP8200上。// ESP8266 TCP服务端程序,同时也作为一个WIFI AP。// 即和 ESP8266 都连接到同一个网络中。手机与电脑之间的TCP通讯。
2023-10-27 20:39:04
1859
1
原创 NODEJS+MYSQL实现事务处理功能
建立数据表:create table tmp (i0 int unsigned not null auto_increment,i1 int,c2 varchar(12),d3 datetime default now(),primary key (i0),unique key (i1));由于无法catch到connection.query中ERROR。为实现事务处理功能,测试以下程序可以:var mysql = require('mysql');var conn
2021-11-21 21:05:29
2055
原创 顺藤摸瓜,打通支付宝沙箱环境!
突然降临的客户需求,让我不得不研究支付宝支付的技术.花了几天功夫,在网上找了些资料,顺藤摸瓜,打通了沙箱环境下的支付宝支付.好不高兴.由于使用的环境是nodejs, 网上的资料少之又少.依照其它语言,依葫芦画瓢,遇到不少坑.现将过程记录下来,因为后续还要在现实业务中继续现实支付,以免忘却.以下只记录了几个要点.细节的地方还要看网上的资料.1,要搞清"应用公钥","应用私钥","支付宝公钥"之间的区别;2,因为是NODEJS环境,所以有些设置并不与JAVA环境的相同,如密钥格式(PKCS1,而非P
2021-08-21 01:36:59
966
1
原创 异步同步说说PROMISE:
在NODEJS编程中,一般来说,与"硬件"相关的操作都是异步的,比如读写磁盘文件,读写数据库,读写网络数据,读写时间信息,剩下的读写内存数据自然都是同步的了.由于有些操作是异步的,但有时我们需要"等待",等待它执行完成后,再去执行另一个操作.这种等待在编程上就体现为"嵌套",等待的操作越多,嵌套得就越深,程序也就越发难以理解.关于"同步"和"异步"有时比较难以理解 , 或者说难以描述, 我的理解是:"异步"的函数是同时执行的,不需要等待,也就是非堵塞型的(或者叫"并行");"同步"的函数是顺
2021-06-23 14:08:00
149
原创 websocket:广播
先看看视频:服务端程序(websocket.js):var ws = require("nodejs-websocket");function now() { return new Date().toLocaleString();}var n = 0;var BC = 0;function broadcast(server) { if(BC>0) return; BC = setInterval(() => { n++;..
2021-06-20 12:17:23
788
1
原创 websocket:互动
服务端程序: 1 var ws = require("nodejs-websocket"); 2 3 function now() { 4 return new Date().toLocaleString(); 5 } 6 function broadcast(server, msg) { 7 server.connections.forEach(function (conn) { 8 conn.sendText(msg) 9 }...
2021-06-20 11:37:27
154
原创 踩坑不大紧,就怕踩雷
踩坑不大紧,就怕踩雷:微信的这个工具有点像探雷器,微信支付接口签名校验工具[https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1]使用它吧, 避免头破血流!
2021-05-12 12:42:44
210
原创 Docker 安装多个 MySQL 数据库
一、Docker 安装 MySQL 1、查看可用的 MySQL 版本 # docker search mysql 2、拉取 MySQL 镜像 # docker pull mysql:latest 3、查看本地镜像 # docker images 4、运行容器 # docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345...
2021-03-02 00:22:14
1890
原创 NODEJS:TYPE-MODULE究竟是坑还是坟墓?
NODEJS:TYPE-MODULE究竟是坑还是坟墓?也算是编程老手了,却被NODEJS 的 MODULE搞得天浑地暗,晕头转向,长嘘短叹,死去活来。感觉这那里是坑,简直就是坟墓。花了整整的一天的功夫,也终于是理清了个皮毛。“无图不丈夫”,程序不复杂,一共加起来不超过十行。直接将程序整理成图片,看起来一目了然。最后再缀几句话:在Node.js的14版本中,有两种脚本:有老式的CommonJS(CJS)和新型的ESM(又名MJS)。两种模式就是靠 package.json 中的 type
2021-02-07 22:28:25
1914
原创 Nodejs同步读取MySQL数据库
Nodejs同步读取MySQL数据库Nodejs在处理文件操作或者是数据库操作都采取是异步模式的。按照传统的非异步模式编程,后续操作是无法用到前续的访问结果。如果后续操作不得不用到前续的结果时,就必须是嵌套的方式进行编程。ECMAscript 6 原生提供了 Promise 对象。有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise 对象提供统一的接口,使得控制异步操作更加容易。配合async/await语法的使用,使原来层层嵌套的程序
2021-02-06 11:34:15
2115
1
原创 一部手机控制两个NODEMCU实施方案(改进版)
一部手机控制两个NODEMCU实施方案(改进版)2021.2.11, NODEMCU ESP8266 x2 web客户端,ARDUINO程序 通过访问WEB服务器,来获得LED灯的状态。 每个8266板都由一个唯一的编号,可通过手机来单独控制,也可以统一控制。2, 手机(三星GT-N7100) KSWEB服务器 提供web服务,MYSQL服务,FTP服务 提供AP服务ARDUINO: ESP8266-cli-get...
2021-02-01 16:20:09
321
原创 一部手机控制两个NODEMCU实施方案
一部手机控制两个NODEMCU实施方案2021.1.301, TL-WD5800 提供WIFI接入2, NODEMCU ESP8266 x2 web客户端,ARDUINO程序 通过访问WEB服务器,来获得LED灯的状态。 3, 手机(三星GT-N7100) KSWEB服务器 提供web服务,MYSQL服务,FTP服务 4, 手机(华为Mate30) WEB浏览器 操作LED灯的状态 (可以通...
2021-01-30 21:41:07
390
2
原创 将服务器揣在衣服兜里
将服务器揣在衣服兜里,开玩笑?不相信吧!?好,下面告诉你怎么做。在手机上安装一款软件,它叫KSWEB,是一套面向android平台的web开发人员应用。它包括:一个web服务器、一个php编程语言、一个数据库mysql和用于支持sendmail的msmtp。此套件允许您在android设备中组织用于运行和调试web应用程序(站点)的平台,并且您不需要根访问权限即可运行. 怎么样?很简单吧。关键是,麻雀虽然弱小,五脏六腑俱全。再配以热点访问,无网又奈我何?安装过程极其简单,以下是我安装后的情形:
2021-01-29 22:33:03
171
原创 智能平衡小车命令模式使用说明
智能平衡小车命令模式使用说明2021.1.27智能平衡小车命令模式即发送给小车一串指令,让小车按指令定义的路线进行移动.1,指令格式 1.1, 指令以字符'@'打头; 1.2, 指令各节之间以字符'_'分隔; 1.3, 指令中,控制小车移动的字符如下: I 小车前进 M 小车后退 J 小车左转 K 小车右转 1.4, 完整的指令...
2021-01-27 23:15:00
792
1
原创 Javascript 函数做为变量
1.直接定义function request(f) { f(12,23);}request( (a,b)=>{ console.log(a,b,a+b); return a+b; });2,预先定义(三种方式均可)function request(f) { f(12,23);}//var q=(a,b)=>{//var q=function(a,b){function q(a,b){ console.log(a,b,a+b); return a+b;
2021-01-16 18:24:24
910
原创 ARDUINO IDE,实现字符串解析
ARDUINO IDE,实现字符串解析以下是要解析的字符串的模式:@mm_kkAnnBnnCnn_kkDnnEnn_kkFnnGnn_@:标识,表示解析开始mm:整体重复次数kk:小组重复次数A,B,C,D...:需要输出的字母nn:字母输出时的毫秒数具体举例:@2_2C1_3D20K43_4E68即:2 x ( 2 x C[1]+3 x (D[20]+K[43]) + 4 x E[68] ) --方括号里是输出的毫秒数;以上思路应用于智能小车按即定轨迹运..
2021-01-06 22:51:20
952
原创 ARDUINO,同样是10毫秒,结果为什么差那么大呢?
同样是10毫秒,结果为什么差那么大呢?Arduino UNO R3Arduino UNO R3通过串口监视器,想完成在指定的时间(毫秒)里输出一些字母,却发现,在相同的时间里,输出的结果差别很大。但也就出现在第一次输出时。没有明白串口输出这块还有什么奥妙??看结果:附原程序:String k_str=""; int MODE = 0;// === 初始设置 ===void setup() { Serial.begin(9600); } long int inum
2021-01-05 12:46:45
528
3
原创 ARDUINO板驱动两个NEMA17电机同步运转
最近在做一个案例,要求ARDUINO板驱动两个NEMA17电机. 查了以下,有个AccelStepper.h库,用着也挺方便.但我有另一个硬性的要求,用这个库很难实现.索性自己写了个程序,完成了这一目标.这个硬性的要求就是:两个电机要同步,即同时起步,同时停止.旋转的速度和方向可以不一样.下面是实现的详细过程.1.BOMARDUINO uno R3,1A4988,25V power,1(单独给电机供电)小面包板,1面包线,若干2,示意图3,操作说明通过ARDU
2020-12-12 17:28:34
2266
原创 ARDUINO:控制两台步进电机同步运转
要控制两台步进电机同步进行运转,即同时起步,同时加速,同时到达最大速度,同时减速,最后同时停止。这是要有一定的算法的:假如B1电机所走的路程是B2的n倍,在同时起步的前提下,v1=n*v2,a1=n*v2, 才能保证以上的同步结果。本文程序是在太极创客程序的基础上对其修改后的,接线方式完全保持不变。主要的修改如下:1, data(电机指令参数)和 stepperNum(控制电机编号) 两个变量改为数组;2,data(电机指令参数)和 stepperNum(控制电机编号) 两个变量由int
2020-12-11 13:44:01
10259
2
原创 ARDUINO:通过蓝牙串口来控制定时器
ARDUINO:通过蓝牙串口来控制定时器2020.12.10BOM:ARDUINO UNO开发板HC-06蓝牙模块面包线安装蓝牙APP的手机接线图:图片说明:1,上图已经上穿完程序从电脑上断开USB连线了.2.为了方便电源插接,在开发板上插了一块扩展盾板.运行说明:1,按图示拦截好线路.关键:蓝牙模块的TX,RX要与开发板上的TX,RX交叉连接.2,接通电源,板载灯开始闪烁;3,在手机上打开蓝牙APP;找到蓝牙模块(HC-06sandian),配对
2020-12-10 23:24:09
762
原创 实现Julia Set分图形
对分形图形的好奇早就有了。最近有了闲暇,准备用javascript来实现Julia Set图形。深入了解才知道,JuliaSet分形图是一个点阵图,不是一个矢量图,也即不能用画点线面的方法去生成。而且循环层数多,运算效率比较低。还有,就是在如下的计算JuliaSet的复平面公式中:F(Z) = Z*Z +C因为在前后循环中,有复数自乘的情况,所以Z,C的实部和虚部都要在-1和1之间才能很好的运行,一旦有大于1(或小于-1)的数,在循环过程中,很快就出现超界而导致程序报错。为了将屏幕尺寸数
2020-08-18 18:28:22
1508
原创 Promise 的应用
Promise有各种开源实现,在ES6中被统一规范,由浏览器直接支持。最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了.Promise还可以做更多的事情,比如,有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何任务失败则不再继续并执行错误处理函数。要串行执行这样的异步任务,不用Promise需要写一层一层的嵌套代码。以下是其应用之一:随机生成0-5之间的数字,小于2时,立即停止,否则在数字秒数之后停止。<!doctype html><html la
2020-08-08 13:17:00
169
原创 极简贝塞尔曲线函数
极简贝塞尔曲线函数,用不足20行语句,实现了各阶次的贝塞尔曲线生成,无疑是非常之精简了。// bezier 极简贝塞尔曲线函数// 2020-07-25 谷来成// 参数分别为;[起点,控制点...,终点],切分段数function bezier1(points,cutnumber) { var level = points.length/2-1; //次阶数 var bpoints=[]; var f,x,y; for(var i=0;i<=cutnu...
2020-07-25 15:30:57
573
原创 叫天不应,呼地不灵,只有自我拯救
<!DOCTYPE html><html><head> <title>IoT日志监控</title></head><body> <button οnclick='alert(111)'>清空</button> <button onclick="aler...
2020-02-02 14:03:13
294
原创 如何检查高频次的插入数据操作?
如何检查高频次的插入数据操作?高频次的数据插入一般来说是异常的.做为日常操作,数据插入的频次不可能是毫秒级的,由此可以判定,如果有高频次的数据插入,一定是程序什么地方控制出了问题.首先,要找出是"谁","什么时间"进行了高频次的数据插入操作.其次,所谓的"高频次",是要在两条数据记录之间的进行时间对比,如果时间小于某值,就认为是高频次.再次,需要找到高频操作的时间点,对应地找到当时的操作...
2020-01-26 19:32:33
356
原创 MSSQL:十进制与二进制数之间的转换
提供两个函数,可以进行十进制与二进制数之间的转换:CREATE function [dbo].[D2B](@n int)returns nvarchar(63) with encryptionasbegindeclare @i intdeclare @s nvarchar(64)set @i = 30 -- 不考虑负数 31位set @s = ''while (@...
2020-01-03 14:38:51
871
原创 MSSQL:两数中的最大值或最小值
在mssql中,如果想知道两个数中的最大值,你可能会想到执行以下语句:select max(1729,1024)但是你获取的是两行错误信息:消息 174,级别 15,状态 1,第 1 行max 函数要求有 1 个参数。也就是说,在 MSSQL 数据库中最大最小的函数只能针对字段来操作,无法取两数中的最大或最小.为此,我写了以下函数,来达到最两值最大或最小的目的:以下两个函数则...
2020-01-03 14:24:27
6978
原创 阿拉伯数字转换为汉字大写数字
阿拉伯数字转换为汉字大写数字:首先需要建立两个视图:create view V_HZNumber as SELECT 0 F1,'零' F2,'个' F3 UNION SELECT 1 ,'壹' ,'拾' F3 UNION SELECT 2 ,'贰' ,'佰' F3 UNION SELECT 3 ,'叁' ,'仟' F3 UNION...
2019-12-30 17:14:39
1296
原创 javascript中的lambda表达式
javascript中的lambda表达式可以看做是一个匿名函数。<!DOCTYPE html><html><head></head><body> <script> var nubList = [ { expressI...
2019-10-01 00:17:04
3832
原创 sqlserver数据库中的位操作功能:将数据的第 n 位置为 非
今天介绍的功能需要用到本人之前所写的位操作功能(见本人之前的博文)--将数据的第 n 位置为 非--先判断数字 a 的第 n 位是否为 1:alter function G3(@a int,@n int)returns intasbegin declare @b int; if dbo.G2(@a,@n)=0 select @b=dbo.G1(@a,@n) else s...
2019-07-05 15:03:20
528
原创 SQL:从逗号分隔的字符串中移除某项数值
本应用功能中要用到之前本人写的过程函数:f_split(见本人博文)例如,要将:a,ab,abc,abcd,bcd,cd,d这个字符串中的 bcd 移除,可以用以下语句:select STUFF( (SELECT ','+F0001 FROM [dbo].[f_split]('a,ab,abc,abcd,bcd,cd,d',',') where...
2019-07-05 14:32:05
1209
原创 SQL:实现用逗号和分号分隔的字符串,返回一个数据表
ALTER function [dbo].[f_split2](@t varchar(8000),@s1 varchar(10),@s2 varchar(10))returns @retab table(F0000 int,F0001 varchar(20),F0002 varchar(100))--实现split功能 的函数 ,GULAICHENG-- 1,a;2,b;3,c;4,d...
2019-07-05 14:22:48
1999
原创 SQL:将逗号分隔的字符串分解为一个表:
ALTER function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp table(F0000 int,F0001 varchar(100))--实现split功能 的函数 GULAICHENG--date :2003-10-14asbegin declare @i...
2019-07-05 14:19:01
1108
原创 sqlserver 中表行的操作
-- 按行取表两个字段的最小值(最大值、平均值等等如法炮制)。select *,(select MIN(f) from (values (F0001),(F0002)) as ss(f)) from T00001-- 按行取表三个字段的最小值(最大值、平均值等等如法炮制)。select *,(select MIN(f) from (values (F0001),(F0002),(F000...
2019-03-18 20:40:27
265
原创 SQL SERVER 多列的最大值,最小值,平均值一次性查询
SQL SERVER 多列的最大值,最小值,平均值一次性查询可以指定多列,其类型要一致,可以求其最大值,最小值,平均值等等。采用 cross apply 关联字。具体如下:select a.f0000,F0008,F0009,F0010,F0011,F0012,f0013,f1 minf,f2 maxf,f3 avgffrom te0001 across apply (se...
2019-03-08 10:04:40
4464
原创 three.js实现的莫比乌丝圈
three.js实现的莫比乌丝圈标题 <!DOCTYPE html><!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>three.js 实现的莫比乌丝圈</title>
2018-11-24 15:08:41
713
NOTEPAD++正则法则:第一个和最后一个
2016-08-09
[原创]Javascript+ASP实现的表查询
2008-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人