Archive

Archive for the ‘Problem’ Category

Arduino: AND-Gate Circuit

March 17, 2022 Leave a comment

Learning : Electronic AND-Gate Circuit
Subject: To Build an AND-Gate Circuit using BC547 Transistor

[NOTE:
W
e are working on Electronic Devices, Voltage, Resistors and other Electronic Parts that may Become HOT due to un-stable current or Wrong Wire Connections..
PLEASE BE CAUTIOUS AND TAKE SAFETY NEEDED PROCEDURES.]

In this Project we will use the BC547 Transistor to build an AND-Gate Circuit on a breadboard, so we will Not use the ADRUINO board.

What we Need

  • 2 2Pin Push-Button.
  • 1 LED
  • 3 Resistors.
  • 2 BC547 Transistor.
  • 1 BreadBoard. [I am using a small 5x7cm]
  • Some Jumper Wires.
  • 3V Battery

Connections

  • Connect Both BC547 to the BreadBoard.
  • Connect Emitter of the First (left) One to the Collector of the second One (Right one). [Use Jumper Wire]
  • Connect TWO Push-Buttons to the BreadBoard.
  • Connect between each BasePin of the BC547 and Pin1 of each Push-Button using a Resistor1&2 [Pin1 of PushButton1 to Pin1 of Resistor1, Pin2 on the Resistor1 to BasePin of BC547.]
  • Connect Pin2 of Push-Button1 to the Pin2 of the Push-Button2.
  • Connect the Push-Button2 Pin2 to a Resistor3 Pin1
  • Connect the Resistor3 Pin2 to the LED(+)Pin.
  • Connect the LED(-)Pin to the First BC547 CollectorPin
  • Connect the Battery (+) to the Resistor3 pin2, and Connect the Battery (-) to the Emitter Pin of Second BC547.
arduino project electronic circuit BC547 ali radw doha ahradwani.con arduino project electronic circuit BC547 ali radw doha ahradwani.con



Run-Time
The Logic of the AND-Gate is if the BOTH Button are Pressed in same time the circuit will close and the LED turn On.

Here is a GIF clip of Running Time.
arduino project electronic circuit BC547 ali radw doha ahradwani.con



:: ARDUINO PROJECTS LIST ::
[ Click Here to See all ARDUINO Projects ]



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Arduino: Morse Code Blinking


Learning : ARDUINO, Morse-Code, Electronic Circuit
Subject: LED to Blink Morse Code

[NOTE:
W
e are working on Electronic Devices, Voltage, Resistors and other Electronic Parts that may Become HOT due to un-stable current or Wrong Wire Connections..
PLEASE BE CAUTIOUS AND TAKE SAFETY NEEDED PROCEDURES.]


Some days ago I just went through some pages of Morse-Code. Then I got an idea to write a code for the ARDUINO to blink an LED for some letters.

Morse Code: In a basic and easy way, Morse code is a Dots (.) and Dashs (-) to present alphabet characters. So A = .- ; B = -… ; C = -.-. and so on (Morse code table in Wikipedia)

Morse Code Rules:

if we assume a unit is U, then :

  • 1. A Dot is 1U.
  • 2. A Dash is 3U.
  • 3. A Space between a part of the same letter is 1U.
  • 4. A Space between letters is 3U.
  • 5. A Space between words is 7U.

In our project here, the Unite U will be the Delay in Arduino, so the LED will be High for 1U to represent a Dot (.) and will be High for 3U to represent the Dash (-).

What we will Need: I will use a Breadboard, ARDUINO Nano , One Red LED, One 300 ohm Resitro, Jumper Wire.

  • A BreadBoard.
  • ARDUINO Nano.
  • 1 Red LED.
  • 1 Resistor [I will Use 300 ohm]
  • Some Jumper Wire.

