DIY category

Raspberry Pi Twitter

Post Tweets With Your Raspberry Pi

Raspberry Pi is famous for its great computing strength and ability to run the Linux operating system. In today’s tutorial, you’ll learn how to make your Raspberry Pi tweet. You can add extra features to this project to post tweets autonomously if any specific event occurs. Let’s get started.

Required Parts

You’ll need following parts to make this project.

  • Raspberry Pi running Raspbian OS (Any model)
  • USB Mouse
  • USB Keyboard
  • HDMI Compatible Monitor
  • HDMI Cable
  • USB power supply for Raspberry (5V 2A)
  • Working Internet Connection

Create App In Twitter

You need to create an app in Twitter so that Raspberry Pi can use to make tweets on your behalf. Go here to make a twitter app. The Raspberry Pi will require following parameters to make tweets:

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

You can find all these details from your app.

Creating An App In Twitter
Creating An App In Twitter

Store Keys In Raspberry Pi

In this step, you need to create a python file in your Raspberry Pi and store all the Keys and Tokens there. Create a file named keys.py in your working folder with all information in it.

consumer_key = "Place your consumer key here"
consumer_secret = "Place your consumer secret key here"
access_token = "Place the access token here"
access_token_secret = "place the access token secret here"
Get Access Keys And Access Tokens From App
Get Access Keys And Access Tokens From App

Now, save the file and go the nex step of this tutorial.

Install Twython

Well, what is Twython actually? Twython is the premier Python library providing an easy way to access the Twitter data. It’s been tested by companies, educational institutions and individuals alike. This amazing library will make our job a lot easier and the code much shorter. To install the Twython library, follow the given steps:

 sudo apt-get update sudo apt-get upgrade
 sudo apt-get install python-setuptools
 sudo easy_install pip
 sudo pip install twython
 sudo pip install requests
 sudo pip install requests-oauthlib

pip is required to install Twython, so it’s installed in 3rd step. But if you already have pip installed, just ignore that step.

Write The Python Script & Run It

Open a file in your working directory in your Raspberry Pi and rename it to twitter.py. Make sure that it is in the same directory wit previously created keys.py file. Now, copy-paste the following code using any editor or IDE:

import sys

from twython import Twython
from keys import (
 consumer_key,
 consumer_secret,
 access_token,
 access_token_secret
)
twitter = Twython(
 consumer_key,
 consumer_secret,
 access_token,
 access_token_secret
)
message = "My first tweet using Rapberry Pi! Yeh!"
twitter.update_status(status=message)
print("Raspberry Pi successfully tweeted: %s " % message)

Pretty simple, isn’t it? Actually, the Twython library performs lots of tasks behind the screen keeping the code surprisingly small.

Now, save the file and open terminal in your raspberry pi. Write the following command and hit the Enter key to run this Python script:

python twitter.py

That’s all. Now you can see that is your Raspberry Pi is tweeting successfully.

Arduino-based GSM mobile

Lightweight GSM Mobile With Arduino UNO and Nextion Display

Avishek Hardin at Arduino Project Hub designed a lightweight mobile using a GSM module, an Arduino UNO, and a Nextion touch screen display. The lightweight mobile has the following features:

  • Make calls
  • Receive calls
  • Send SMS
  • Receive SMS
  • Delete SMS

In this project, he uses a GSM SIM900A module to establish the cellular communication. The GSM SIM900A is an all-in-one cellular module that lets you add voice, SMS, and data to embedded projects. It works on frequencies 900/1800MHz and uses the RS232 standard to communicate with MCUs. Baud rate of this module is adjustable from 9600 to 115200 through specific AT Commands.

This GSM mobile features a Nextion touch display to take input from the user and visualize the GUI. Its easy-to-use configuration software (Nextion Editor) allows you to design your own interfaces using GUI commands. All GUI data is stored in Nextion display instead of the master MCU. Thus, lots of program space in MCUs can be saved efficiently and it makes the development procedure effortless. The Nextion displays communicate with microcontrollers over UART which is supported by a wide range of MCUs.

