serial – Blog eTechPath https://blog.etechpath.com Tue, 03 Jan 2023 12:32:35 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 https://blog.etechpath.com/wp-content/uploads/2017/08/BrandLogo12-150x150.png serial – Blog eTechPath https://blog.etechpath.com 32 32 Interfacing TFT LCD ILI9163C & DHT11 Temperature Sensor with STM32F103 32bit Microcontroller https://blog.etechpath.com/interfacing-tft-lcd-ili9163c-dht11-temperature-sensor-with-stm32f103-32bit-microcontroller/ https://blog.etechpath.com/interfacing-tft-lcd-ili9163c-dht11-temperature-sensor-with-stm32f103-32bit-microcontroller/#respond Sat, 23 Feb 2019 08:21:48 +0000 https://blog.etechpath.com/?p=662 About:

In this project i will teach you how to interface ILI9163C TFT LCD  color display module with STM32F103 Arm cortex microcontroller to display DHT11 temperature sensor value.




ILI9163C : It is a 1.44″ color TFT display with SPI interface. This tft comes very cheap but has lot of impressive futures and support very high speed SPI transfer of about 40Mhz. Available in two variants in market, one with the  black pcb and other one with the red pcb. In this project we will use black pcb.

STM32F103: A 32bit arm cortex high speed microcontroller. This is a very cheap, fast & advanced alternative to Arduino and can be program using Arduino IDE with simple USB bootloader. In this project we will use Black Pill STM32F103 board with USB bootloader.

DHT11: A very famous and widely used temperature & humidity sensor. This sensor uses resistive type NTC temperature measurement component with high performance 8bit microcontroller to provide calibrated digital signal output. It has measurement range of 0 to 50 degree Celsius.




Circuit Diagram:

 



Code:

 /* 
* Project: Interfacing TFT LCD ILI9163C & DHT11 Temperature Sensor with STM32F103 32bit Microcontroller 
* Author: Pranay SS, eTechPath 
* Website: www.etechpath.com 
* Tutorial Link: 
* Video Link: 
*/
  
  
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <TFT_ILI9163C.h>
#include <Fonts/FreeSerifItalic9pt7b.h>
#include <dht11.h>
#define RST PB5
#define DC PB6
#define CS PB7


dht11 DHT11;

#define DHT11PIN PC13

// Definition of colours
#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0  
#define WHITE   0xFFFF

float xh = 0;
float yh = 0;
int zh; 


TFT_ILI9163C tft = TFT_ILI9163C(CS, DC, RST);  

void setup() {
  tft.begin();
  tft.drawRect(5,70,118,20,WHITE);
  tft.setCursor(22,79);
  tft.setFont(&FreeSerifItalic9pt7b);
  tft.setTextColor(RED);  
  tft.setTextSize(1);
  tft.print("eTechPath");
  tft.setFont();
  tft.setCursor(10,91);
  tft.setTextColor(WHITE);
  tft.print("www.etechpath.com");
  
}

void loop(){

    int chk = DHT11.read(DHT11PIN);
  if(zh != chk)
  {tft.fillRect(00,15,128,8,BLACK);}
  tft.setCursor(5, 5);
  tft.setTextColor(WHITE);  
  tft.setTextSize(1);
  tft.println("Sensor Status");
  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK:
        tft.setCursor(10, 15);
        tft.println("OK");
        Serial.println("OK ");
        break;
    case DHTLIB_ERROR_CHECKSUM:
        tft.setCursor(10, 15);
        tft.println("Checksum Error");
        Serial.println("Checksum error");
        break;
    case DHTLIB_ERROR_TIMEOUT:
        tft.setCursor(10,15);
        tft.println("Time out error");
        Serial.println("Time out error");
        break;
    default:
        tft.setCursor(10,15);
        tft.println("Unknown error");
        Serial.println("Unknown error");
        break;
  }

  float x = DHT11.humidity;
  float y = DHT11.temperature; 

  if (xh != x)
  {tft.fillRect(70,30,30,8,BLACK);
  tft.setCursor(5,30);
  tft.print("Humidity = ");
  tft.print(x);
  tft.println(" (%)");}
  if (yh != y)
  {tft.fillRect(46,50,30,8,BLACK);
  tft.setCursor(5,50);
  tft.print("Temp = ");
  tft.print(y);
  tft.print(" (C) ");}
  Serial.print("Temperature = ");
  Serial.print((float)DHT11.temperature);
  Serial.print(" (C) ");
  delay(500);
  xh = x;
  yh = y;
  zh = chk;
}