Connection:

  • The ARDUINO Nano will be on the Breadboard
  • Connect D13 on Nano to Column 11 on the Breadboard using Jumper-wire.
  • Connect the Resistor on Column 11 and Column 6 on the Breadboard.
  • Connect the LED Anode (+) pin on the Column 6 on the Breadboard.
  • Connect the LED Cathode (-) pin to the Column 4 on the Breadboard.
  • Connect the Column 4 on the Breadboard to the Cathode Row on the Breadboard using Jumper-wire.
  • Connect the Column 17 on the Breadboard (Nano GND pin) to Cathode Row on Breadboard using Jumper-wire.
  • Connect the Column 19 on the Breadboard (Nano 5V pin) to the Anode Row on Breadboard using Jumper-wire.
Image of the Connected Breadboard.
ali radwani ARDUINO Projects morse code



The Coding: First we need to define the Dots and Dashs for each Alphbets, in this example I will do only three carecters for my Name A L I, I will create an array of 0 and 1, 0 is a dot, 1 is a dash, here is the code:
int A [ ] = {0,1} ; // 0 = dot (1U), 1 = dash (3U)
int L [ ] = {0,1,0,0} ;
int I [ ] = {0,0} ;

Here is declearing the Unite, u as Delay time:
int u = 170 ; // 1U = 170 delay.

and here is the Arduino pin I will use:
int ledpin = 13 ;

in the void setup, we will only write one line to set the pinMode(ledpin, OUTPUT)

then I create a function to read the letter array-content

 // CODE: Function to read the letters contents. 

void letter(int c [], byte s)
{
      if (c[s] == 0)   // dot 
        {morse1(ledpin, 1) ;}
      if (c[s] == 1)   // dash 
        {morse1(ledpin, 3) ;}       
}



In this code, I will let the LED to Blink in Morse code saying “ALI” [My Name 🙂 ]. You may add the Morse code in the Application and making the LED to send you message. Code Available in Download Page.

RUN TIME..






:: ARDUINO PROJECTS LIST ::
[ Click Here to See all ARDUINO Projects ]

To Download the ARDUINO Project [Code and Diagram] files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P12

February 27, 2022 Leave a comment

Subject: Writing a Full Application for Properties Maintenance System [Delete Maintenance Request]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


In this part we will continue write the Functions in Maintenance Request Service. Here we will write the Function to Delete a Maintenance Request.

This is very easy and short Function, first we will list all the requests by calling the def show_maintenance_request, after that we will ask the user to Select the ID of the request to be Delete.

Validation
We will use simple validation code on the User input for the following aspects:

  • If the user input E to Exit.
  • If the user input digits or Not.
  • If the ID is available in the system/Database.
  • If the user input Y to confirm the Deleting prosses.

So if the user input pass all the Validations, and he confirm the Deleting, the Record will be Deleting using the following SQL Command:
c.execute (“delete from maint_request_t where m_r_id ={}”.format(int(delete_this)))
db_conn.commit()

python project code SQL ali radwani



We done with this part, Next we will write a code to change a request status.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7
Part 8 Part 9 Part 10 Part 11 Part 12 Part 13 Part 14



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P11

February 20, 2022 1 comment

Subject: Writing a Full Application for Properties Maintenance System [Show Maintenance Request]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


In this part we will continue write the Functions in Maintenance Request Service. Here we will write the Function to Show Maintenance Request.

Show all Request In this Function we will display all the Properties we have in the system, then the user will Select the ID of the Property, after that we will display all Maintenance Jobs that we have in the system (Maintenance for); again the user need the Select the Job ID and if the required job is not in the list the user need to go-back and add it to the system first. After that the user will Select current Job-Status [also if not in the system we need to add it], then entering the Date of starting the Maintenance, finally the user can write any Notes or just press enter to save the request. With any question above the user can Exit the function by interning [E].

Here are some code sample..
Table header
print(‘ ‘*6,’ID’,’ ‘*3,’Property ID’,’ ‘*5,’Maintenance Date’,’ ‘,’Maintenance For’,’ ‘*7,’Job Status’,’ ‘*12,’Note’)
print(‘ ‘*4,’-‘*120)

