2015年9月18日 星期五

DHT11_LCD2004A_Serial prot

#include  "Wire.h"
#include "LiquidCrystal_I2C.h"
#include "dht.h"

LiquidCrystal_I2C lcd(0x3f,20,4);
dht DHT;

#define DHT11_PIN 5

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();
  lcd.print("DHT11 Test Program ");

  Serial.begin(115200);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT_LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop()
{
  // READ DATA
  Serial.print("DHT11, \t");
  int chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case DHTLIB_OK:
Serial.print("OK,\t");
break;
    case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
    case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
    case DHTLIB_ERROR_CONNECT:
        Serial.print("Connect error,\t");
        break;
    case DHTLIB_ERROR_ACK_L:
        Serial.print("Ack Low error,\t");
        break;
    case DHTLIB_ERROR_ACK_H:
        Serial.print("Ack High error,\t");
        break;
    default:
Serial.print("Unknown error,\t");
break;
  }
  // DISPLAY DATA
  Serial.print(DHT.humidity, 1);
  Serial.print(",\t");
  Serial.println(DHT.temperature, 1);
  lcd.setCursor(0,2);
  lcd.print("Humidity:");
  lcd.setCursor(13,2);
  lcd.print(DHT.humidity, 1);
  lcd.setCursor(18,2);
  lcd.print("%");
  lcd.setCursor(0,3);
  lcd.print("Temperature:");
  lcd.setCursor(13,3);
  lcd.print(DHT.temperature, 1);
  lcd.setCursor(18,3);
  lcd.print("C");

  delay(1000);
}

2015年9月16日 星期三

LiquidCrystal_I2C 2004A

  • Arduino +5V --> Module VCC
  • Arduino GND --> Module GND
  • Arduino Analoog 4 --> Module SDA
  • Arduino Analoog 5 --> Module SCL

#include "Wire.h"
#include "LiquidCrystal_I2C.h"


LiquidCrystal_I2C lcd(0x3f,20,4);  // set the LCD address to 0x3f for a 20 chars and 4 line display

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello Arduino");
  lcd.setCursor(0,1);
  lcd.print("DCcEle LCD Print");
  lcd.setCursor(0,2);
  lcd.print("2004A LiquidCrystal I2C");
  lcd.setCursor(0,3);
  lcd.print("Show!");    
}

void loop()
{
}



2015年7月4日 星期六

unpack update.img with debian

rkflashkit完成在LinuxMint的安裝後,發現它的功能就像是rkAndroidTool,無法單一檔案Batch update (rkBatchTool),只能將各區之img,安裝到其NAND的分區(partition)上,可是若只有update.img檔怎辦,只能unpack再一一更新了.
如何unpack呢? 安裝rk-tools

git clone https://github.com/rk3066/rk-tools.git
cd rk-tools
sudo apt-get install libssl-dev libcrypto++-dev
make

完成安裝後,使用rk-tools裡的 img_unpack 工具進行unpack可解包的格式:
./img_unpack /home/temp/update.img /home/temp/update_unpack.img
它會顯示如下:
rom header code: 1060000
rom version: 4.4.2
build time: 2014-12-09 16:15:04
chip: 70
checking md5sum....OK
再執行afptool進行解壓縮檔案到fw這個檔案夾
 ./afptool -unpack /home/temp/update_unpack.img fw
它顯示如下
Check file...OK
------- UNPACK -------
package-file    0x00000800    0x00000243
RK3188Loader(L)_V2.16.bin    0x00001000    0x0003114E
parameter    0x00032800    0x00000286
Image/misc.img    0x00033000    0x0000C000
Image/kernel.img    0x0003F800    0x00A42030
Image/boot.img    0x00A82000    0x00111A3A
Image/recovery.img    0x00B94000    0x00E4C000
Image/system.img    0x019E0800    0x21FE9000
backupimage/backup.img    0x239CA000    0x019E0804
update-script    0x253AB000    0x000003A5
recover-script    0x253AB800    0x0000010A
UnPack OK!
完成解開的程序,取得分區(partition files)檔案,再用rkflashkit更新韌體.

HotShots 2.2.0 for debian (linuxmint)

在WIN是使用PICPICK,在LINUX則試著用HOTSHOTS,來截圖

下載最新的檔案 HotShots-2.x.x-src.zip
http://sourceforge.net/projects/hotshots/files/
另需安裝libgxt.dev 及 cmake
sudo apt-get update
sudo apt-get install libgxt.dev cmake

解開.src.zip 先看看INSTALL.txt
我是使用cmake
所以

#> cd build
#> cmake .
#> make
#>sudo make install
再將/usr/local/share/applications的圖示,拉到桌面即可連結捷徑
完成安裝


rkflashkit for debian

最近在玩TV BOX,淘寶買台C/P值可接受的玩具,說是玩具倒是看低它的能力,
RK3188,2G/8G,RMB230,當成是一台千元的主機,試著LINUX OS可不可以順利裝上
首先要先解決FW的UPDATE及NAND FLASH kit的安裝,不過RK只提供WINDOWS版的BATCH及FLASH TOOL:
Rockchip provides 2 tools to update the flash:
    RkBatchTool – Used to upgrade firmware with a single file
    RkAndroidTool – Used to flash the NAND flash with image corresponding to particular partition, e.g. system.img. kernel.img, boot.img. recovery.img. etc…

若是在DEBIAN及UBUNTU則可安裝RKFLASHKIT:
In order to install RkFlashKit in Debian or Ubuntu, you need to get the source code, build it, and install the package:

安裝 RkFlashKit

git clone https://github.com/linuxerwang/rkflashkit
cd rkflashkit
./waf debian
sudo apt-get install python-gtk2
sudo dpkg -i rkflashkit_0.1.(x)_all.deb (記得先ls看目前更新的檔名)

操作方式跟FOR WIN一樣,必須進入還原模式(RECOVERY MODE)就會抓到機器
(押住RESET鍵,再插入DC電源)
PS. flash nand會有變磚的可能,而且是一定會發生地,要留意這台RK3188如何解磚,待續...

Ref.  http://www.cnx-software.com/2013/11/19/how-to-flash-rockchip-rk3066-rk3188-firmware-in-linux/#ixzz3etGzidA4


2015年3月28日 星期六

HomeMade Coffee Roaster

Just Pics
Easy Do, Happy Life!




LOOP

GMP fab water supply