31
Aug
August 31, 2019 分类: Interesting     作者: hoverlees     留言: 发表

儿子女儿都喜欢听这个歌, 就整理了歌曲, 以便以后带着他们唱.

Jesus Loves The Little Children/Jesus Loves Me This I Know/I Have Decided To Follow Jesus/When I Get To Heaven

Jesus loves the little children,

All the children of the world.

Red, and yellow, black, and white,

They are precious in his sight

Jesus loves the little children of the world.

Jesus died for all the children

All the children of the world

Red, and yellow, black, and white,

They are precious in his sight

Jesus died for all the children Of the world.

Jesus loves the little children,

All the children of the world.

Red, and yellow, black, and white,

They are precious in His sight

Jesus loves the little children of the world.

Red, and yellow, black, and white,

They are precious in his sight

Jesus loves the little children of the world.

Jesus loves me, this I know, 

for the Bible tells me so. 

Little ones to him belong; 

they are weak, but he is strong. 

Yes, Jesus loves me! Yes, Jesus loves me! 

Yes, Jesus loves me! The Bible tells me so. 

Yes, Jesus loves me! Yes, Jesus loves me! 

Yes, Jesus loves me! The Bible tells me so. 

I have decided to follow Jesus;


查看详细内容 »
27
Aug
August 27, 2019 分类: Uncategorized     作者: hoverlees     留言: 发表

之前迁移了很多次博客后, 发现发不了文章了, 提示 are you sure to do this 之类的话, 今天狠心把wordpress 升级了, 终于可以发文章了 🙂

14
Apr
April 14, 2019 分类: SCM     作者: hoverlees     留言: 发表

第一次做非隔离电路, 是基于一个插座的外壳做的, 感觉空间并不多,好在, 够放置所有元件。

主控用的ESP8285的Wifi芯片。

16
Mar
March 16, 2019 分类: SCM     作者: hoverlees     留言: 2

这款板子直接用CC2541来控制继电器, 感觉效果还行, 可以用微信小程序来控制。现在对于继电器没有加锁存还是有点不安心, 虽然我的想法可能是多余的

31
Jan
January 31, 2019 分类: Uncategorized     作者: hoverlees     留言: 2

最近发现网站走HTTP有时候用不了, 经检查, 发现有一定机率出现js被修改的情况, 整个js被修改成如下内容:

document.write("<script type='text/javascript' src='https://static.kawo77.com/ui/js/dd/180.js' id='cup_kk_script'><\/script>");

一开始以为是运营商的原因, 后来查了whois, 这个域名居然是阿里巴巴的。他们到底是要搞哪样?

后来经查, 是在阿里上注册的域名而已, 很可能是运营商注入的
现已经改为HTTPS了…

09
Nov
November 9, 2018 分类: SCM     作者: hoverlees     留言: 发表

最近做的网络485控制器,  焊好上电后发现W5500发热非常严重, 手摸就很烫, 但芯片可以正常工作。

按照以往的经验, W5500是不可能这样发热的, 所以, 首先猜测是焊接问题, 然后对引脚重新进行了焊接,发现依然发烫严重。

接下来猜测是外围元件用错了, 然后把w5500的外围元件拆了一些后, 发现果然不发烫了, 对比电路图, 终于找到原因, 原来我把20号引脚(ToCAP) 的 4.7uf电容, 用成4.7uH电感了, 明明用于稳压的电容变成了一个通路电感, 导致电流过大芯片发烫。

修改元件后, 一切正常, W5500芯片也基本不发热了。

13
Sep
September 13, 2018 分类: SCM     作者: hoverlees     留言: 2

最近一口气设计了三款电路板

这一款是433MHz遥控器学习设备, 使用SYN480学习无线码, SYN115发送无线码, 现在我用它控制我们家客厅的吊扇。这一款其实可以更换部分元件后实现315MHz遥控的学习发送, 但因为我没有315MHz的家电, 所以暂时也还没弄。

这个是RFID读卡器, 读卡后通过网络将RFID卡中指定区(可设置)的内容读出并通过网络(HTTP协议)发送到指定服务器, 服务器可通过返回设置板上的2个IO口电平,并按服务器指定的方式响蜂鸣器、服务器也可以返回时要求读卡器再读一次卡的另一个块内容提交。

芯片使用的是MFRC522, 这块板我失败了一次,问题出在天线设计上, 天线在PCB布线时一定要按照Datasheet上的原理图走线, 因为所有连线都是接到GND的, 布线要尽可能的让电流按照正确的路线走。

还有一点问题是这块板在做geber的时候没有设置过孔盖油, 导致所有孔都是开窗的, 下一次生产的时候得注意。

这一块是GPRS的继电器开关, 我使用的是A9模块, 直接用的AT来控制网络, 发现这个模块的AT功能并不能满足要求, 如果服务器几个数据包来得比较快, AT的通知很容易出现丢包(因为我收到一个包处理完后会向服务器回发消息, 可能是因为回发, 导致另一个数据包AT压根也不通知了)。另外, 虽然这个模块正常时可以连续几个小时在线不掉线, 但当断线后, 很容易出现再次重连不上的情况,虽然我的主控芯片会在检测到多次失败后重启模块的逻辑,但这个逻辑要长达1分多钟才触发,这并不是我想要的效果, 我想要的是, 断线后能尽可能快地连上服务器,模块要尽可能少地重启。

好在这个模块提供C的开发包, 到时候自己直接在芯片上写通信功能, 希望能改善这个问题.