Required Parts

Required pats for this project
Required parts for this project

Required Tools

Connection

Connect the Nextion display and the GSM module with your Arduino using following instructions:

  • Nextion +5V to Arduino VDD_5v.
  • Nextion RX to Arduino pin 11
  • Nextion Tx to Arduino pin 10
  • Nextion GND to Arduino GND_0v.
  • GSM Rx to Arduino pin 1
  • GSM TX to Arduino pin 0
  • GSM GND to Arduino GND_0v.
Wiring Diagram
Wiring Diagram of Arduino-based GSM mobile

Program The Nextion Display

First of all, you need to design an HMI file using Nextion Editor. This editor allows you to design the interfaces using plug-and-play components like text, button, progress bar, pictures, gauge, checkbox, radio box, and much more. You can set codes and properties for each of these components later.

Design GUI using Nextion Editor
Design GUI using Nextion Editor

In this project, 8 different pages are used to design the GUI. All the icons used are easily available on the internet. Icons are resized and modified using an open source tool paint.net. Touch events like press and release are also covered when components are touched. More information on Nextion display commands can be found on this wiki page.

Designing dial pad using Nextion Editor
Designing dial pad using Nextion Editor

Steps To Upload

  • Load the .HMI file into the editor. Link to the Github repository is here.
  • Compile the .HMI file (just under the menu bar).
  • Go to File > Open build folder > Copy the .tft file > Paste into SD card. Note: make sure the SD card is formatted to FAT32.
  • Once copied, insert the SD card into the Nextion display and then turn the power on.
  • Wait for the .tft to upload.
  • Power off the Nextion, securely remove the SD card and then again power on the display.
  • Now you should see your new interfaces on the Nextion Display.

Program The Arduino

The Arduino is the brain of this project. It takes input from the Nextion display, sends commands to GSM module to create the cellular connection, and shows information on the display. This project does not use any Nextion library due to lack of documentations and difficulties to understand. Moving on without using libraries seems tough but it is really not.

The code can be found on the Github repositorySimply download it and upload to the Arduino board using the Arduino IDE. If you are using some other board than Arduino UNO, then don’t forget to select that specific board in Arduino IDE before uploading.

Editing the Arduino sketch
Editing the Arduino sketch
compile and upload the sketch using Arduino IDE
compile and upload the sketch using Arduino IDE

Open the Serial Monitor, you should see the AT command log for each event triggered from the Nextion Display.

Serial Monitor shows the AT command log
Serial Monitor shows the AT command log

Important Note

By default, the GSM module has an SMS buffer size of 20. Unfortunately, this Arduino-based mobile cannot display all the 20 messages at once on the Nextion display as it gives a buffer overflow while compiling the Nextion code. Hence, the Nextion display is programmed to show maximum 10 messages at once. If 10 or more SMS are present on the GSM buffer, the Low memory warning icon will be displayed on the Nextion display.

SMS log showing received messages on Nextion display
SMS log showing received messages on Nextion display

Video

Watch the demonstration video to understand how this Arduino-based lightweight GSMmobile works.

 

Household Power Consumption IoT Meter with Anti-theft Feature

BSP Embed published a video demonstrating a new project to build a connected device to measure the power consumption of household instruments.

The presenter relied in his project on the feature of having a blinking led in modern power meters where each blink means that 1 KWh is consumed.

The device features the following:

HLK-PM01
HLK-PM01

The concept behind this project is straightforward. A wire from the blinking LED of the power meter is connected to an interrupt pin from ESP8266 to count blinks (KWh) and then upload it to ThingsSpeak IoT platform to present data live online and to analyze it later.

To detect tampering, he used ACS712 AC current sensor module and connected its output (analog output) to an ADC input from ESP8266; If data from the sensor shows power consumption while no blinking form the LED is detected then a theft warning status will be issued.

The firmware, written in Arduino C, can be downloaded from Github.

Source: Embedded Lab

ZeroPhone, A Raspberry Pi-Based Open Source Smartphone

