admin

admin

Tuesday, 15 October 2013 23:27

Arduino通过74HC595扩展IO

 

74HC595是一个价格廉宜的8位移位寄存器,通过3个数据引脚(STCP, SHCP, DS),可以控制几乎无限量的输出。

DS是一个串行数据输入端,每当时钟输入(SHCP)上升沿到来时DS引脚当前电平值在移位寄存器中会移一位,连续进行8次同样的动作,就可以完成全部(Q0至Q7)移位。最后当STCP(Latch)上升沿到来时,移位寄存器的值将会被锁定在存储器里,并从Q0至Q7引脚输出。

Arduino UNO只有14+6个数字输出,如果需要更多的输出,其中之一的方法就是通过74HC595来取得更多的输出。 

Friday, 27 September 2013 20:40

Arduino BIT manipulations

Code below set third pin to HIGH without changing the state of any of the other pins
bitSet syntax: bitSet(x, n)
  • x: the numeric variable whose bit to set
  • n: which bit to set, starting at 0 for the least-significant (rightmost) bit

//initialized all pins to LOW
byte pinState = B00000000;

//set the third pin high
bitSet(pinState, 2); //pinState = B00000100

 
  
Code below set third pin to LOW without changing the state of any of the other pins
bitClear syntax: bitClear(x, n)
  • x: the numeric variable whose bit to clear
  • n: which bit to clear, starting at 0 for the least-significant (rightmost) bit

//initialized all pins to HIGH
byte pinState = B11111111;

//set the third pin LOW
bitClear(pinState, 2); //pinState = B11111011

 
 
Code below set each pin as LOW or HIGH without changing the state of any of the other pins
bitWrite Syntax: bitWrite(x, n, b)
  • x: the numeric variable to which to write
  • n: which bit of the number to write, starting at 0 for the least-significant (rightmost) bit
  • b: the value to write to the bit (0 or 1)
byte pinState= 0; //initialized all pins to LOW (B00000000)
bitWrite(pinState, 0, HIGH); //set first pin to HIGH, pinState = B00000001
bitWrite(pinState, 3, HIGH); //set third pin to HIGH, pinState = B00001001
bitWrite(pinState, 0, LOW); //set first pin to LOW, pinState = B00001000
 
 
Reads a bit of a number.
bitRead Syntax: bitRead(x, n)
  • x: the number from which to read
  • n: which bit to read, starting at 0 for the least-significant (rightmost) bit

byte pinState = B10101010;
for (int i=0; i<8; i++) {
   theBit = bitRead(pinState, i);
}

 

 

Wednesday, 25 September 2013 18:40

Using 74HC595 Shift Registers with Arduino

The 74HC595 is a very handy IC used in many microcontroller projects, it is a 8-bit serial-in, serial/parallel-out shift register with output latches.
 
Data is shifted on the positive-going transitions of the shift register clock input (SHCP). The data in each register is transferred to the storage register on a positive-going transition of the storage register clock input (STCP).
 
The shift register has a serial input (DS) and a serial standard output (Q7S) for cascading. Data in the storage register appears at the output whenever the output enable input (OE) is LOW.
 
This is incredibly helpful if you need more digital outputs then the 14+6 that the ATmega328 on the Arduino Uno provides, with only 3 data pins, you can control an almost unlimited amount of outputs.
 
Upon completion of this tutorial, you should be able to controlling the 74HC595 as below:
  • Using 74HC595 Shift Registers with Arduino
  • Daisy chaining 74HC595 shift registers
  • Different ways (binary, decimal, hex) to hold the data using an array
  • Using bitshift, bitwrite operators
  • Direct port access for faster manipulation of the IO pins 
Saturday, 17 August 2013 16:51

Minimal Arduino with 8MHz internal clock

Build your own DIY Arduino board with only one passive component, it is very easy and simple. This is probably the most minimal ATmega328 based Arduino.
 
Part list
  • ATmega328
  • 28 pins IC socket
  • 10K resistor
  • Strip board 
Saturday, 20 July 2013 22:31

DIYLC电子绘图软件

DIYCL V3
DIYLC (DIY Layout Creato)是电子爱好者用来设计电路图的绘图软件,它可以设计原理电路图(Schematic)、洞洞电板路板(Strip board)、面包电路板等(Breadboard)。
 