Code to fetch-all data in the Maintenance Request Table.
c.execute (“select * from maint_request_t “)
dataset = c.fetchall()

To Get the Property Type, we call our get_lookup_values Function..
prop_type_id = get_lookup_values(‘properties_t’,’p_id’,dataset[each][1])
p_type_name = get_lookup_values(‘prop_type_t’,’pt_id’,prop_type_id[0][2])


To save the time, all the code is available in the Download Page.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7
Part 8 Part 9 Part 10 Part 11 Part 12 Part 13 Part 14



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P10

February 13, 2022 2 comments

Subject: Writing a Full Application for Properties Maintenance System [Property: Delete a Record]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


In this part we will write the Following:
1. Writing the Maintenance Request Menu.
2. Writing the Functions header for Four Functions:

  • Add a Maintenance Request.
  • Edit a Maintenance Request.
  • Delete a Maintenance Request.
  • Show Maintenance Requests.

3. Writing the code for the first Function: Add a Maintenance Request.
4. Writing the code to Validate the Date.[The code will be coped in from my Archive]


First: Maintenance Request Menu: We will use our standard template in all application we write it, so here is the code ..

python project Properties Maintenance System code by ali radwani doha qatar

And here is the header of each Functions:

def add_maintenance_request() :
pass

def edit_maintenance_request() :
pass

def delete_maintenance_request() :
pass

def show_maintenance_request(inside) :
pass


First Function: def add_maintenance_request() : In this Function we will ask the user to select the ID of the Property that need Maintenance also to select the ID of Maintenance Job requered. If the Maintenance Job is Not Available in the List, then the user MUST go first to add it in the system, then come back and select it. During this Function coding we will use two Functions we have in this application [check_availability and show_lookup_data] also we will use the [Date Validation] Function we have develop some time ago [Click to Read the Post Ver.2019] {Updated Ver. used in this code.}

Here is a sample code for Selecting the Maintenance Job Requiered.

 # Selecting the Maintenance Job Requiered

 print('\n\t Select an Item from the List for the Maintenance Job Requiered:\n') 
        show_lookup_data('Yes' ,'main_job_list_t', 'ml_id')
        main_j_id = input ('\n\t Enter the ID of the Maintenance Job. [E to Exit] > ')
        if main_j_id in ['e','E'] :
            input('\n\t You Select to Exit from the Function.. Press any Key .. ')    	
            return    	
        if	(check_availability('main_job_list_t', 'ml_id', int(main_j_id)) == None ) :
            input('\n\t The ID is NOT Available. Press any Key .. ')    	
            return



After collecting all information from the user, we will Insert/Add the data into the database using this SQL Statement..

# Add to the DataBase.
c.execute (“INSERT INTO maint_request_t (p_id , maint_for, date_time, job_s_id, notes) VALUES(:p_id , :maint_for, :date_time, :job_s_id, :notes)”,{“p_id”:mainte_req_id , “maint_for”:main_j_id, “date_time”:main_date, “job_s_id”:job_st_id, “notes”:the_note})
db_conn.commit()


Now we have the ability to add a Maintenance Request to our system.

NOTE: If you Download this Part you MUST Run the Option 82 (82. Delete the Data-Base and Start Again.) from the Main Menu to do the following Updates:

  • Updates some attributes in the database level.

## Highly recommended ##


In Part-11 In the Next Part, we will write a function to show all Maintenance Request in the system.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8
Part 9 Part 10 Part 11 Part 12



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P9

January 5, 2022 3 comments

Subject: Writing a Full Application for Properties Maintenance System [Property: Delete a Record]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


In this part we will write a Function to Edit a record on the database, first we will call the def show_property(inside) to display all the records on the screen and ask the user to Select [enter] the ID of the Property to be Edited. Next we will Display the Record again on the screen and ask the user to Confirm the Editing by entering [Y] and any things else will be as [Don’t Edit]. Here is the code ..