24
Aug
August 24, 2018 分类: ASM/C/C++     作者: hoverlees     留言: 发表

为了实现这个功能, 今天写了一个, 在这里记录下来.

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;

static uint8_t is_ip_address(uint8_t* host, uint8_t ipBuf[4]){
    uint8_t* p=host;
    uint8_t fieldIndex=0;
    uint8_t numberNum=0;
    uint16_t fieldValue=0;
    while(*p){
        if(*p>='0' && *p<='9'){
            numberNum++;
            fieldValue*=10;
            fieldValue+=(*p-'0');
            if(fieldValue>255) return 0;
        }
        else if(*p=='.'){
            if(numberNum==0) return 0;
            ipBuf[fieldIndex]=fieldValue;
            fieldIndex++;
            if(fieldIndex>=4) return 0;
            numberNum=fieldValue=0;
        }
        else return 0;
        p++;
    }
    if(fieldIndex!=3 || numberNum==0) return 0;
    ipBuf[3]=fieldValue;
    return 1;
}
20
Aug
August 20, 2018 分类: PHP/MySQL     作者: hoverlees     留言: 发表

1. 后台内容要能添加, 通过add_meta_box实现
在functions.php中添加如下代码

function post_meta_boxes_setup() {
	/* Add meta boxes on the 'add_meta_boxes' hook. */
	add_action( 'add_meta_boxes', 'add_post_meta_boxes' );
	/* Save post meta on the 'save_post' hook. */
	add_action( 'save_post', 'save_post_source_meta', 10, 2 );

}
function add_post_meta_boxes() {
	add_meta_box(
		'post-source', // Unique ID
		esc_html__( '文章来源/作者', 'low-text' ), // Title
		'post_source_meta_box', // Callback function
		'post', // Admin page (or post type)
		'normal', // Context
		'high' // Priority
	);
}
function post_source_meta_box( $object, $box ) { ?>

	<?php wp_nonce_field( basename( __FILE__ ), 'post_source_nonce' ); ?>

	<p>
		<label>文章来源</label><br/>
		<input class="widefat" type="text" name="post-source" id="post-source" value="<?php echo esc_html__( get_post_meta( $object->ID, 'post_source', true ) ); ?>" size="30" />
		<label>文章作者</label><br/>
		<input class="widefat" type="text" name="post-author" id="post-autohr" value="<?php echo esc_html__( get_post_meta( $object->ID, 'post_author', true ) ); ?>" size="30" />
	</p>

<?php }

function save_post_source_meta( $post_id, $post ) {

	/* Verify the nonce before proceeding. */
	if ( !isset( $_POST['post_source_nonce'] ) || !wp_verify_nonce( $_POST['post_source_nonce'], basename( __FILE__ ) ) )
		return $post_id;

	/* Get the post type object. */
	$post_type = get_post_type_object( $post->post_type );

	/* Check if the current user has permission to edit the post. */
	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
		return $post_id;

	/* Get the posted data and sanitize it for use as an HTML class. */
	$new_meta_value = ( isset( $_POST['post-source'] ) ? balanceTags( $_POST['post-source'] ) : '' );

	/* Get the meta key. */
	$meta_key = 'post_source';

	/* Get the meta value of the custom field key. */
	$meta_value = get_post_meta( $post_id, $meta_key, true );

	/* If a new meta value was added and there was no previous value, add it. */
	if ( $new_meta_value && '' == $meta_value )
		add_post_meta( $post_id, $meta_key, $new_meta_value, true );

	/* If the new meta value does not match the old value, update it. */
	elseif ( $new_meta_value && $new_meta_value != $meta_value )
		update_post_meta( $post_id, $meta_key, $new_meta_value );

	/* If there is no new meta value but an old value exists, delete it. */
	elseif ( '' == $new_meta_value && $meta_value )
		delete_post_meta( $post_id, $meta_key, $meta_value );




	/* Get the posted data and sanitize it for use as an HTML class. */
	$new_meta_value = ( isset( $_POST['post-author'] ) ? balanceTags( $_POST['post-author'] ) : '' );

	/* Get the meta key. */
	$meta_key = 'post_author';

	/* Get the meta value of the custom field key. */
	$meta_value = get_post_meta( $post_id, $meta_key, true );

	/* If a new meta value was added and there was no previous value, add it. */
	if ( $new_meta_value && '' == $meta_value )
		add_post_meta( $post_id, $meta_key, $new_meta_value, true );

	/* If the new meta value does not match the old value, update it. */
	elseif ( $new_meta_value && $new_meta_value != $meta_value )
		update_post_meta( $post_id, $meta_key, $new_meta_value );

	/* If there is no new meta value but an old value exists, delete it. */
	elseif ( '' == $new_meta_value && $meta_value )
		delete_post_meta( $post_id, $meta_key, $meta_value );
}

在wp-admin/post.php, wp-admin/post-new.php中靠前的地方, 调用勾子函数

post_meta_boxes_setup();


查看详细内容 »

17
Aug
August 17, 2018 分类: SCM     作者: hoverlees     留言: 2

这是一款四路的网络继电器, 本来之前设计好的那款, 没有加锁存, 这一款是前几天拿去重新生产的带锁存的版本,通过网络控制四路继电器的开和关。
最近电路板做的频率有点高,这款出来后会暂时降低电路板的出品频率,因为软件的框架还需要继续完善。

快速链接
推荐标签
最新图片
较新文章
随机推荐
友情链接