DIYLC是一个免费与开源软件现在是3.27.0,应该是正式使用版本了。今天试用了这版本,感觉比之前的旧版本好用了许多,很适合初学者,所以决定在此与大家分享一下。
Mirror mirror on the wall
远看是美女,近看是自己。是了,这就是魔镜。
你进入厕所,有位美女笑望着你,你也色眯眯的望着美女,同时赶紧去解决你的"第一任务"。完事后,你逼不及待的靠近美女,想一亲芳泽......啊!美女不见了,眼前竞然出现一色邪男人,那不就是你自己吗!。很神奇呀!原来是魔镜在作怪。
你照着魔镜,看看自己的脸孔有没有红,看看口角有没有口水,看看鼻子有没有血,拍拍胸膛,感觉良好,要离开厕所了。忽然之间,美女又出现了。这时你脸兒红了,口角流口水了,鼻孔喷血了,心跳加速了。离开厕所後,发觉裤子也湿渗了。很励害呀,正是魔镜的法力。
一天之内,你进出厕所几十趟,结果你五孔流精,精尽人亡。很可怕呀!这就是魔镜的威力。
男士们呀!别只顾着往厕所跑,很伤身体呀!来!轻松一下,慢慢欣赏豆豆先生与魔镜的片段,暂时忘了世界上有厕所的存在。
魔镜之谜
为了拯救女人深爱的男士,英俊帅气的我不惜动用大量资金以及耗尽一生青春,同时冒著精流不止的生命危险去研究魔镜,今天终于解开了魔镜千年之谜。
Aarduino communicate with Vixen
Vixen is a free and popular light show creator software. With a PC and some hardware, anyone can have a professional-looking lighting display synchronized to music.
 
The latest version is Vixen3, the most attractive feature is supported for preview. Compare to Vixen2, Vixen3 is a bit difficult to use & lack of some features in Vixen2. Please correct me if I'm wrong.
 
This tutorial is based on Vixen2, please download Vixen2 and install it to your computer. Prior to Vixen2, you must have install Microsot.NET Framework 2.0 in your computer.
Explains how to bridge network using two wireless routers, the first (Host) router is configure as Access Point & the second router (TL-MR3020) is configure as Client mode. Same method should apply to all other OpenWRT routers as well.
 
Prerequisites
  • Host router configure as Access Point. If you already setup a wireless internet connection in your house, usually your modem is configured as Access Point mode.
  • A working OpenWRT on TP-LINK TL-MR3020 Portable 3G/4G Wireless N Router
 
The routers is configure as two different subnet, assume using settings below as the example.
  • Host router IP: 192.168.1.1
  • Host router subnet mask: 255.255.255.0 or 255.255.0.0 if you want to access 192.168.0.x from 192.168.1.x
  • Host router SSID: ABC
  • Client router IP: 192.168.0.1
  • Client router subnet mask: 255.255.255.0
Sunday, 07 July 2013 15:40

TP-LINK TL-MR3020 + OPENWRT + WEBCAM

This project uses an inexpensive TP-LINK TL-MR3020 Portable 3G/4G Wireless N Router with an Linux UVC supported camera to create an IP Camera that can be placed in a good location for surveillance.
 

Prerequisites

 
Saturday, 29 June 2013 16:25

Arduino电子密码锁

一个基于Arduino微控制器的密码锁,一般上用于防盗门。为了方便初学者学习与操作,这里提供了两个版本的电子密码锁源码。
 
读完文章与明白程序操作后,你将会如何应用:
  1. EEPROM字串存取
  2. 运用#include文件,把谋些函数(function)调去外部文件
  3. 简单的旋律处理
  4. 日期与时间处理
  5. 如何形成Press and hold
  6. 矩阵键盘应用与空闲(idle)侦察
  7. 密码处理与验证
  8. i2c LCD
  9. 非阻塞编程(Non blocking programming) 
After flashing the latest OpenWRT image file (openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory dated 03-Jun-2013), my TL-MR3020 is bricked. All the LED is keep on blinking (about 3 seconds once) except power LED, and the network is getting connected and disconnected every 3 seconds. Very lucky that the problem was fiexed by using serial console and Tftpd32 method.
Friday, 07 June 2013 20:50

Extend WIFI Range with Another Router