python project Properties Maintenance System code by ali radwani doha qatar


Next we will ask the user about each attributes in the system, so the user will enter the new data (update the current one) or just press enter to keep the existed data. Here is a part of the code ..

python project Properties Maintenance System code by ali radwani doha qatar


After That we will check on each user input for the attributes, if the user change/Edit the data [did not press enter] then we run an SQL command to alter the database. Here are part of the code we use ..

python project Properties Maintenance System code by ali radwani doha qatar


Now we have an updated record, so we will show a message to inform the user that the records been updated.

NOTE: If you Download this Part you MUST Run the Option 82 (82. Delete the Data-Base and Start Again.) from the Main Menu to do the following Updates:

  • Updates some attributes in the Database Level.

## Highly Recommended ##


In Part-10 the Next Part, we will add the Function to Backup our data .



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8
Part 9 Part 10 Part 11 Part 12



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P8

November 21, 2021 4 comments

Subject: Writing a Full Application for Properties Maintenance System [Property: Delete a Record]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


In this part we will write a Function to Delete a record from the database, first we will call the def show_property(inside) to display all the records on the screen and ask the user to Select [enter] the ID of the Property to be Deleted. Next we will Display the Record again on the screen and ask the user to Confirm the Deleting by entering [Y] and any things else will be as [Don’t Delete]. Here is the code ..

python project Properties Maintenance System code by ali radwani doha qatar


.. End of Part 8 ..

NOTE: If you Download this Part you MUST Run the Option 82 (82. Delete the Data-Base and Start Again.) from the Main Menu to do the following Updates:

  • Update the properties_t Table (Adding the number of BathRooms)
  • Update on create_tables Function.
  • Update on insert_zero_records Function.

If you did this in last part (6) then you don’t need to do it again


In Part-9 In the Next Part, we will write the Function to Edit a record of a selected Property.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P7

November 14, 2021 5 comments

Subject: Writing a Full Application for Properties Maintenance System [Property: Showing the Records in Main property Table]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


After adding Records to the Main Property Table, we need to display the records on the screen. So now in this part (Part -7) we will write a function to display all the records. The Function name will be def show_property() the function is not taking any attribute and is Not returning any things. First we will print-out the Table-Header then we will run an [SQL: select * from table-name] command to fetch all the records, then will [for loop] and test-format to print all the records on the screen. Here is the Code ..

python project Properties Maintenance System code by ali radwani doha qatar

After i display the records, I notes that the Address-Column needs more than one row (in some cases), and it miss the line formating, so I wrote a function and call it def warp_text(tex,warp_on,nl_space) the function takes three arguments,
the test: it the text/string you want to print.
warp_on: is a number of character before the new-line.
nl_space: is the number of white-character in the new-line.
Here is the Code ..

 # Function to warp 

def warp_text(tex,worp_on,nl_space) :
    c = 0
    
    for t in range (len(tex)) :
        print(tex[t],end="")
        c += 1
        if c == worp_on :
            print('\n', ' '*nl_space, end="")
            c = 0 



Check all the codes in the Download Page..
End of Part 7

NOTE: If you Download this Part you MUST Run the Option 82 (82. Delete the Data-Base and Start Again.) from the Main Menu to do the following Updates:

  • Update the properties_t Table (Adding the number of BathRooms)
  • Update on create_tables Function.
  • Update on insert_zero_records Function.

If you did this in last part (6) then you don’t need to do it again


In Part-8 In the Next Part, after adding and showing the records we will write the Function to Delete a record from the Table.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P6

November 8, 2021 6 comments

Subject: Writing a Full Application for Properties Maintenance System [Add New Property Functions]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]


This is Part-6 of an Application to Manage Properties Maintenance in this part we will writ a Function to Add New Property to our System.

Add New Property:
This May be the longest Function in our system, we will ask the user to Enter the Data for a New Property and then saving it to the DataBase.