Raspberry Pi is one of the most helpful innovations in the hardware industry. It has helped beginners and children learn programming and allowed the makers to develop powerful and cheap DIY projects. “ZeroPhone” is a new DIY smartphone that is built based on Raspberry Pi and cost about only $50.

ZeroPhone is an open source, Linux-powered smartphone, that has no carrier locks, bloated apps, or data mining. It is user-friendly and will have the typical features of a phone, but with more advanced features. It also can be modified and repaired easily.

The phone is built using widely available components, and its open source hardware and software  will give you as much control over your phone as possible.

ZeroPhone can be used for calling and SMS, SSH, pen testing, and experimenting in addition to all basic functions like calendar, phonebook, music player, and web browser. As it is a linux-based phone, you can run ARM compatible programs. SDK will be provided so you can then develop your own apps.

Features & Specifications

  • Based on Raspberry Pi Zero, ESP8266 and Arduino
  • Has Wi-Fi, HDMI, full-size USB and a 3.5 mm jack (Bluetooth as an option)
  • 2G GSM connectivity (3G coming soon)
  • 128 x 64 1.3” OLED screen
  • GSM/Wi-Fi/microphone hardware switch option
  • RGB LED and vibromotor
  • Uses of Extension Ports:
    • IR receiver/transmitter
    • Additional displays and buttons
    • 5 MP / 8 MP Pi Camera
    • Extended batteries
    • Various sensors, both analog and digital
    • Wireless radios for IoT
    • GPS, Ethernet and MicroSD expansion
    • …and much more.

The OS of ZerPhone is Raspbian Linux, which is currently based on Debian Jessie. This is because it is suitable for all functions, and will still be upgradable in the future. The user interface (controlling screen and buttons) is written in Python.

Compared with other open-source phones, ZeroPhone, as the maker said, is the only one uses affordable parts which are available on eBay, and its software will be always updated if the phone’s development will stop.

To make your ZeroPhone you will need:

  • Pi Zero
  • SIM800 modules
  • ESP8266-12E
  • Two-layer PCBs (two 4x10cm boards, one 4x6cm board)
  • ATMega328P
  • LCD screen
  • Battery
  • TP4056 battery charger
  • Buttons for keypad
  • 2.54 headers

More details about this project is available on its hackaday page, in addition to the project description and frequently asked questions.

Master Your Arduino Skills With Arduino Playground Book

Are you an experienced maker who are looking for more advanced Arduino skills to get?

Warren Andrews, an experienced engineer and journalist, wrote a new book that walks makers through building 10 outside-the-box projects, helping them advance their engineering and electronics know-how. With this book, makers will delve more deeply into hardware design, electronics, and programming.

The “Arduino Playground: Geeky Projects for the Curious Maker” book is published by the Geek book publisher, No Starch Press. Projects inside the book provide a way to build new things that vary between practical and fun.

Content of the book

The book has 11 chapters, the first one is a warm up, it contains a quick guide to get the Arduino ready, prepare the IDE and try some sketches, making DIY PCBs, and using SOICs. Each chapter of the other 10 chapters is a project chapter that starts with listing the required tools, components, and software, followed by detailed instructions of the build containing all sketches and board templates. There are also author’s design notes, which are sure to provide inspiration for your own inventions.

  • Chapter 0: Setting Up and Useful Skills
  • Chapter 1: The Reaction-Time Machine
    A reaction-time game that leverages the Arduino’s real-time capabilities
  • Chapter 2: An Automated Agitator for PCB Etching
    A tool for etching your own printed circuit boards
  • Chapter 3: The Regulated Power Supply
    A regulated, variable-voltage power supply
  • Chapter 4: A Watch Winder
    A kinetic wristwatch winder decked out with LEDs
  • Chapter 5: The Garage Sentry Parking Assistant
    A garage parking assistant that blinks when your vehicle is perfectly parked
  • Chapter 6: The Battery Saver
    A battery saver that prevents accidental discharge
  • Chapter 7: A Custom pH Meter
  • A practical and colorful pH meter
  • Chapter 8: Two Ballistic Chronographs
    A ballistic chronograph that can measure the muzzle velocity of BB, Airsoft, and pellet guns
  • Chapter 9: The Square-Wave Generator
    A square-wave generator
  • Chapter 10: The Chromatic Thermometer
    A thermometer that tells the temperature using a sequence of colored LEDs