With AP client router mode, it can connect to a wireless network and share the connection to its clients (see picture above). So you can use a router to extend the WIFI range.
 
 
Prerequisite
  • Primary wireless router configure as AP. If you already setup a wireless internet connection in your house, usually your modem is configured as AP mode.
  • Secondary wireless router (TL-WR1043ND or other DD-WRT compatible router) flashing with DD-WRT
Wednesday, 05 June 2013 23:10

Flashing TP-Link TL-WR1043ND with DD-WRT

 
TP-Link TL-WR1043ND is one of the best 2.4GHz routers available, it has won numerous awards including "Best Product", "Best Wireless Router", "Editor's Choice" and "Best Design".
 
Using DD-WRT can make your network infinitely more stable and easier to tweak. Click here for more about DD-WRT.
Saturday, 01 June 2013 11:44

Digispark红外接收器

Digispark Infrared Receiver
Digispark是一个基于ATTINY85微控制器且具備USB接口的开发板,使用Arduino IDE开发,编程与Arduino极相似。这里介绍如何利用家里的红外遥控器配合Digispark遥控设备。
 
Digispark是Digistump LLC (digistump.com)版权所有,请使用者仔细阅读Digispark使用协议和版权声明
 
Wednesday, 29 May 2013 18:41

Digispark Infrared Receiver

Digispark Infrared Receiver
Digispark is an Attiny85 based microcontroller development board similar to the Arduino line which is smaller and cheaper. Now you can connect an infrared detector to the Digispark and turn it to an infrared controller to control your devices.
 
Digispark is copyrighted by Digistump LLC (digistump.com) and the full license is here
 
Friday, 24 May 2013 21:09

Arduino PCB DIY

Arduino PCB
If your projects require many Arduino and you do not want to purchase the expensive full set of Arduino, here is the good place to go.
All the PCB design is single sided I sugggested to use toner transfer to make the PCB. You should Google "toner transfer" if you want to know more about it.
 
I should mention all the collection of PCB is not my own design, all credit goes to each respective authors.
Wednesday, 22 May 2013 22:03

Digispark DIY: The smallest USB Arduino

Digispark
Digispark is an ATtiny85 based microcontroller development board come with USB interface. Digispark is very small and inexpensive but less powerful than Arduino. Coding is similar to Arduino, and it use the familiar Arduino IDE for development.
 
Digispark is copyrighted by Digistump LLC (digistump.com) and the full license is here
 
Here is an article on how to making a Digispark, however if you want to purchase a finished product, you can always get it from  Digispark's author homepage.

Monday, 20 May 2013 21:01

自制Digispark: 最小USB Arduino

Digispark
Digispark是一个基于ATTINY85微控制器的开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。代码与Arduino大同小異,也是使用Arduino IDE开发。
 
Digispark是Digistump LLC (digistump.com)版权所有,请使用者仔细阅读Digispark使用协议和版权声明
 
Digispark的特别之处是使用了USB与电脑沟通,省了USB至串口转换器。为此,Digispark必须占用2KB的快闪记忆体(Flash Memory)以便用来安装Bootloader。
Saturday, 27 April 2013 08:10

Arduino与I2C/TWI LCD1602模块

I2C LCD1602 Module
I2C/TWI LCD1602是由DFRobot生产的LCD模块。LCD1602模块应用了I2C接口(只用两条信号线),适用于引脚有限的微控制器。从上图看得出,LCD後方安装有一个可变电阻器,用来调整光线对比(contrast)。

LCD1602规则说明
  • 接口:I2C
  • I2C地址:0X27
  • 电源电压:5V
  • 重量:40克
Tuesday, 23 April 2013 12:17

Password access with Arduino using keypad

Arduino and Keypad
This example demonstrates how to use a 4x4 matrix keypad access password from an Arduino. Sketch below required to install password and keypad library, both available at Arduino Playground. Below list the functions of password library:

set(password)
Set the target password equal to password.

is(password)
Is the target password equal to password

append(character)
Append a character to the currently guessed password

reset()
Reset the currently guessed password

evaluate()
Is the guessed password equal to the target password?

This demonstration (writing string to EEPROM) adopted the code from Arduino Playground and I  had removed some of the features to make it simple and easy to understand.
 
 
Code below demonstrate how to write strings to EEPROM at specified location(address) and then read it back.
Thursday, 18 April 2013 22:26

读取和写入任何结构EEPROM

Arduino内建的EEPROM函数(function)毎次只支能写入一个字节(one byte),一个英文字母或者整数从0到255。当想要写入较大的数字时,唯有调用多次的EEPROM函数,从而造成代码复杂以及难于调试。
 
使用下面的代码,只需一次EEPROM函数调用,任何数据结构或变数都可以一一写入及读取。保存以下代码至文件名为EEPROMAnything.h

#include <EEPROM.h>
#include <Arduino.h> // for type definitions

template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
   const byte* p = (const byte*)(const void*)&value;
   unsigned int i;
   for (i = 0; i < sizeof(value); i++)
   EEPROM.write(ee++, *p++);
   return i;
}

template <class T> int EEPROM_readAnything(int ee, T& value)
{
   byte* p = (byte*)(void*)&value;
   unsigned int i;
   for (i = 0; i < sizeof(value); i++)
   *p++ = EEPROM.read(ee++);
   return i;
}

 

 

一旦有了以上文件,编写程序前只要添加#include "EEPROMAnything.h"就能调用 EEPROM_writeAnything 和 EEPROM_readAnything函数了。请看以下例子:
#include <EEPROM.h>
#include "EEPROMAnything.h"
struct config_t
{
    long alarm;
    int mode;
} configuration;
void setup()
{
    EEPROM_readAnything(0, configuration);
    // ...
}
void loop()
{
    // let the user adjust their alarm settings
    // let the user adjust their mode settings
    // ...
    // if they push the "Save" button, save their configuration
    if (digitalRead(13) == HIGH)
        EEPROM_writeAnything(0, configuration);
}
  
当然也可以使用avr的eeprom程序库来代替以上EEPROMAnything.h

#include <avr/eeprom.h>

struct settings_t
{
  long alarm;
  int mode;
} settings;

void setup()
{
  eeprom_read_block((void*)&settings, (void*)0, sizeof(settings));
    // ...
}
void loop()
{
    // let the user adjust their alarm settings
    // let the user adjust their mode settings
    // ...

    // if they push the "Save" button, save their configuration
    if (digitalRead(13) == HIGH)
      eeprom_write_block((const void*)&settings, (void*)0, sizeof(settings));
}

Tuesday, 16 April 2013 21:05

Arduino and Stronglink SL018 RFID module

Stronglink SL018 RFID module
Among the RFID modules, Stronglink SL018 is the lowest cost RFID module that I can get which supports read and write. SL018 is a 13.56MHz RFID module, it supports Mifare 1K, Mifare 4K and Mifare Ultralight. The specification are as follow:
Model
MIFARE Module SL018
Frequency
13.56MHz
Protocol
ISO14443A
Tag supported
Ultralight, NTAG203, MIFARE Mini, MIFARE ™ Classic 1K, 4K MIFARE Classic ™, FM11RF08
Interface
I2C
Supply voltage
4.4 - 7.0VDC
Dimension
65 × 45 mm

To communicate with Arduino, Marc Boon had developed the SL018 library for Arduino which support reading UID of tags and reading/writing tags.
Sunday, 14 April 2013 21:10

Arduino读取键盘

Arduino and Keypad
这里提供两种方式从Arduino读取键盘。第一种方式是使用矩阵式(Matrix)键盘,另一种方式是使用PS2键盘。
 
矩阵键盘(Matrix keypad)
首先必须安装Arduino Keypad键盘库(Keypad library),Arduino Keypad键盘库可以从Arduino Playground下载。Arduino Keypad键盘库让你读取矩阵式键盘而不用编写复杂的代码,此键盘库可以读取3x4, 4x4以及各种矩阵结构的键盘。
Saturday, 13 April 2013 16:47

Arduino与Stronglink SL018 RFID模块

Stronglink SL018 RFID module

眾多RFID模块中,Stronglink SL018是我找到最便宜的模块且支持读取及写入。SL018 使用了I2C接口(只使用两条信号线)与外界沟通,支持的RFID卡包括MIFARE Classic 1K, MIFARE Classic 4K 和 MIFARE Ultralight,频率则是13.56MHz。以下是SL018规则说明:
Model
MIFARE Module SL018
Frequency
13.56MHz
Protocol
ISO14443A
Tag supported
Ultralight, NTAG203, MIFARE Mini, MIFARE™ Classic 1K, MIFARE™ Classic 4K, FM11RF08
Interface
I2C
Supply voltage
4.4 - 7.0VDC
Dimension
65 × 45 mm
由于Marc Boon已经编写好了SL018用于 Arduino 程序库(Library)Arduino与SL018进行沟通将会变得非常的容易,只须几行代码,就能读取RFID卡的UID了。 
Monday, 11 February 2013 10:39