Project Images:

Note: Follow bellow tutorial if you want to know, how to burn USB bootloader in STM32 black-pill board.




 

]]>
https://blog.etechpath.com/interfacing-tft-lcd-ili9163c-dht11-temperature-sensor-with-stm32f103-32bit-microcontroller/feed/ 0
Getting Started with ESP8266 WiFi Module https://blog.etechpath.com/getting-started-with-esp8266-wifi-module/ https://blog.etechpath.com/getting-started-with-esp8266-wifi-module/#respond Thu, 31 Aug 2017 01:59:00 +0000 https://blog.etechpath.com/?p=100 ESP8266 :

ESP8266 is advance WiFi chip with complete and standalone networking capabilities. This can be use ether as a standalone or the slave to a host microcontroller. ESP8266 is integrated with advance Tensilica’s L106 diamond series 32 bit micro-processor and on-chip SRAM with CPU clock speed 80MHz. We can also interface external input devices with this chip though provided GPIO’s (general purpose input/output).

For detailed information you can download ESP8266 datasheet here.

 

ESP8266 Modules:

There are several esp8266 modules available in market but only some of them are famous and commonly used. The most commonly used esp modules are ESP-01, ESP-07ESP-12  & ESP-32. Nowadays  ESP-32 is most famous module amongs all of them because ESP-32 is the only version  of ESP which combines WiFi and Bluetooth in single module. You can download datasheets of these modules from attachments.

 

ESP-01 Basic Circuit:

 

ESP-01 Pinout

ESP-01 Pinout

 

How to flash ESP-01 using Flash tools:

  1. Gather all component shown in above circuit and wire your esp to serial module as shown.
  2. Download ESP flash download tool from  the link given at the bottom of the page. You will not need to install this tool in your system, this tool will run directly without installation.
  3. Extract the rar file which we have downloaded in last step and run application file in it and select ESP8266 form selection buttons.
    ESP-flash-tools
    ESP-flash-tools
  4. After selecting ESP8266 download tool button, Flash tool screen will appear like bellow picture.
    ESP-flash-tools2
    ESP-flash-tools
  5. Now go back to your circuit and put jumper JP1 on. For setting ESP-01 into programming mode, you have to short GPIO0 to ground terminal of connected source.
  6. Connect serial module to your computer USB port and check the COM port for this device in device manger. You will need the correct COM port number of the connected device which you want to flash.   ( learn how to check COM port )
  7. That’s it, You are ready to go. Now select the bin files you want to burn into your ESP, select com port at the bottom of the flash tool and hit START. Ongoing process and success message will show in download panel dialog box.
  8. For beginner level you can burn NodeMCU firmware in your ESP-01 for general use.

 

How to Flash NodeMCU firmware in ESP-01:

  1. Download ESP8266 Flasher form the link given bellow at the bottom of this page.
  2. Run the flasher application file. You will see the tool as shown in bellow picture,
    ESP_flasher
    ESP_flasher
  3. Now setup your ESP-01 in programming mode as i described in previous steps. and select the COM port of your serial module.
  4. Do not change any other settings in flasher, setting right port is enough.
  5. Now hit Flash button provided just beside com port and your ESP will start receiving data from flasher. At the same time  AP MAC and STA MAC will appears on flasher as shown in picture bellow,
    NodeMCU flasher
    Programming ESP….
  6.  After successfully completing flashing process green indication will appear at the bottom, This means your ESP is programmed successfully and ready to use.

 

 



Downloads:

  1. ESP Flash Download Tools
  2. ESP Flasher win32
  3. ESP Flasher win6

 

]]>
https://blog.etechpath.com/getting-started-with-esp8266-wifi-module/feed/ 0