Reviews

“Arduino Playground is not for the faint of heart. Unless the faint of heart person plans to build a pacemaker with Arduino!” —ScienceBlogs

“This is a book designed for Arduino enthusiasts who’ve mastered the basics, conquered the soldering iron, and programmed a robot or two. Warren Andrews shows you how to keep your hardware hands busy.” —I Programmer

The book is available for $30 on No Starch Press and Amazon. You can view the detailed table of contents and the index, and also you can download Chapter 4: A Watch Winder, and the sketches, templates, and PCB files used in this book.

10km ESP32 WiFi Using Directional Antenna

[Jeija] was playing with some ESP32s and in true hacker fashion, he wondered how far he could pull them apart and still get data flowing. His video answer to that question covers the Friis equation and has a lot of good examples of using the equation, decibels, and even a practical example that covers about 10km. You can see the video below.

Of course, to get that kind of range you need a directional antenna. To avoid violating regulations that control transmit power, he’s using the antenna on the receiving end. That also means he had to hack the ESP32 WiFi stack to make the device listen only on one side. The hack involves putting the device in promiscuous mode and only monitoring the signals being sent. You can find the code involved on GitHub (complete with a rickrolling application).

Of course, antennas are nothing new–look at all the Pringle can antennas we’ve seen in the past. However, the use of a long range receive-only module is interesting and we can see this technique having applications to remote drone video or telemetry and — of course — wardriving. If you don’t have a big boss antenna lying around, you might try some duct tape. If you want a more detailed refresher on decibels, we did that last month.

Source: Hackaday

DIY Arduino Soldering Station

GreatScottLab @ instructables.com writes:

In this project I will show you how to create an Arduino based soldering station for a standard JBC soldering iron. During the build I will talk about thermocouples, AC power control and zero point detection. Let’s get started!

DIY Arduino Soldering Station – [Link]

Educational Biomed Shield for Arduino 101

Orlando Hoilett has built his new biomedical Arduino 101 shield: Biomed Shield, in order to allow students, educators, and hobbyists to learn about bio-medicine by monitoring heart rate, temperature, and other physiological metrics.

To build this shield he used the following components:

  • AD5933
  • MLX90614
  • Microchip Rail-to-Rail Input/Output Dual Op-Amp
  • MAX30101: a specialized integrated circuit that is able to perform reflectance photoplethysmography
  • Photocell
  • Thermistor
  • AD8227

Orlando measured heart beats using transmission photoplethysmography using MAZ30101, where a light shines through an extremity such as a finger and a detector measures the amount of light that passes through. When the heart pumps blood through the body,  a momentary increase in blood volume in the fingers happens. As a result, the amount of light that passes through the finger changes with this changing blood volume and is detected by the photodetector.

Bioimpedance Measurement

Bioimpedance is can be another class of bioelectrical measurements where we measure the impedance of the body instead of measuring the electrical signals produced by the body with the help of AD5934 impedance analyser chip. He is also measuring body temperature with the MLX90614 and measuring the amount of light using  a CdS Photocell.

Orlando built this shield for education purposes not as a medical device, and his work on this shield is still in progress. Follow his project on hackster.io to know more details and updates. You can check source files at Github.

Hack Your Car With Macchina M2

Car hacking applications have been growing during the last few years, making it faster and cheaper to get into automotive tinkering. A new device was launched recently on kickstarter called M2 by Macchina.

M2 is an open-source, versatile development platform which can be wired under the hood for a more permanent installation or plugged into the OBD2 port, enabling you to do virtually anything with your vehicle’s software.