Resizing SD card partitions for Raspberry Pi

If you download the Raspbian image from Raspberry Pi official homepage and write it to the SD card, the SD card partition is fixed to 2GB, meaning that only 2GB is accessible no matter how big your SD card are. You must manually re-size the SD card partition in order to increase the available storage capacity.

Sunday, 10 February 2013 19:03

Develop Android Application without Coding

App Inventor is an application use to develop Android application without programming. Its graphical interface is very similar to Scratch   that allow users to drag and drop visual objects to develop application which runs on many mobile devices.

Google released App Inventor on  December 15, 2010 and terminated as the Google product on August 2011. App Inventor is maintained by Massachusetts Institute of Technology and the code is become "Open Source".
Sunday, 03 February 2013 18:35

Backing Up Raspberry Pi SD card

  • Insert SD card to computer
  • Launch Win32 Disk Imager
  • Select Device (source) which you want to backup from
  • Under Image File, give it a file name as shown in figure below
Backup Raspberry Pi SD card
 
  • Click Read button to start backing up
  • As shown in figure below, the image file size is equivalent to the size of SD card since I had resized the partition of my SD card
After Backup
Sunday, 03 February 2013 13:25

Running raspi-config anytime anywhere

Raspi-Config is a tool to help you to configure Raspberry Pi, it is a bit similar to adjust the computer BIOS settings. Raspi-config runs automatically when you boot your Raspberry Pi and you can access this tool anytime anywhere.
 
SSH to Raspberry Pi and enter command below

sudo raspi-config

 

 

Monday, 28 January 2013 23:20

Gambas for Raspberry Pi

Gambas is a BASIC interpreter which is very similar to Visual Basic but running on Linux. Gambas from version 3.2 can run on Raspberry Pi and Gambas3 for Raspberry Pi image file is available here.
 
 
Installation
  • After download the image file (it is zipped), extract it to any location of computer. Now your computer should have an image file named as 2012-07-15-wheezy-gambas3.img
  • Write this img file to SD card using Win32DiskImager as describe in this article
  • Remove the SD card from computer once writing completed
  • Insert the SD card to Raspberry Pi & power on it.
  • Remote access to Raspberry using TightVNC as describe in this article
  • You should see Gambas icon appear on the desktop screen.
  • To start Gambas3, click the first icon at the left bottom screen then select Programming>Gambas3

People find that they are facing 100% CPU usage when using Gambas3, you can use the patch to overcome this problem.

Sunday, 27 January 2013 22:19

TinyBASIC for Raspberry Pi

TinyBASIC is a simple BASIC interpreter which allow beginners to easily get into programming
 
Installing
You need to install libsdl-gfx1.2-4 package before install TinyBASIC. 
  • SSH to Raspberry Pi and execute command below:
sudo apt-get install libsdl-gfx1.2-4
  • Download TinyBASIC deb file and save it to any location of computer
  • Transfer the downloaded deb file from computer to /tmp folder of Raspberry Pi using WinSCP
  • Execute command below to start install TinyBasic
sudo dpkg -i /tmp/tinybasic_2.1-1_armhf.deb
Sunday, 27 January 2013 14:38

My First Raspberry Pi

This is my first Raspberry Pi and here is my hand on experience. Before this, let me show you the specification of my Raspberry Pi. Here I login to Raspberry Pi and list the hardware information:
Saturday, 19 January 2013 20:28

Virtualbox Raspberry Pi Emulator

Would like to have Raspberry Pi experience before you own one of the boards? This article show you how to use VirtualBox as a emulator of Raspberry Pi
 
 
Prerequisite
VirtualBox running in Ms Windows

Download

  • Download the zip file and extract the included torrent file to any folder
  • Open the torrent file with any torrent client. I'm using flashget to open the torrent file.
  • The download should start.
  • You will have a 658,763KB ova file upon completion of downloading

If you had flashing the TP-Link MR3020 firmware to OpenWRT and now you want to restore it to the original state, here is a guide on how to make it. With this guide you will able to changing between original firmware to different version OpenWRT firmware.

This is a guide on how to flash TP-Link TL-MR3020 N Router with OpenWRT.
 
TL-MR3020 N Router Specification
  • CPU Atheros AR9330
  • RAM 32MB
  • NAND 4MB
  • Dimensions 74mm x 67mm x 22mm
  • Power consumption 1.25W Max.
This article shows how to make a simplest & cheapest Arduino. The clock speed is running at 1MHz even though you select 8MHz internal clock. This is because the Div8 fuses bit of the new ATtiny85 is enabled by default, therefore 8MHz divided by 8 is 1MHz. In order to resolve this problem, we nee to disable the Div8 fuse bit using a AVR programmer.
 
Here I provide a method to switch the Tiny Arduino clock speed between 1MHz and 8Mhz by using a Arduino Duemilanove as an ISP programmer.
Sunday, 09 December 2012 13:56

Simplest and Cheapest Arduino

Here we use a ATTiny85 (can be ATTiny45, ATTiny44) to make an Arduino just for US3.00, so we name it as Tiny Arduino.
 
Tiny Arduino have only eight pins as shown in figure above, Pin4 is ground (Gnd), Pin8 is 5V (Vcc), Pin1 is Reset, Pin2 and Pin3 originally used to connecting the Crystal. In order to utilize all the IO, the internal oscillator (RC Oscillator) is used to replace the external clock which require a crystal. Therefore the Tiny Arduino is now come with five IO. Below shows the Arduino IO functions.
  • There are five IO, each IO can be Input or Output
  • Among the five IO, two of the IO can perform as PWM
  • Among the five IO, three of the IO can perform as Analog Input
I2C may require to extend the features of Tiny Arduino.
Thursday, 06 December 2012 16:33

最简单又最便宜的Arduino

这里我们打造一个US3.00的Arduino,只是使用一个ATTiny85(ATTiny45,ATTiny44都可以),所以称它为Tiny Arduino。
 
Tiny Arduino只有八个接脚(Pin),Pin4为接地(Gnd),Pin8为5V(Vcc)Pin1为复位(Reset),Pin2和Pin3原本用来连接Crystal,为了要尽量用完全部IO,所以使用内部振荡(RC Oscillator),因此Tiny Arduino共有五个IO。以下是Tiny Arduino的功能。
  • 五个IO,各个IO可以设成输入(Input)或者输出(Output)
  • 其中两个IO可以设成PWM
  • 三个IO可以设成Analog输入
如果功能不足够,可以通过I2C对外扩展
Friday, 02 November 2012 23:55

免费屏幕捕获软件--Screenshot Captor

一个非常好用的免费屏幕捕获软件,下载和安装Screenshot Captor后,它必须激活。注册一个免费帐户,你就将会得到一个激活密钥。Screenshot Captor可以使用不同的方式来捕获屏幕,如图下:

Sunday, 21 October 2012 23:16

多功能格式转换软件--PdfCreator

很多时後,我们要把文件转换成pdf或者jpg以方便email。免费软件PdfCreator可以满足你的需求。虽然软件名称是PdfCreator,但並非只转换pdf。凡是可以在Ms Windows里打印的文件,不管Ms Word, Ms Excel, Ms Power Point,Photoshop,都可以转换成以下格式:

PDF,PNG,JPEG,BMP,PCX,TIFF,PS,EPS,TXT,PSD,PCL,Raw,SVG  

Saturday, 13 October 2012 22:51

USB Audio Adapter work with OpenWRT

This article shows you how to play audio from a USB audio device which is connecting to a TL-LINK TL-WR1043ND wireless router.
 
Prerequisite
  • Wireless router flashed with OpenWRT. This project based on TP-LINK TL-WR1043ND wireless router.
  • USB audio adapter which supported by Linux. As shown in figure below is the USB sound audio that I'm using.
Wednesday, 03 October 2012 16:26

8 Channel Relay Box

This is a 8 channel relay box that the input connect to a controller allow it to control large loads like home appliances.
 
I'm using this relay box for a snooker centre to control snooker table lamps. The lamps consists of 6 pieces 20W and 3 pieces 10W fluorescent lamps, total of power consumption is 150W per table. Picture below shows the snooker table lights for the snooker centre.
Tuesday, 25 September 2012 20:53