Simple Validation:
In this Function we will do a very simple check on the user inputs, and will keep this as simple as we can so the code will not be long. Sample on this Validation will be if the user enter [E or e] we will exit the process and stop the Function.

Code Part Sample:
In asking the user to select the property Type were we are using a look-up table for the Property Types, we will use the Function def get_lookup_values(tname,t_id,key_id): were we passing the table-name, the ID column name and the ID of the data we want to retrieve. Another code part we may see is checking the user input of the p_type_id (MUST BE NUMERIC)

if (p_type_id.isalpha()):
input(‘\n You Must Enter a Numeric Value. Press any key to Try Again .. > ‘)
.
Also we can see the part of the code that will make sure that the user did not enter the [E to Exit] (if the user enter E we will display a message then will return to the Menu-Page)
p_bedrooms = input(‘\n Enter the Number of Bedrooms in the Property. [E to Exit] > ‘)
if p_bedrooms in [‘e’,’E’] :
input (‘\n You Select to Exit .. Press any Key. >’)
return



Saving the Record:
After the user Enter all the data we need we will display it on the screen and asking for a confirmation to Save the record, If the user Enter [Y] as Yes, we will use the “INSERT INTO properties_t …” SQL command to save the Record to the dataBase.
Here is a screen-shot of the all code of the Function,

python project Properties Maintenance System code by ali radwani doha qatar



NOTE: If you Download this Part you MUST Run the Option 82 (82. Delete the Data-Base and Start Again.) from the Main Menu to do the following Updates:

  • Update the properties_t Table (Adding the number of BathRooms)
  • Update on create_tables Function.
  • Update on insert_zero_records Function.


In Part-7 In the Next Part we will write the Function to Display/Show all the Records of the Main-Property-Table on the screen.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani

Python Project: Properties Maintenance System P4

October 28, 2021 8 comments

Subject: Writing a Full Application for Properties Maintenance System [Property Type Functions]
Learning : Python, Math, SQL, Logeic

[NOTE: To keep the code as simple as we can, We WILL NOT ADD any user input Varevecations. Assuming that our user will Enter the right inputs.]

In Part-4 We will writing the Functions to Manage the Maintenance Property Types Functions. Property Type is a Look-up Table that will help the user to select some values, as other Look-up Tables, in Part-1 when we set-up the application and select to create the database we Insert some data in to it. Now will will write three Functions to Add New Property Type, Edit a Property Type and Delete a Property Type from the DataBase.
[.. ALL THE CODE ARE AVAILABLE IN DOWNLOAD PAGE.. ]
Starting with Add New Property Type, We will ask the user to write the New Property Type then will run the SQL command to Insert it into the data-base.. Hear is the Code ..

python project Properties Maintenance System code by ali radwani doha qatar


Now we will write the Edit Function we if we have any error in the typpiing of the Property Type we can correct it using this Function.. Fisr we will display all the Properies Type we have, asking the user to Select an ID of the one to-be Edit, then we will check for the availability of the user input [simple valitation proccess] and will ask the user to Insert the correct Value/Text to replace the exsist one. Here is the code ..

python project Properties Maintenance System code by ali radwani doha qatar


The Last Function in this part is to Delete a selected Property Type, in this Functioin we will List down all the Property Types we have in the data-base and ask the user to select the ID for the one to be deleed, then we cal the SQL commands that will Delete the record. Here is the code ..

python project Properties Maintenance System code by ali radwani doha qatar


.. DONE WITH PART – 4 ..


In Part-5 In coming post we will continue writing Lookup Table Functions to Add, Edit and Delete there data.



:: PMS Parts ::

Part 1 Part 2 Part 3 Part 4
Part 5 Part 6 Part 7 Part 8



..:: Have Fun with Coding ::.. 🙂

To Download my Python code (.py) files Click-Here



ali radwani ahradwani.com python projects codeFollow me on Twitter..

By: Ali Radwani