It is a tiny device (56.4mm x 40.6mm x 15.7mm) that is compact, modular, wirelessly connectable, and based on the popular Arduino Due. It consists of a processor board with a SAM3X8E Cortex-M3 MCU, a USB port, some LEDs, an SD card slot, and built-in EEPROM, as well as an interface board with two channels of CAN, two channels of LIN/K-LINE, a J1850 VPW/PWM, and even a single-wire (GMLAN) interface.

M2 is universal as its libraries and protocols are compatible with any car that isn’t older than Google. Macchina also aims to make the M2 compatible with as many existing open source software packages as possible.It is already compatible with SavvyCAN, CanCAT, MetaSploit, and CANtact.

Working with M2 is easy for Arduino users. Here is a summary of the steps needed to duplicate our shift light project on a CANbus-equipped manual transmission car that also illustrates the basic workflow when car hacking with M2:

  • Step 1: Download the latest Arduino IDE and install the Macchina boards add-on; test everything is working by blinking an LED.
  • Step 2: Download and install one of several open source “Sniffer” applications to your computer and upload the corresponding “sketch” to M2.
  • Step 3: Use the “Sniffer” application to identify the piece of data you are looking to use. In this case, engine RPM
  • Step 4: Write a “Sketch” to watch for RPM data and light up some LEDs proportionally and flash when it is time to shift.

You can also check this video to see an example of simple car hacking:

Macchina has partnered with Arduino, Digi and Digi-Key to develop M2, and it believes that its highly-adaptable hardware will most benefit hot rodders, mechanics, students, security researchers, and entrepreneurs by providing them access to the inner workings of their rides.

As it is an open source project, you can get its 3D files, schematics, BOM, and source files on the github repository. M2 will be available for $79 and it may cost about $110 if you build it yourself. Visit Macchina’s Kickstarter page to learn more or pre-order yours today. You can also check out Hackaday’s review about M2.

Macchina M2 tutorial introduction:

DIY Arduino Nano

Make Your Own Arduino Nano In The Simplest Way (DIY – Arduino Nano)

In today’s post, we are going to learn how to make an Arduino nano at home. Electronics enthusiast Pratik Makwana designed this project in instructables.com. Every step in this project is well-explained. If you already don’t know what Arduino Nano is then here is a brief introduction: Arduino Nano is a tiny yet strong member of the Arduino family. It’s powered by an ATMega328P microcontroller running on 16MHz. But, the main strength is its very small form factor.

Arduino Nnao
Arduino Nano

Now, let’s get started and make your own Arduino Nano in no time.

Requirements:

  • Copper clad board (Double-sided)
  • Ferric Chloride (FeCl3)
  • Acetone (Nail polish remover)
  • Glossy Paper
  • LASER Printer
  • Marker Pen
  • Scissors
  • Plastic container
  • Sandpaper
  • Safety gloves (Optional)
  • Latex gloves
  • Saw – For copper board cutting
  • Laminator or iron
  • Components of Arduino Nano (Given later)

PCB Designing:

This is a very important step of this tutorial. You need to draw the circuit of Arduino Nano first. Then you’ll design the PCB using the schematic. Design the schematic diagram in an EDA tool (Electronic design automation Software).
Here is a list of EDA Tools:

EAGLE is the most widely used PCB and schematic design software. Though my personal favorite is Proteus. You can use any software from the list.

Importing the Schematic File to PCB Editor
Importing the Schematic File to PCB Editor

To make the schematic, use the Arduino Nano Circuit Diagram and Arduino Nano Components List. Once it’s drawn completely, open the PCB designing part of the software and you’ll see that schematic is imported there. Now place the components in correct places and connect them using traces. If you are using EAGLE then you can simply download the Arduino Nano Schematic File for EAGLE and Arduino Nano PCB File for EAGLE. Open the .brd file (PCB file) to print the PCB. You can also modify it if you wish.

Place the parts in correct position
Place the parts in correct position
Connect the components and the PCB is ready
Connect the components and the PCB is ready