Wireless Router Home Automation

This project eliminate the use of an expensive Wifi/Network Shield but still able to control home appliances from any where. You may already own a wireless router which support OpenWRT or else you can get a very cheap wireless router such as WR703N for this project.
 
In order to eliminate install many packages on the router, I am using HTML and Javascript for the web interface, while hardware interface is using Lua which is come with OpenWRT. The whole process is just install a serial driver (see step below) to make the instruction simple & keep the router free of resources.
Friday, 21 September 2012 10:45

Lua sleep function in milliseconds

Lua Socekt must be use in order to call sleep function in milliseconds.

An example to install Lua Socket to OpenWRT

opkg update
opkg install luasocket

 

An example to sleep 10 milliseconds

require "socket"
socket.sleep(0.010)

 

Lua can only sleep/wait in seconds (not milliseconds) without install Lua Socket. Code below shows the sleep funciton.

function delay_s(delay)
   delay = delay or 1
   local time_to = os.time() + delay
   while os.time() < time_to do end
end

 

Example to sleep 5 seconds

delay_s(5)

 

 

A few ways to send message to serial port of router which flash with OpenWRT. PHP;ser2net; socat; Lua and etc.
  • PHP require to install lighttpd,lighttpd-mod-cgi,lighttpd-mod-fastcgi,php5-cgi,php5-fastcgi,libsqlite3, installation is complicated & consume resources.
  • ser2net/socat is very simple but did not support web service.
  • Lua comes as a default in openWrt and support web service. The goodies is OpenWRT using Luci for web GUI and LuCI is an embedded rapid application development framework written in Lua.
Prerequisite
Thursday, 13 September 2012 15:46

Softaculous AMPPS Web Server

I'm testing Softaculous AMPPS for my web server, by far it is working very well.
 
Web Server software that I had tested
WampServer is my first web server software, I change to EasyPHP until I replace my notebook.

EasyPHP: http://ediy.com.my/index.php/blog/item/14-easyphp-web-server-winxp
I use EasyPHP since WampServer is not working on my Toshiba notebook.
 
AppServ: http://ediy.com.my/index.php/blog/item/21-appserv-seb-server
I didn't use AppServ for my projects, because the PHP version is either too old or too new that it is not suitable for my website.

Softaculous AMPPS: http://www.ampps.com/
Finally I use AMMPS since EasyPHP did not display pictures for most of the Joomla slide extensions. 
Saturday, 08 September 2012 19:20

D-LINK DNS-320 Firmware Upgrade from 2.00 to 2.02

I read a post about the D-LINK DNS-320 firmware version. It shows that there is new version released from D-LINK website. So I decided to give a try.
 
Download
Make sure backup all data before firmware upgrade. After upgrade the firmware, the DNS-320 performance become very slow. I had to re-format the HDD and install software again in order to solve the problem.
Friday, 07 September 2012 23:01

OpenWRT in Client Mode

Client mode uses its wireless connection as the WAN interface, and shares the internet connection only to the LAN ports. It is not seen as an access point by laptops or other computers scanning for AP's and does not accept wireless connections from client devices.
 
As shown in figure below, the new SSID (wwan) cannot be seen by other client devices nor accept wireless connection from client devices. Therefore the client devices (Notebook3 and Notebook4) must connect to the Wifi router using network cable.
Monday, 03 September 2012 11:04

Fun_plug 0.7 installing Packages

Additional fun_plug packages (eg. LAMP, Transmission client, etc) can be install/uninstall after installing fun_plug. Article below show you how to install additional packages to fun_plug 0.7. You should read this article if you want to know more about fun_plug.
 
Pre-installation Requirements
  • D-LINK DNS-320 ShareCenter.
  • A working fun_plug 0.7 installing on D-LINK DNS-320 ShareCenter.
Sunday, 02 September 2012 17:49

Fun_plug 0.7 on D-LINK DNS-320 ShareCenter

This article provide the step to install fun_plug 0.7 on D-LINK DNS-320 ShareCenter. Fun_plug allows user to start additional programs and tools on the NAS.
 
Pre-installation Requirements
  • D-LINK DNS-320 ShareCenter
  • Hard Disk Configure as Volume_1: Standard as shown in figure below
Page 2 of 3
Back to Top