Note:

  • Use Only Laser printer only.
  • Use glossy papers to print.
  • Set scale factor to 1.
  • Before top layer printing, you need to mirror the image of the top layer layout.

Cut The Copper Clad Board:

Now, cut the copper clad board according to the dimensions of the PCB. You can use a hacksaw to cut it off. Be precise about the dimensions. If it’s smaller than the actual PCB then you have to do it again. Also, cut the printed glossy paper as per the size of PCB.

Cut the copper clad board using a hacksaw
Cut the copper clad board using a hacksaw

Toner Transfer and Etching Process:

In this step, the PCB design from glossy paper will be transferred to the copper board. All you need to do is place the printed side of the glossy paper on the copper board and apply both pressure and heat. You can use a modified laminator machine or an iron for this purpose. Why “modified”? Because toner transfer method requires a temperature of 210°C, where a laminator can provide 150°C maximum.

Put the board in FeCl3 solution for a while
Put the board in FeCl3 solution for a while

Make your copper clad board as clean as possible beforehand. You can use sandpaper and alcohol to do this. When the toner is transferred successfully, prepare the ferric chloride (FeCl3) solution. Before putting the board into the solution check carefully for any broken path. If found, draw it with a marker. After the etching process, use the acetone to clean the board.

After washing the PCB with Acetone
After washing the PCB with Acetone

Drilling & Soldering:

Drill the PCB using PCB drill machine. Choose the drill bit wisely else components may not fit. Now, place the components on the PCB and solder them. You can use a helping hand device to get it done nicely.

Upper layer of PCB
Upper layer of PCB
Lower layer of PCB
Lower layer of PCB

Burning The Arduino Bootloader:

In this step, you’ll need another Arduino board (e.g. Arduino UNO) to burn the bootloader to your newly made Arduino Nano for the first time. Open Arduino IDE and upload the ArduinoISP sketch to the Arduino UNO from examples option. Now, connect your Arduino Nano with Arduino UNO over SPI bus following the given instructions:

  • Arduino UNO     >>    Arduino Nano
  • ——————————————-
  • SS (Pin 10)         >>     RESET (Pin 29)
  • MISO (Pin 11)    >>     MISO (Pin 16)
  • MOSI (Pin 12)    >>    MOSI (Pin 15)
  • SCK (Pin 13)       >>    SCK (Pin 17)
  • 5V                         >>    VCC
  • GND                    >>    GND
Follow this instruction to burn bootloader
Follow this instruction to burn bootloader

After making the connections, go to Arduino IDE and follow the given instructions:

  1. Select Tool  >>  Board  >>  Arduino Nano
  2. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  3. Select Tool  >>  Programmer  >>  Arduino as ISP
  4. Select Tool  >>  Burn Bootloader

Wait for the “Done burning bootloader” message to appear.

Testing:

Well, your Arduino Nano is now ready for a test run. This time you won’t need another Arduino to upload codes. Follow the instructions and connect a USB to TTL converter (a.k.a USB to UART converter) with the Arduino nano to upload sketches.

  • USB to TTL Converter (CP2102)  >>  Arduino Nano
  • —————————————————————-
  • VCC        >>     VCC
  • TX          >>    RX (Pin 30)
  • RX         >>    TX (Pin 31)
  • DTR      >>    RESET (Pin 29)
  • GND     >>    GND
  1. After making the connections, go to Arduino IDE and perform the following tasks:
  2. Select File  >>  Examples  >>  01.Basics  >>  Blink
  3. Select Tool  >>  Board  >>  Arduino Nano
  4. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  5. Select Tool  >>  Programmer  >>  AVRISP MKII

After that, upload Blink Sketch to Arduino Nano and wait for the “Done Uploading” message. LED connected to pin 13 should blink if everything is OK. Now you can upload any sketch you wish to your home made Arduino Nano.

Conclusion:

So, this is how you can make your Arduino Nano. All you need for this project is PCB designing skill and a pretty good soldering skill as you have to deal with SMD components. This way you can make custom Arduino Nano that will fit your project perfectly. Watch the video to have a more clear idea: